- Удалено поле last_read_at из ChatReadState, используется только last_read_message FK - Исправлена логика автоотметки: отмечается последнее ЗАГРУЖЕННОЕ сообщение, а не последнее в чате - Убран вызов chat.mark_read() при WebSocket open_chat (отмечал последнее в чате вместо загруженного) - Добавлен signal для мониторинга изменений ChatReadState - Исправлена логика скролла: убран автоскролл при дозагрузке вниз - Добавлена проверка разрывов при WebSocket сообщениях (предотвращает пропуск сообщений) - Реализована автоотметка WebSocket сообщений (только если пользователь внизу) - Асимметричная загрузка: 24 контекста + 6 новых сообщений - Добавлен ScrollableMessageList компонент для корректной работы скролла - Миграции: 0028 (удаление last_read_at), 0029 (индекс на last_read_message)
Задачи в разработке
Активные задачи и функции, находящиеся в процессе реализации.
🚧 Текущие задачи
Модуль закупок
- PROCUREMENT_IMPLEMENTATION_PLAN.md - план реализации модуля закупок
Система получателей заявок
- REQUESTS_RECIPIENTS_PLAN.md - план разработки
- REQUESTS_RECIPIENTS_PROGRESS.md - текущий прогресс
- REQUESTS_RECIPIENTS_TESTING.md - план тестирования
Личный календарь
- PERSONAL_CALENDAR_FEATURE.md - функция личного календаря
📋 Статус задач
| Задача | Статус | Документация |
|---|---|---|
| Модуль закупок | 🟡 В разработке | PROCUREMENT_IMPLEMENTATION_PLAN.md |
| Получатели заявок | 🟡 В разработке | REQUESTS_RECIPIENTS_*.md |
| Личный календарь | 🔵 Планирование | PERSONAL_CALENDAR_FEATURE.md |
🎯 Workflow
- Планирование - создается _PLAN.md
- Разработка - ведется _PROGRESS.md
- Тестирование - используется _TESTING.md
- Завершение - файлы перемещаются в
completed/с суффиксом _COMPLETE.md
📝 Примечание
При завершении задачи:
- Переименуйте документ в *_COMPLETE.md
- Переместите в
../completed/ - Обновите changelog проекта