Previously, handle_view_image called td_client.download_file() synchronously
while process_pending_chat_init already had a background synchronous=true
download in flight for the same file. TDLib returned is_downloading_completed=false
causing the view to fail on first press.
Fix: replace the blocking download in NotDownloaded/Downloading branches with
a pending_image_open intent flag. The main loop opens the modal automatically
when the background download result arrives via photo_download_rx. If no
background channel exists, a new one is started via direct tdlib_rs call.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- config.example.toml: duplicate of config.toml.example
- REFACTORING_ROADMAP.md, REFACTORING_OPPORTUNITIES.md: refactoring done in Phase 13
- TESTING_PROGRESS.md, TESTING_ROADMAP.md: stale since February, superseded by ROADMAP.md
- CHANGELOG.md: never maintained
- FAQ.md, CONTRIBUTING.md, SECURITY.md, INSTALL.md: boilerplate for a personal project
- .github/: GitHub templates unused (project hosted on Gitea)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove account deletion from modal and parallel polling — these won't
be implemented in the current scope.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DarkGray renders differently across terminals; a specific RGB value gives
consistent appearance. Also always show the account indicator in the footer.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Snapshots now reflect the new behaviour where the account indicator
is always visible (including "default"), matching the footer.rs change.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move all three phases of chat message loading from scattered locations
into a single dedicated module for better cohesion and navigability:
- Phase 1: open_chat_and_load_data (from handlers/chat_list.rs)
- Phase 2: process_pending_chat_init (extracted from 70-line inline block in main.rs)
- Phase 3: load_older_messages_if_needed (from handlers/chat.rs)
No behaviour changes — pure refactoring.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Render " " (2 spaces) for unselected messages instead of nothing,
so text stays aligned when navigating with the ▶ selection indicator.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When pressing down on the last message or up on the first message in
chat navigation, stay on the current message instead of exiting
message selection mode.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>