docs: обновлён CONTEXT.md с описанием исправлений
Добавлено описание исправлений от 31 января (вечер): - Исправление отображения новых сообщений - Исправление редактирования - Исправление reply - Удаление отладочных логов
This commit is contained in:
48
CONTEXT.md
48
CONTEXT.md
@@ -598,6 +598,54 @@ let message = MessageBuilder::new(MessageId::new(123))
|
||||
2. **P3.10 — Hotkey mapping** — добавить настройку хоткеев в конфиг
|
||||
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. При первом запуске нужно пройти авторизацию
|
||||
|
||||
Reference in New Issue
Block a user