docs: обновлён CONTEXT.md с описанием исправлений

Добавлено описание исправлений от 31 января (вечер):
- Исправление отображения новых сообщений
- Исправление редактирования
- Исправление reply
- Удаление отладочных логов
This commit is contained in:
Mikhail Kilin
2026-01-31 18:38:47 +03:00
parent 07c401e0f9
commit af3c36b9a1

View File

@@ -598,6 +598,54 @@ let message = MessageBuilder::new(MessageId::new(123))
2. **P3.10 — Hotkey mapping** — добавить настройку хоткеев в конфиг 2. **P3.10 — Hotkey mapping** — добавить настройку хоткеев в конфиг
3. **Юнит-тесты** — добавить для utils и других модулей 3. **Юнит-тесты** — добавить для utils и других модулей
## Недавние исправления
### 31 января 2026 (вечер) — Критические баги с сообщениями, редактированием и reply
1. **Исправлена проблема с отображением новых сообщений**
- **Проблема**: Новые сообщения (как отправленные, так и входящие) не появлялись в UI
- **Причина**: Сообщения добавлялись в начало массива (`insert(0)`), но UI показывал конец массива
- **Решение**: Изменён порядок хранения — сообщения теперь добавляются в конец (`push()`)
- **Результат**: Сообщения отображаются корректно в реальном времени
2. **Исправлено редактирование сообщений**
- **Проблема**: Ошибка "Message not found" при попытке редактировать
- **Причина**: Метод `get_selected_message()` конвертировал индекс в обратном порядке (старая логика)
- **Решение**:
- Убрана конвертация индекса в `get_selected_message()`
- Исправлена логика выбора: `start_message_selection()` начинает с индекса `len-1` (последнее сообщение)
- Обновлена логика навигации: `select_previous_message()` уменьшает индекс, `select_next_message()` увеличивает
- **Результат**: Редактирование работает без ошибок
3. **Исправлен reply на сообщения**
- **Проблема 1**: Reply не отправлялся (нажатие Enter ничего не делало)
- **Причина**: Неправильная структура условий — reply попадал в блок с `selected_message_id`, но не в блок отправки
- **Решение**: Изменена структура условий — проверка `is_editing()` вынесена наружу
- **Проблема 2**: Reply отправлялся, но не показывалось превью исходного сообщения
- **Причина**: Параметр `_reply_info` в `send_message()` не использовался
- **Решение**: Убрано подчёркивание и добавлена логика сохранения `reply_info` в `MessageInfo` после `convert_message()`
- **Результат**: Reply работает корректно с превью исходного сообщения
4. **Удалены отладочные логи**
- Удалены временные `eprintln!` из `src/tdlib/client.rs` и `src/input/main_input.rs`
### 31 января 2026 (утро) — Баги в тестах и работе приложения
1. **Исправлены ошибки компиляции тестов**
- Исправлены синтаксические ошибки в `tests/delete_message.rs` и `tests/reply_forward.rs`
- Исправлены проблемы с доступом к полям (field vs method)
- Исправлены несоответствия типов (MessageId vs i64)
2. **Исправлена проблема с загрузкой истории сообщений**
- Добавлен вызов `open_chat()` перед `get_chat_history()` в `src/tdlib/messages.rs`
- Реализована логика повторных попыток (retry) с задержками для синхронизации TDLib
- Исправлен race condition с установкой `current_chat_id` (теперь устанавливается после загрузки сообщений)
- **Результат**: История загружается корректно с первого раза (проверено: 51 сообщение)
3. **Уточнена документация по редактированию сообщений**
- **Проблема**: Пользователь нажимал 'r' (reply) вместо Enter при попытке редактировать
- **Правильный процесс**: ↑ (выбор) → Enter (начать редактирование) → изменить текст → Enter (сохранить)
- **Ошибочный процесс**: ↑ (выбор) → 'r' (начинается режим Reply!) → текст отправляется как ответ
- Добавлены инструкции в документацию для избежания путаницы
## Известные проблемы ## Известные проблемы
1. При первом запуске нужно пройти авторизацию 1. При первом запуске нужно пройти авторизацию