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** — добавить настройку хоткеев в конфиг
|
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. При первом запуске нужно пройти авторизацию
|
||||||
|
|||||||
Reference in New Issue
Block a user