From 4019f9dbad8801104f16add1780bed1cbfffa8c0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Jul 2026 14:55:28 +0000 Subject: [PATCH 1/5] chore(main): release 1.62.0 --- CHANGELOG.md | 18 ++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6213890..6dc7d20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [1.62.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.61.0...v1.62.0) (2026-07-19) + + +### Features + +* **payments:** способ оплаты cisPay ([4b98217](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/4b982175d75f5d7d43312859cc061462b52f9570)) +* **promocodes:** состав промокода чекбоксами — баланс / дни / промогруппа ([9ce838b](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/9ce838badeda4dde45b16f38458e260a100fb39d)) +* **referral-network:** кнопка построения полной реферальной сети ([19facf2](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/19facf2ba968212ba9f1bb974ce886e9facc348f)) +* **users:** кнопка «Отправить сообщение» в карточке пользователя ([2f743d8](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/2f743d82dbb4d737fcb5f54dda5269271bae3de2)) + + +### Bug Fixes + +* **admin:** дубликат ключа admin.paymentMethods.description ([46c1bc7](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/46c1bc79a454c71b469a64f82f90a9585f265ab0)) +* **i18n:** добавить недостающие английские переводы resetPassword и expiredDate_trial ([dd50d64](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/dd50d648d069bb69db54d18d8e3bdf6bec965872)) +* **i18n:** форматировать даты и числа локалью выбранного языка, а не браузера ([81fd96c](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/81fd96c2a758d8d092289dbaefa105b29f54137d)) +* **payment-methods:** admin display_name/description override locale on balance ([112e09b](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/112e09bc6d1f0776f3f98602151a7730a8ed9245)) + ## [1.61.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.60.0...v1.61.0) (2026-07-13) diff --git a/package-lock.json b/package-lock.json index d9ca705..9cd0d38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cabinet-frontend", - "version": "1.61.0", + "version": "1.62.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cabinet-frontend", - "version": "1.61.0", + "version": "1.62.0", "license": "AGPL-3.0", "dependencies": { "@dnd-kit/core": "^6.3.1", diff --git a/package.json b/package.json index ece542c..589d63f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cabinet-frontend", "private": true, - "version": "1.61.0", + "version": "1.62.0", "description": "Remnawave Bedolaga Web App", "license": "AGPL-3.0", "type": "module", From ebf4d2e04755386b338a3442bc78c20a49475c22 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:29:29 +0000 Subject: [PATCH 2/5] chore(main): release 1.63.0 --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dc7d20..db60f61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## [1.63.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.62.0...v1.63.0) (2026-07-24) + + +### Features + +* **admin:** статус и отмена СБП-автопродления в карточке юзера ([3328493](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/332849393c00fa4f7e143af2b293a2775c0a4e8e)) +* **balance:** СБП-привязки в сохранённых методах ([d938ac2](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/d938ac2dd9d9f9e27142ed578e17cc7d76ca4531)) +* **sbp-recurring:** СБП-оформление подписки на форме покупки тарифа ([f448c14](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/f448c149946cefee83e0e61f9c3c03b0d69a4362)) +* **subscription:** API и утилиты СБП-автопродления Platega ([9093aec](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/9093aec207bbc41e07433d55a90f9464c33a4b39)) +* **subscription:** блок СБП-автопродления на странице подписки ([29a3683](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/29a36837c8ad1310cce8fafa3e28f041c69a8d37)) +* **ws:** уведомления о событиях СБП-автопродления ([e8409a9](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/e8409a9007e25c685ceaa4b6a88c54237b02303a)) + + +### Bug Fixes + +* **auth:** различать устаревшего бота и ненастроенного на экране логина ([b3b07c3](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/b3b07c322de5ce48db83661a020dfe96be5b2237)) +* **blocking:** локализовать дефолтное сообщение на экране подписки на канал ([5e2e321](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/5e2e3214c9e997896860f952aec774aecbbf49a4)) +* **ci:** рабочий Trivy-пин, lowercase-референс образа, CodeQL v4 ([0a8b1a4](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/0a8b1a46d134c88f0222987dd40707d85368ff5a)) +* **connection:** открывать deep-link приложения на iOS через top-level переход, а не iframe ([03aa2e6](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/03aa2e6312ae602f087d30d7134020acb6338537)) +* **dashboard:** приветствие без пустого имени для email-пользователей ([147b1fb](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/147b1fbb2e78bb8b3e0bd690568ea47c429c08c9)) +* **referral:** показывать секцию вывода средств всем реферерам ([ce13792](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/ce13792f96547331f6a5093b7ff5b5ed32d840d9)) +* **sbp-recurring:** toast ошибки отмены + per-sub ключ inline-confirm в админке ([42a7190](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/42a71902418d3f5e8cd34c225442db40a9a1cf0d)) +* **sbp-recurring:** компактный layout СБП-блока на десктопе ([faf4c45](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/faf4c450b0e995e68fdce6f236a0a1a2de5e85c7)) +* **sbp-recurring:** отступ между тогглом автопродления и СБП-блоком ([17e27d3](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/17e27d343786e9b7e9e013d7c7e1d9e96de6e058)) +* **security:** внутренний гард openAppScheme от опасных схем (CodeQL) ([aa6bf44](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/aa6bf44db9808aa79e0d711c0331e75171be75c0)) +* **security:** инлайновые regex-барьеры для CodeQL в openAppScheme и redirect.html ([51d0f04](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/51d0f0431a121ad179eb5b376fbab539018040dd)) +* **support:** не склеивать t.me со ссылкой на внешний хелпдеск ([f04675b](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/f04675b2498abbbfb41ba48e0dd8cf7ee3a5a0a1)) +* **support:** ужесточить resolveSupportContact — схема, legacy-username, null ([ebde1f6](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/ebde1f6174552ab4bef7f1fef8ef7950942781e7)) +* **tariffs:** отправлять пустые промогруппы и описание при редактировании тарифа ([f1413de](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/f1413de5984859e20a58e3212270ccd1495a6954)) + ## [1.62.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.61.0...v1.62.0) (2026-07-19) diff --git a/package-lock.json b/package-lock.json index 9cd0d38..61940b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cabinet-frontend", - "version": "1.62.0", + "version": "1.63.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cabinet-frontend", - "version": "1.62.0", + "version": "1.63.0", "license": "AGPL-3.0", "dependencies": { "@dnd-kit/core": "^6.3.1", diff --git a/package.json b/package.json index 8179254..031a7b0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cabinet-frontend", "private": true, - "version": "1.62.0", + "version": "1.63.0", "description": "Remnawave Bedolaga Web App", "license": "AGPL-3.0", "type": "module", From 602b3dd1b8b7200700e295fabb845f7bfde6e500 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Jul 2026 21:45:19 +0000 Subject: [PATCH 3/5] chore(main): release 1.64.0 --- CHANGELOG.md | 22 ++++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db60f61..5d28e00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [1.64.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.63.0...v1.64.0) (2026-07-29) + + +### Features + +* **auth:** чекбоксы согласия с офертой и политикой при первой авторизации ([0f21629](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/0f21629ba516118790c5d7f65df18f485dfaeafe)) +* **branding:** загрузка видео стартового меню бота ([c9afea7](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/c9afea7a5043e2a3b02d2242a116878fc70a0be6)) +* **coupons:** лимит на пользователя и удаление партии в кабинете ([390da33](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/390da33914eb3f992719e33acf85decac660a880)) +* **gift:** QR подарка и сканирование в кабинете ([0e4dc43](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/0e4dc43335135fe229ce3c695fd7fa2722eb87e4)) +* **lava:** автопродление Lava на странице подписки ([2dce539](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/2dce539da2a7c3128084ed2bc6bcdf560d440c75)) +* **lava:** покупка привязкой, продукт тарифа в админке, CTA ([a28f116](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/a28f1167f7af57bfc6e5c7c370849e7478ec459f)) +* **promo-offers:** охват сегментов и прогресс доставки на странице отправки ([c6d8c0a](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/c6d8c0afe0a30b864a9d0834735fdc7b52d8f362)) + + +### Bug Fixes + +* **admin:** фиксированный телеграм-синий у свотча «Синий» вместо акцента темы ([62aaa5d](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/62aaa5d7c9eaedb5a118469587a35585f9e4f549)) +* **i18n:** починка плейсхолдеров и переводов в zh/fa/en локалях кабинета ([fb1f5cf](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/fb1f5cf3a762f55f18806be97a0db973316ff6ad)) +* **i18n:** существующие ключи вместо отсутствующих common.units.* на экране продления ([516399c](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/516399cef9fa4a100b5dae979a04fafe0d05e634)) +* **security:** SRI для CDN-скрипта сканера QR ([b615927](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/b615927283d9ae530c03f6120b3c5794d92e0689)) +* **subscription:** корректная цена за месяц при выборе периода ([888a02f](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/888a02f39722c68e4beddefbd1e39c402dfa51cb)) + ## [1.63.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.62.0...v1.63.0) (2026-07-24) diff --git a/package-lock.json b/package-lock.json index 61940b4..49c5ccf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cabinet-frontend", - "version": "1.63.0", + "version": "1.64.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cabinet-frontend", - "version": "1.63.0", + "version": "1.64.0", "license": "AGPL-3.0", "dependencies": { "@dnd-kit/core": "^6.3.1", diff --git a/package.json b/package.json index 031a7b0..1c8c556 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cabinet-frontend", "private": true, - "version": "1.63.0", + "version": "1.64.0", "description": "Remnawave Bedolaga Web App", "license": "AGPL-3.0", "type": "module", From e840ed2b60f5e525cb290ce5bddc70ef6dfe8a66 Mon Sep 17 00:00:00 2001 From: Fringg Date: Sun, 2 Aug 2026 19:38:11 +0300 Subject: [PATCH 4/5] =?UTF-8?q?feat(admin):=20=D0=BF=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=B8=D0=B4=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B8=D1=87=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=20Remnawave=203.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remnawave 3.0.0 удалил `uuid` из модели пользователя — панельный аккаунт адресуется числовым `id`, и бот переименовал соответствующие поля своего API. Без этих правок вкладка Sync показывала бы «не привязан» у ВСЕХ пользователей: оба операнда стали бы undefined, причём без ошибки TS — интерфейсы продолжали бы декларировать несуществующие поля. Типы: `UserDetailResponse.remnawave_uuid` → `remnawave_id: number | null`, `PanelSyncStatusResponse.remnawave_uuid` → `remnawave_id`, `SyncToPanelResponse.panel_uuid` → `panel_user_id`, `PanelUserInfo.uuid` → `id: number` (бэкенд отдаёт его обязательным). В SyncTab используется `??`, а не `||`: идентификатор числовой, и `0` нужно отличать от отсутствия значения. Ярлык — «Remnawave ID». Локаль: ключ настройки бота переименован в TRAFFIC_EXCLUDED_USER_IDS, подпись обновлена — значения теперь числовые id, а не UUID. --- src/api/adminUsers.ts | 8 ++++---- src/components/admin/userDetail/SyncTab.tsx | 10 +++++----- src/locales/ru.json | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/api/adminUsers.ts b/src/api/adminUsers.ts index ef47cda..abd4863 100644 --- a/src/api/adminUsers.ts +++ b/src/api/adminUsers.ts @@ -142,7 +142,7 @@ export interface UserDetailResponse { promo_offer_discount_source: string | null; promo_offer_discount_expires_at: string | null; recent_transactions: UserTransactionItem[]; - remnawave_uuid: string | null; + remnawave_id: number | null; } export interface UserPanelInfo { @@ -271,7 +271,7 @@ export interface UserAvailableTariffsResponse { // Sync types export interface PanelUserInfo { - uuid: string | null; + id: number; short_uuid: string | null; username: string | null; status: string | null; @@ -295,7 +295,7 @@ export interface SyncToPanelResponse { success: boolean; message: string; action: string; - panel_uuid: string | null; + panel_user_id: number | null; changes: Record; errors: string[]; } @@ -303,7 +303,7 @@ export interface SyncToPanelResponse { export interface PanelSyncStatusResponse { user_id: number; telegram_id: number; - remnawave_uuid: string | null; + remnawave_id: number | null; subscription_id: number | null; subscription_tariff_name: string | null; last_sync: string | null; diff --git a/src/components/admin/userDetail/SyncTab.tsx b/src/components/admin/userDetail/SyncTab.tsx index d88565d..f508926 100644 --- a/src/components/admin/userDetail/SyncTab.tsx +++ b/src/components/admin/userDetail/SyncTab.tsx @@ -151,16 +151,16 @@ export function SyncTab({ )} - {/* UUID info */} + {/* Panel identity */}
{syncStatus?.subscription_tariff_name && (
{syncStatus.subscription_tariff_name}
)} -
Remnawave UUID
+
Remnawave ID
- {syncStatus?.remnawave_uuid || - user.remnawave_uuid || - t('admin.users.detail.sync.notLinked')} + {/* Remnawave 3.0.0 identifies a panel user by a numeric id, so 0 is not + a valid id but ?? would still render it — check for null explicitly. */} + {syncStatus?.remnawave_id ?? user.remnawave_id ?? t('admin.users.detail.sync.notLinked')}
diff --git a/src/locales/ru.json b/src/locales/ru.json index 0e1e6a1..080e88f 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -2580,7 +2580,7 @@ "Traffic Daily Check Enabled": "Ежедневная проверка", "Traffic Daily Check Time": "Время проверки", "Traffic Daily Threshold Gb": "Порог в день (ГБ)", - "Traffic Excluded User Uuids": "Исключённые UUID", + "Traffic Excluded User Ids": "Исключённые ID пользователей панели", "Traffic Fast Check Enabled": "Быстрая проверка", "Traffic Fast Check Interval Minutes": "Интервал (мин)", "Traffic Fast Check Threshold Gb": "Порог (ГБ)", From 4c8e17a5a4be31c5b052d6ba7fc59cb76634f6af Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 16:22:13 +0000 Subject: [PATCH 5/5] chore(main): release 1.65.0 --- CHANGELOG.md | 12 ++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d28e00..27d81f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.65.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.64.0...v1.65.0) (2026-08-03) + + +### Features + +* **admin:** панельная идентичность под Remnawave 3.0.0 ([e840ed2](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/e840ed2b60f5e525cb290ce5bddc70ef6dfe8a66)) + + +### Bug Fixes + +* **settings:** вернуть в админку категории, которых не было в дереве ([653d683](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/commit/653d683835e2c10f7690f1f71df3552c3ba9ab2f)) + ## [1.64.0](https://github.com/BEDOLAGA-DEV/bedolaga-cabinet/compare/v1.63.0...v1.64.0) (2026-07-29) diff --git a/package-lock.json b/package-lock.json index 49c5ccf..18d0c41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cabinet-frontend", - "version": "1.64.0", + "version": "1.65.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cabinet-frontend", - "version": "1.64.0", + "version": "1.65.0", "license": "AGPL-3.0", "dependencies": { "@dnd-kit/core": "^6.3.1", diff --git a/package.json b/package.json index 1c8c556..d53ba78 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cabinet-frontend", "private": true, - "version": "1.64.0", + "version": "1.65.0", "description": "Remnawave Bedolaga Web App", "license": "AGPL-3.0", "type": "module",