Mikhail Kilin
a095fe277b
fix: always reserve space for selection marker to prevent text shift
...
ci/woodpecker/pr/check Pipeline failed
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 >
2026-02-24 15:49:08 +03:00
Mikhail Kilin
78fe09bf11
feat: implement photo albums (media groups) and persist account selection
...
Group photos with shared media_album_id into single album bubbles with
grid layout (up to 3x cols). Album navigation treats grouped photos as
one unit (j/k skip entire album). Persist selected account to
accounts.toml so it survives app restart.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 16:18:04 +03:00
Mikhail Kilin
6639dc876c
fixes
2026-02-13 19:52:53 +03:00
Mikhail Kilin
8e48d076de
refactor: implement trait-based DI for TdClient and fix stack overflow
...
Implement complete trait-based dependency injection pattern for TdClient
to enable testing with FakeTdClient mock. Fix critical stack overflow bugs
caused by infinite recursion in trait implementations.
Breaking Changes:
- App is now generic: App<T: TdClientTrait = TdClient>
- All UI and input handlers are generic over TdClientTrait
- TdClient methods now accessed through trait interface
New Files:
- src/tdlib/trait.rs: TdClientTrait definition with 40+ methods
- src/tdlib/client_impl.rs: TdClientTrait impl for TdClient
- tests/helpers/fake_tdclient_impl.rs: TdClientTrait impl for FakeTdClient
Critical Fixes:
- Fix stack overflow in send_message, edit_message, delete_messages
- Fix stack overflow in forward_messages, current_chat_messages
- Fix stack overflow in current_pinned_message
- All methods now call message_manager directly to avoid recursion
Testing:
- FakeTdClient supports configurable auth_state for auth screen tests
- Added pinned message support in FakeTdClient
- All 196+ tests passing (188 tests + 8 benchmarks)
Dependencies:
- Added async-trait = "0.1"
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-02 05:42:19 +03:00
Mikhail Kilin
c5896b7f14
tests
2026-01-31 23:02:53 +03:00
Mikhail Kilin
644e36597d
fixes
2026-01-31 03:48:50 +03:00
Mikhail Kilin
433233d766
commit
2026-01-30 17:26:21 +03:00
Mikhail Kilin
126c7482af
fixes
CI / Check (pull_request) Has been cancelled
CI / Format (pull_request) Has been cancelled
CI / Clippy (pull_request) Has been cancelled
CI / Build (macos-latest) (pull_request) Has been cancelled
CI / Build (ubuntu-latest) (pull_request) Has been cancelled
CI / Build (windows-latest) (pull_request) Has been cancelled
2026-01-29 01:22:57 +03:00
Mikhail Kilin
68a2b7a982
fixes
2026-01-28 11:39:21 +03:00