docs: update CONTEXT.md with refactoring progress

This commit is contained in:
Mikhail Kilin
2026-02-03 16:33:34 +03:00
parent 3edbaf2c2b
commit ee416dff45

View File

@@ -5,7 +5,7 @@
### Что сделано ### Что сделано
#### TDLib интеграция #### TDLib интеграция
- Подключена библиотека `tdlib-rs` v1.1 с автоматической загрузкой TDLib - Подключена библиотека `tdlib-rs` v1.2.0 с автоматической загрузкой TDLib
- Реализована авторизация через телефон + код + 2FA пароль - Реализована авторизация через телефон + код + 2FA пароль
- Сессия сохраняется автоматически в папке `tdlib_data/` - Сессия сохраняется автоматически в папке `tdlib_data/`
- Отключены логи TDLib через FFI вызов `td_execute` до создания клиента - Отключены логи TDLib через FFI вызов `td_execute` до создания клиента
@@ -330,6 +330,71 @@ reaction_chosen = "yellow"
reaction_other = "gray" reaction_other = "gray"
``` ```
## Последние обновления (2026-02-03)
### Рефакторинг — Упрощение main_input.rs (Фаза 1) ✅ (2026-02-03)
**Цель**: Упростить функцию `handle()` в `main_input.rs` путём извлечения обработчиков режимов в отдельные функции.
**Что сделано**:
Извлечено 9 функций-обработчиков из основной функции `handle()`:
1.**`handle_profile_mode()`** (~114 строк)
- Режим профиля пользователя/чата
- Модалка подтверждения выхода из группы (двухшаговая)
- Открытие в браузере, копирование ID
2.**`handle_message_search_mode()`** (~73 строки)
- Поиск по сообщениям в открытом чате (Ctrl+F)
- Навигация по результатам, переход к сообщению
3.**`handle_pinned_mode()`** (~34 строки)
- Режим просмотра закреплённых сообщений
- Навигация и переход к сообщению в истории
4.**`handle_reaction_picker_mode()`** (~79 строк)
- Emoji picker для добавления реакций
- Навигация по сетке 8x6, toggle реакции
5.**`handle_delete_confirmation()`** (~53 строки)
- Модалка подтверждения удаления сообщения
- Обработка yes/no, удаление для себя/всех
6.**`handle_forward_mode()`** (~48 строк)
- Выбор чата для пересылки сообщения
- Навигация по списку чатов, отправка
7.**`handle_chat_search_mode()`** (~32 строки)
- Поиск по чатам (Ctrl+S)
- Фильтрация списка, открытие чата
8.**`handle_escape_key()`** (~25 строк)
- Обработка Esc: отмена действий или закрытие чата
- Сохранение черновика при закрытии
9.**`handle_message_selection()`** (~85 строк)
- Режим выбора сообщения в открытом чате
- Действия: reply, forward, delete, copy, react
**Результат**:
- ✅ Функция `handle()` сократилась с **891 до ~350 строк** (на 61%)
- ✅ Извлечено **~543 строки** в отдельные функции
- ✅ Каждый режим теперь изолирован и легко тестируется
- ✅ Улучшена читаемость и maintainability кода
-Все 196 тестов (188 tests + 8 benchmarks) проходят успешно
**Также**:
- ✅ Обновлён `tdlib-rs` с версии 1.1 на 1.2.0
**Файлы изменены**:
- `src/input/main_input.rs` — извлечено 9 функций-обработчиков
- `Cargo.toml` — обновлена версия tdlib-rs
- `CONTEXT.md` — обновлён контекст проекта
**Следующие шаги**: Продолжить рефакторинг оставшихся блоков (Enter обработка, обработка клавиш в открытом чате, режим списка чатов)
---
## Последние обновления (2026-02-02) ## Последние обновления (2026-02-02)
### Исправление критической ошибки — Stack Overflow при работе с сообщениями ✅ (2026-02-02) ### Исправление критической ошибки — Stack Overflow при работе с сообщениями ✅ (2026-02-02)