refactor: split main_input.rs into modular handlers (1199→164 lines)

Split monolithic input handler into 5 specialized modules:
- handlers/chat.rs (452 lines) - chat keyboard input
- handlers/modal.rs (316 lines) - modal dialogs
- handlers/chat_list.rs (142 lines) - chat list navigation
- handlers/search.rs (140 lines) - search functionality
- handlers/compose.rs (80 lines) - forward/reply/edit modes

Changes:
- main_input.rs: 1199→164 lines (removed 1035 lines, -86%)
- Preserved existing handlers: clipboard, global, profile
- Created clean router pattern in main_input.rs
- Fixed keybinding conflict: Ctrl+I→Ctrl+U for profile
- Fixed modifier handling in chat input (ignore Ctrl/Alt chars)
- Updated CONTEXT.md with refactoring metrics
- Updated ROADMAP.md: Phase 13 Etap 1 marked as DONE

Phase 13 Etap 1: COMPLETED (100%)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Kilin
2026-02-06 00:43:52 +03:00
parent c5235de6e2
commit 1d0bfb53e0
10 changed files with 1228 additions and 1072 deletions

View File

@@ -1,8 +1,46 @@
# Текущий контекст проекта
## Статус: Фаза 9 — ЗАВЕРШЕНО + Тестирование (100%!) 🎉
## Статус: Фаза 13 Этап 1 — ЗАВЕРШЕНО (100%!) 🎉
### Последние изменения (2026-02-04)
### Последние изменения (2026-02-06)
**🔧 COMPLETED: Глубокий рефакторинг input/main_input.rs (Фаза 13, Этап 1)**
- **Проблема**: `src/input/main_input.rs` содержал 1199 строк монолитного кода
- **Решение**: Разбит на модульную структуру handlers с 6 специализированными модулями
- **Результат**:
-`main_input.rs`: **164 строки** (было 1199) - чистый роутер
- ✅ Создано 5 новых handler модулей:
- `handlers/chat.rs` - 452 строки (обработка открытого чата)
- `handlers/modal.rs` - 316 строк (модальные окна)
- `handlers/chat_list.rs` - 142 строки (навигация по чатам)
- `handlers/search.rs` - 140 строк (поиск)
- `handlers/compose.rs` - 80 строк (forward/reply/edit)
- ✅ Сохранены существующие модули: clipboard.rs, global.rs, profile.rs
-**Удалено 1035 строк** (86% кода) из monolithic файла
- ✅ Улучшена модульность и читаемость кода
- **Дополнительные изменения**:
- 🔧 Исправлен хоткей профиля: Ctrl+I → Ctrl+U (конфликт с Tab в терминале)
- 🔕 Уведомления отключены по умолчанию (enabled: false в config)
- **Структура handlers/**:
```
src/input/handlers/
├── mod.rs # Module exports
├── chat.rs # Chat keyboard input (452 lines)
├── chat_list.rs # Chat list navigation (142 lines)
├── compose.rs # Forward/reply/edit modes (80 lines)
├── modal.rs # Modal dialogs (316 lines)
├── search.rs # Search functionality (140 lines)
├── clipboard.rs # Clipboard operations (existing)
├── global.rs # Global commands (existing)
└── profile.rs # Profile helpers (existing)
```
- **Метрики успеха**:
- До: 1199 строк в 1 файле
- После: 164 строки в main_input.rs + 1367 строк в 9 handler файлах
- Достигнута цель: main_input.rs < 200 строк ✅
- **Тестирование**: Требуется ручное тестирование всех функций приложения
### Изменения (2026-02-04)
**🔔 NEW: Desktop уведомления (Notifications) — Стадия 1/3 завершена**
- **Реализовано**: