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

8 hours ago

3.43.0 (2026-03-29)

New Features

  • add Remnawave panel 2.7.0 API support (565c083)
  • add SeverPay support to cabinet balance top-up (092b9f6)
  • add subscription_id to admin sync endpoints for multi-tariff (54a19a9)
  • add tariff identification to all notifications for multi-tariff mode (7dd67e3)
  • add tariff_id to promo codes for trial subscription type (63e4296)
  • api: expose email field in UserResponse (23d1830)
  • DELETE /subscriptions/:id for expired/disabled subscriptions (c27f144)
  • expose MULTI_TARIFF_ENABLED and MAX_ACTIVE_SUBSCRIPTIONS in admin settings (2628012)
  • expose per-inbound traffic breakdown in nodes realtime API (5d173c8)
  • include countryEmoji and providerName in realtime metrics (b59c581)
  • multi-subscription support (1099c52)
  • multi-subscription support (1 user = N subscriptions) (335be66)
  • return is_daily and is_daily_paused in subscription list API (4dd8170)
  • support email/OAuth users in referral editing and add remove endpoints (7f60196)
  • trial lifecycle + purchase-options filter for multi-tariff (048d208)
  • wheel subscription picker for multi-tariff mode (24edfb6)

Bug Fixes

  • accept subscription_id from query param in renew endpoint (consistent with other endpoints) (824d54b)
  • account linking broken in multi-tariff mode (MULTI_TARIFF_ENABLED=true) (2c12a47)
  • account merge no longer nulls transferred subscriptions' remnawave_uuid (b0273dc)
  • add missing ADMIN_PAYMENTS localization keys for ru and en (4f76f53)
  • add period_days validation and zero-price guard to tariff purchase (cefdfc5)
  • add redirect_slashes=False to prevent HTTP 307 redirects on subscription endpoints (f7f8ea8)
  • add selectinload for GuestPurchase.user/tariff in gift activation (84357a1)
  • add tariff identification to remaining notification gaps (cddb8d6)
  • add_traffic handler passes FSM state to resolve_subscription for multi-tariff context (684f286)
  • address remaining review issues in device limit patch (9726145)
  • address review issues in device limit patch (34aec03)
  • admin handlers use _resolve_admin_subscription + per-subscription UUID (147ef6b)
  • admin panel per-subscription UUID in multi-tariff mode (56fffc2)
  • admin server/devices/traffic buttons pass subscription_id in multi-tariff (9a27e6d)
  • admin tariff purchase now creates separate RemnaWave user per tariff (95ba739)
  • assign promo group from tariff on guest purchase (da11ec6)
  • async tariff loading in promocode serialization (3bec662)
  • auto-purchase processes each autopay subscription independently (f89e326)
  • back button in subscriptions list uses correct callback (382e29d)
  • back buttons in devices/traffic return to subscription detail in multi-tariff (319941d)
  • block classic subscription renewal/autopay when tariff mode enabled (cd6913c)
  • block legacy subscription renewal bypass in tariff mode (78209c8)
  • cabinet admin create subscription now creates new RemnaWave user in multi-tariff mode (31c67d1)
  • cabinet purchase_tariff — handle IntegrityError with compensating refund (1bc2581)
  • cabinet routes use smart subscription fallback + per-subscription UUID (f83ff26)
  • centralize trial cleanup in CRUD + shared subscription resolver for bot (355fef8)
  • comprehensive multi-subscription audit fixes across routes, handlers, and services (d071269)
  • comprehensive tariff switch/extend/back button fixes for multi-tariff (e42bddb)
  • contest prize applies to best non-daily subscription in multi-tariff (d2bbeb8)
  • daily tariff switch uses _resolve_subscription instead of searching by new tariff_id (4e12ab3)
  • delete subscription from RemnaWave panel + prevent phantom webhook notifications (a12ffb1)
  • device limit decrease, HWID pagination, tariff max enforcement (931eeb3)
  • devices button shows menu with buy + manage options in multi-tariff (f925efb)
  • disable redirect_slashes globally to prevent HTTP 307 on subscription endpoints (06feb3f)
  • distinguish cabinet gift notifications from landing page (48eaa6b)
  • eligibility and display use best non-daily subscription in multi-tariff (76ba19d)
  • fix MiniApp renewal options 500 error for legacy subscriptions (aa36549)
  • gift code activation and multi-tariff subscription sync (f93c51a)
  • harden node info display against injection and type errors (6d167d2)
  • harden webhook signature verification across all payment providers (8295880)
  • import Subscription in wheel_service to fix NameError (34bb87c)
  • improve UX for legacy users migrating to tariff mode (f6f330d)
  • load buyer relationship before gift notification, clean up recipient logic (adb39c6)
  • multi-subscription support for promocodes, contests, phantom merge (6d468e9)
  • multi-subscription UUID resolution and ownership validation (d87fb47)
  • multi-tariff code review — 13 critical/high bugs fixed across 14 files (5724906)
  • multi-tariff MEDIUM/LOW batch — 20 issues across 17 files (94ed282)
  • multi-tariff Stage 2 critical fixes — panel sync, guest purchase, cart isolation (4259ba1)
  • multi-tariff Stage 2 HIGH fixes — 18 issues across 12 files (c6bedc6)
  • multi-tariff Stage 3 critical fixes — panel sync UUID, admin grant, wheel (49db5f5)
  • multi-tariff Stage 3 HIGH fixes — phantom, cart, yookassa, auto-extend (aa7e461)
  • multi-tariff Stage 4 critical fixes — keyboards, guest purchase, monitoring, tariff deletion (a49e52c)
  • multi-tariff Stage 5 fixes — auth sync, notifications, cart, race guard (948e479)
  • multi-tariff sync auto-links legacy user-level UUIDs to subscriptions (dbe247b)
  • notifications include tariff name for multi-subscription clarity (05d1ae0)
  • parse_bytes now handles IEC units (GiB, MiB, KiB) from API (1471320)
  • pass FSM state to _resolve_subscription across all subscription handlers (90fb0a2)
  • pass sub_id to show_devices_page to fix NameError in multi-tariff (59d4b35)
  • persist referral to Redis on /start to prevent loss when user opens miniapp (6d9bd99)
  • post-payment keyboard checks all subscriptions instead of LIMIT 1 (25b853d)
  • prevent sync from overwriting wrong subscription traffic in multi-tariff mode (78a7eaf)
  • prevent sync/from-panel cross-subscription data mismatch (960aa44)
  • promocode system broken in multi-tariff mode (3cbe09d)
  • re-fetch subscription after lock_user_for_pricing to prevent selectinload reset (71082f4)
  • remnawave service uses per-subscription UUID throughout multi-tariff (afd7b6d)
  • RemnaWave sync finds user by Subscription.remnawave_uuid in multi-tariff (c3c2b81)
  • remove unused imports and variables after rebase (b6cf361)
  • remove user.subscription setter - use local variable instead (2f88b07)
  • remove UUID fallback override in admin_tariffs + restore promo on IntegrityError (a232d21)
  • rename refresh('subscription') to refresh('subscriptions') in all files (e99f3d9)
  • renewal handlers use _resolve_subscription + store subscription_id in FSM (87bf65c)
  • renewal status check, int() safety, daily charge atomicity (58d899a)
  • renumber multi-subscription migrations to avoid conflicts with dev (5a7b3d5)
  • resolve MissingGreenlet error on article detail view (004dac5)
  • services use smart subscription selection + per-subscription UUID (0866c2e)
  • set is_daily_paused=True when admin cancels/disables daily subscription to prevent auto-resume (d04f2fc)
  • show all subscriptions in main menu for multi-tariff mode (e39c358)
  • show subscription picker for traffic/connect buttons with multiple subs (a39e355)
  • suppress empty reward alerts and clean up referral notifications (e3d8d21)
  • tariff purchase shows purchased tariffs and blocks re-buying in multi-tariff (9644135)
  • tariff_purchase next() fallbacks use None instead of active_subs[0] in multi-tariff (72d5bae)
  • test access promo applies to all active subscriptions in multi-tariff (181ef15)
  • transliterate Cyrillic slugs instead of stripping to 'untitled' (c805cfd)
  • trial promo extends existing subscription with same tariff (b8662b8)
  • trial reset in multi-tariff only deletes trial subscriptions, keeps paid (424fff4)
  • trial subscription lifecycle — autopay, cleanup on purchase, bonus days (344852b)
  • use '/' instead of empty path in subscription sub-routers (07ebc43)
  • use empty path instead of '/' for multi-tariff list endpoint to avoid 404 (c8ecec4)
  • UUID check in servers/tariff_switch, start.py refresh, delegation state passing (bd46b4c)
  • UUID warnings, phantom merge, yookassa validation, contest prize notification (fe03b58)
  • validate_and_clean_subscription uses per-subscription UUID in multi-tariff mode, not user-level UUID (18f31c5)
  • web API routes use multi-subscription resolution for operations (a1623d9)

Refactoring

  • remove dead multi-tariff check in guest purchase activation (34b5a9a)
  • update remnawave API integration for v2.7.0 (173cc37)

Documentation

  • add Stage 3+4 audit results to multi-tariff review (6dc5879)
  • update multi-tariff review with Stage 2 full audit results (40d2ec6)

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

NewReleases is sending notifications on new releases.