3.27.0 (2026-03-09)
New Features
- auto-resume disabled daily subscriptions on balance topup (770b31d)
Bug Fixes
- add method query param to return_url and latest-payment endpoint (32d58b0)
- add table existence guards to migrations for optional payment tables (f4a7763)
- admin tariff server selection - 64-byte overflow and callback routing conflicts (536525c)
- align tariff pricing with calculate_renewal_price reference (6349b2f)
- conditional log messages and sanitize panel_error in user deletion (289cbe9)
- encode payment status in provider return URLs and wire failed_url (275f249)
- enforce tariff device_price and max_device_limit across all purchase paths (f9f07f3)
- keep DB session alive in Tribute payment notification handler (4186159)
- latest-payment endpoint returns all payments, not just pending (7a9264b)
- pass cabinet return_url to payment providers for top-up redirects (7ca9619)
- propagate tariff squad changes to existing subscriptions and fix user deletion from Remnawave (7ccfb66)
- renewal cost estimate double-counts servers and traffic in tariff mode (bfbefeb)
- resolve concurrent AsyncSession bug and sanitize error responses (4a5cacd)
- use parsed HTML length for Telegram caption limit checks (2649e12)
Refactoring
- move squad propagation to service layer with parallel Remnawave sync (79161ea)