Parity fixes for the new Mode::History path, plus regression fixes for
the pre-existing Replies/Sublist/topic flows and the shared list/compose
widgets, found via a feature-by-feature comparison against the legacy
HistoryWidget/HistoryInner.
Crashes:
- Bot start deep links (ShowAndStartBotMsgId/ShowAndMaybeStartBotMsgId)
no longer feed a special id into the sparse-ids viewer; /start is sent
and inlineReturnTo is preserved.
- Touch long-press over empty space with an active selection no longer
dereferences a null view in the translate-selected menu branch.
- AboutView element use-after-free when the card is replaced/destroyed.
- HistoryMessagesViewer no longer asserts on unresolved slice ids
(chat preview hardened).
History-mode parity:
- Typing/recording send actions, incoming/outgoing cloud drafts, manual
mark-as-unread clearing on open, channel-unavailable close.
- Force-reply dismissal after sending; bot keyboards no longer
resurrected by slice rescans; single-use re-show persists; keyboard
height parity; keyboard hidden while in-chat search is open.
- Unread mentions/reactions/poll-votes corner buttons; reply-return
stack; jump-to-date calendar; AboutView hit-testing + intro sticker
send; empty-group card.
- Quick Replies and moderate-mode hotkeys autocomplete; interactive
emoji; view-once (TTL) voice button; per-post Statistics and
paid-reaction context items; topic-creating bots; inline-bot slowmode
checks; edit-time countdown.
- Navigation stack clear/dedup, embedded-search recursion guard,
choose-to-report on the legacy path, active-chat re-click jump,
show-at-end positioning, unread-count undercounting, uncached-jump
blanking.
Regressions in pre-existing flows:
- Comments: unread jump on re-open, unread bar, and stray group-call/
requests/contact-status bars no longer leak into threads.
- Topics: no extra reply cancel on normal sends.
- Replies: bot command via section override threads into the comment.
- In-place migration re-subscribes the pinned tracker.
Performance:
- Killed a self-perpetuating 14s draft-write loop.
- Restored updateBotKeyboard's unchanged-state early-out.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Move settings_premium.h/cpp from settings/ to settings/sections/
- Add BuildHelper with kMeta for search indexing
- Index premium features and subscribe button for search
- Keep complex Premium section UI (custom top bar, feature list) as non-indexed
- Update all include paths across the codebase
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit allows to handle multiple URLs of all types as positional arguments simultaneously:
* tg:// links
* tonsite:// links
* interpret:// file paths
* generic file paths (to share files)
This allows to Drag'n'Drop files to the Telegram shortcut/binary.