From ee416dff458b4fa6635301b198ec9d5068e8fc9e Mon Sep 17 00:00:00 2001 From: Mikhail Kilin Date: Tue, 3 Feb 2026 16:33:34 +0300 Subject: [PATCH] docs: update CONTEXT.md with refactoring progress --- CONTEXT.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/CONTEXT.md b/CONTEXT.md index ae01ffb..0e55291 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -5,7 +5,7 @@ ### Что сделано #### TDLib интеграция -- Подключена библиотека `tdlib-rs` v1.1 с автоматической загрузкой TDLib +- Подключена библиотека `tdlib-rs` v1.2.0 с автоматической загрузкой TDLib - Реализована авторизация через телефон + код + 2FA пароль - Сессия сохраняется автоматически в папке `tdlib_data/` - Отключены логи TDLib через FFI вызов `td_execute` до создания клиента @@ -330,6 +330,71 @@ reaction_chosen = "yellow" 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) ### Исправление критической ошибки — Stack Overflow при работе с сообщениями ✅ (2026-02-02)