github BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot v3.23.0

3 hours ago

3.23.0 (2026-03-05)

New Features

  • account linking and merge system for cabinet (dc7b8dc)
  • account merge system — atomic user merge with full FK coverage (2664b49)
  • add dedicated sales_stats RBAC permission section (8f29e2e)
  • add server-complete OAuth linking endpoint for Mini App flow (f867989)
  • add Telegram account linking endpoint with security hardening (da40d56)

Bug Fixes

  • abs() for transaction amounts in admin notifications and subscription events (fd139b2)
  • add abs() to expenses query, display flip, contest stats, and recent payments (de6f806)
  • add IntegrityError handling on link commit and format fixes (0c1dc58)
  • add missing mark_as_paid_subscription, fix operation order, remove dead code (5f2d855)
  • auto-update permissions for system roles on bootstrap (eff74be)
  • centralize balance deduction and fix unchecked return values (0466528)
  • centralize has_had_paid_subscription into subtract_user_balance (e4a6aad)
  • clean email verification and password fields from secondary user during merge (7b4e948)
  • consume promo offer in miniapp tariff-mode renewal path (b8857e7)
  • consume promo offer in tariff_purchase.py, fix negative transaction amount (c8ef808)
  • delete cross-referral earnings before bulk reassignment, clear secondary.referred_by_id (f204b67)
  • from redis.exceptions import NoScriptError (667291a)
  • harden account merge security and correctness (d855e9e)
  • merge: validate before consuming token, add flush, defensive balance (bc1e6fb)
  • negative balance transfer, linking state validation, referrer migration (531d5cf)
  • prevent concurrent device purchases exceeding max device limit (1cfede2)
  • prevent infinite reuse of first_purchase_only promo code discounts (2cec8dc)
  • prevent self-referral loops, invalidate all sessions on merge (db61365)
  • reassign orphaned records on merge, eliminate TOCTOU race (d7a9d2b)
  • redis cache uses sync client due to import shadowing (667291a)
  • restore merge token on DB failure, fix partner_status priority (9582758)
  • review findings — exception chaining, redundant unquote, validator tightening (467dea1)
  • second round review fixes for account merge (64ee045)
  • use short TTL fallback in restore_merge_token on parse error (0e8c61a)
  • гарантировать положительный доход от подписок и исправить общий доход (93a55df)
  • добавить create_transaction для 6 потоков оплаты с баланса (374907b)
  • добавить create_transaction и admin-уведомления для автопродлений (9f35088)
  • добавить пробелы в формат тарифов (1000 ГБ / 2 📱) (900be65)
  • изолировать stored_amount от downstream consumers в create_transaction (b87535a)
  • передать явный диапазон дат для all_time_stats в дашборде (968d147)
  • показывать кнопку покупки тарифа вместо ошибки для триальных подписок (acfa4b3)
  • показывать только активные провайдеры на странице /profile/accounts (9d7a557)
  • реактивация DISABLED подписок при покупке трафика для LIMITED пользователей (7d28f55)
  • реактивация DISABLED подписок при покупке устройств и в REST API (b9e17be)
  • синхронизация версии pyproject.toml с main и обновление uv в Dockerfile (b31a893)
  • убрать WITHDRAWAL из автонегации, добавить abs() в агрегации, исправить all_time_stats (6da61d7)
  • убрать избыточный минус в amount_kopeks для create_transaction (849b3a7)
  • устранение race condition при покупке устройств через re-lock после коммита (a7a18dd)
  • устранение каскадного PendingRollbackError при восстановлении бэкапа (8259278)

Refactoring

  • extract shared OAuth linking logic, add Literal types for providers (f7caf0d)

Don't miss a new remnawave-bedolaga-telegram-bot release

NewReleases is sending notifications on new releases.