3.17.1 (2026-02-23)
Bug Fixes
- add diagnostic logging for device_limit sync to RemnaWave (97b3f89)
- add int32 overflow guards and strengthen auth validation (50a931e)
- add missing broadcast_history columns and harden subscription logic (d4c4a8a)
- allow tariff switch when less than 1 day remains (67f3547)
- cap expected_monthly_referrals to prevent int32 overflow (2ef6185)
- cross-validate Telegram identity on every authenticated request (973b3d3)
- handle RemnaWave API errors in traffic aggregation (ed4624c)
- migrate all remaining naive timestamp columns to timestamptz (708bb9e)
- prevent partner self-referral via own campaign link (115c0c8)
- protect active paid subscriptions from being disabled in RemnaWave (1b6bbc7)
- repair missing DB columns and make backup resilient to schema mismatches (c20355b)
- show negative amounts for withdrawals in admin transaction list (5ee45f9)
- suppress web page preview when logo mode is disabled (1f4430f)
- uploaded backup restore button not triggering handler (ebe5083)
- use aiogram 3.x bot.download() instead of document.download() (205c8d9)