Split core and TUI crates

This commit is contained in:
Mikhail Kilin
2026-05-20 00:31:18 +03:00
parent 91a8700b8e
commit eefac431e5
238 changed files with 624 additions and 191 deletions

28
docs/IOS_CORE_REUSE.md Normal file
View File

@@ -0,0 +1,28 @@
# iOS core reuse
Первый workspace split готовит код к будущему iOS-клиенту, но не добавляет
Swift, SwiftUI, UniFFI, C ABI или XCFramework.
## Уже в `tele-core`
- Typed IDs и shared domain-типы: `types`.
- TDLib client wrapper, auth/chats/messages/reactions/users/update handling.
- `TdClientConfig` и `TdCredentials`: credentials передаются явно из клиента.
- Core-neutral `IncomingMessageEvent` вместо прямой зависимости от desktop notifications.
- Pure message grouping.
- Pure account profile structs and validation.
- Reusable `FakeTdClient` and TDLib test data.
## Остаётся TUI-only
- `ratatui`, `crossterm`, UI state, input handling and snapshots.
- Runtime config loading, `.env`, `accounts.toml`, XDG/macOS paths and lock files.
- Desktop notifications, clipboard, URL opening, terminal images and `ffplay`.
- PTY fixture and `termwright` E2E tests.
## Следующий этап
1. Decide the iOS-facing API shape on top of `tele-core`.
2. Add UniFFI or a C ABI only after the Rust boundary is stable.
3. Validate TDLib linking and database paths for `aarch64-apple-ios`.
4. Keep platform delivery concerns outside `tele-core`.