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

3 hours ago

3.61.0 (2026-06-19)

New Features

  • add cabinet admin api for legal pages (5dc9f63)
  • add display mode cycle button to bot admin page editors (f3a1dd7)
  • add display mode settings for built-in info sections (575ce2b)
  • add display_mode column to info pages (9c5c79f)
  • add overpay payment option selection in bot (68657ce)
  • add overpay terminal, direct qr and eur settings (31e7ce6)
  • add telegram html renderer and splitter for info pages (6b8a522)
  • admin: overpay certificate upload in bot (3a71ad3)
  • admin: quick amounts management section in bot admin (3321a92)
  • autopay: add AUTOPAY_FAIL_* notification antispam settings (5dff8d8)
  • autopay: per-cycle Redis+memory state helpers, replace cooldown methods (10769ee)
  • autopay: pure decision fn + per-cycle state, drop 6h cooldown constant (8df8db4)
  • autopay: route failure notifications through per-cycle policy + final reminder text (d3e8eea)
  • bot: quick amounts keyboard in top-up prompts for inline providers (2537fbb)
  • bot: quick amounts keyboard in top-up prompts for legacy providers (6e37578)
  • bot: quick top-up amounts keyboard (6b0ed74)
  • cabinet: allow new animated background types in animation-config validation (0ed3b4e)
  • cabinet: expose quick_amounts in payment methods API (b339c3a)
  • cabinet: overpay certificate admin endpoint (c03bd3a)
  • email-templates: common placeholders available in every template (4fd82a7)
  • email-templates: expand common placeholders to recipient-level vars (76cd71c)
  • expose overpay int sub-option and cabinet payment option (b9f2ec0)
  • filter cabinet info endpoints by display mode (af5fef2)
  • gate bot info sections by display mode and render custom info pages (3150ac2)
  • make DB connection pool params configurable via env (#3000) (610add5)
  • notification: add user ID coercion for Telegram profile links (4ded56b)
  • notification: enhance ticket notification buttons based on user role (fdfda9e)
  • notification: handle TelegramBadRequest for unchanged message content (a766ccc)
  • notification: implement safe editing/resending of messages for photo notifications (0ab57d2)
  • overpay terminals and direct qr, per-method quick top-up amounts, page display modes (ac53fa0)
  • overpay: certificate upload service (de0514b)
  • payments: add quick_amounts column to payment method configs (fda59ef)
  • payments: quick amounts validation and effective values in config service (d1c0960)
  • route overpay payments by option with eur conversion and direct qr (de2fc34)
  • subscription: free-tariff switch fixes — reset tool, day-reset, expired menu (3b3633c)
  • support overpay s2s order init and redirect link polling (3703710)
  • tickets: improve ticket reply handling for admin notifications (9920b93)
  • tickets: let moderators use ticket-notification action buttons (016a79a), closes #2988
  • tickets: open admin ticket in cabinet from notification buttons (1bdf8f2), closes #2988
  • tickets: show reliable (non-FSM) buttons in group/channel admin chat (de66f07), closes #2988
  • tickets: update ticket status handling for notification buttons (b091aa3)
  • yclid-keyed Yandex offline conversions for repeat-purchase attribution (cde4baa)

Bug Fixes

  • address review feedback on overpay and cabinet admin (a09b57b)
  • admin-sync: repair UUID-wiped subscriptions from panel + fix squad extraction (440de7d)
  • autopay: never starve the final reminder; keep email cause text (db76789)
  • backup: free table locks before restore TRUNCATE to avoid LockNotAvailableError (712d502)
  • backup: skip missed schedule slots so auto-backup can't fire a burst (f947fed)
  • bot: derive BOT_USERNAME from live get_me() so links survive a bot swap (be0d7c9)
  • cabinet: time-bound inline RemnaWave sync on pay endpoints (a2913d3)
  • email-templates: editor baked sample values into saved overrides (#667043) (40f5214)
  • enhance campaign payload handling by optimizing database checks (a01ecc2)
  • etoplatezhi: use unique user_id as customer_id (telegram-less users got customer_id=None -> anti-fraud declines) (f688b19)
  • forward overpay sub-option in guest payments (055e7c1)
  • group info pages settings under interface category (b440a3f)
  • guard display mode cycling against env overrides (7945628)
  • handle database check failures in channel checker and improve Redis logging (6364d75)
  • harden telegram html splitter against oversized links and malformed markup (151abbf)
  • implement first-touch attribution protection for campaigns (be78179)
  • logo: write resized Telegram logo to a writable temp dir (381d123)
  • menu: /start renders the same subscription block as menu navigation (ff8b6cd)
  • notifications: convert missed /devices/purchase notification to create_bot + sort imports (5cb81d1)
  • oauth: backfill email on account link + normalize OAuth email (707a819)
  • oauth: backfill email_verified for existing VK/Yandex OAuth users (0092) (7399eae)
  • optimize campaign attribution handling by reducing database calls (8d522d0)
  • overpay: mask p12 passphrase and harden certificate upload (4063259)
  • payments: Lava top-up via cabinet failed with 422 invalid successUrl/failUrl (983f84a)
  • persist CID before central purchase fire in tariff_switch + paid-trial (review #2982) (eb35142)
  • promo-offers: don't time out the broadcast request on large fan-outs (d24a78c)
  • promocode: repair activation across all types, modes and surfaces (dd434d9)
  • remnawave: remove_device reports the real result, not just "no error" (c5b51c7)
  • security: cabinet/webapi audit fixes + regression tests (8b5b8c2)
  • subscription: apply paid tariff traffic limit on autopay trial→paid conversion (703940e)
  • subscription: ensure idempotency and handle race conditions in trial subscription creation (27e54cc)
  • subscription: optimize status handling by using a precomputed tuple for alive subscription statuses (6fc24c8)
  • tidy quick amount prompt deletes and respect eur floor in overpay buttons (1bb98c9)
  • timezone: panel returns UTC, stop shifting cabinet sync dates by local offset (7e732a4), closes #2990
  • trial: hide trial button/offer when trial is disabled (fffa863)
  • update save_pending_campaign to return None on Redis error and improve logging (c459a0f)
  • use bot factory for admin notifications (a67ca04)
  • user: handle IntegrityError for duplicate telegram_id during user creation (a91355e)
  • webhook: don't expire sibling subscriptions on user.deleted unless the panel confirms they're gone (d7341e9)

Refactoring

  • drop now-dead get_user_by_id fetch (09a910b)
  • email: single source of truth for auth email templates (998f9d7)

Documentation

  • account-merge: correct stale 'NO JWT required' comment (c2fd6ab)
  • autopay: document AUTOPAY_FAIL_* settings in .env.example (05bfbc0)

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

NewReleases is sending notifications on new releases.