docs: register BUG-07, BUG-08 and FEAT-02..FEAT-05 in roadmap

This commit is contained in:
Antigravity committed 2026-10-07 19:03:42 +03:00
1 parent c433156646
commit b43f34fdfd
1 file changed
+27 -3
+27 -3
View File
@@ -510,18 +510,30 @@
2. В интерфейсе [`app/static/js/modules/dictionary.js`](file:///home/ai-projects/services/study.qpid.pro/app/static/js/modules/dictionary.js) результат выводится в поле карточки без учёта обратного направления перевода (когда найденный английский эквивалент должен стать `term`, а введенное русское слово — `translation`).
- **Варианты решения**: автоматически определять язык ввода по наличию кириллицы `[\u0400-\u04FF]`. При кириллице: переключать `langpair` MyMemory на `"ru|en"`, выполнять обратный поиск в `offline_dictionary` по `translation`, и корректно заполнять форму добавления карточки (найденное английское слово в `term`, русский запрос в `translation`).
- **Статус**: зафиксировано, ожидает команды на исправление.
- [ ] **BUG-07: Ошибка загрузки этапа аудирования: `undefined is not an object (evaluating 'scenario.topic')`**:
- **Симптом**: при переходе к шагу аудирования в комплексном уроке возникает ошибка: `Ошибка загрузки этапа: undefined is not an object (evaluating 'scenario.topic')`, шаг невозможно пройти.
- **Диагностика**: в `app/static/js/modules/lesson.js` (строка 1658) после вызова `api.listening.getExercise()` клиент ожидает поле `data.scenario` (`const scenario = data.scenario;`), в то время как эндпоинт `app/routers/listening.py` (строка 47) возвращает объект упражнения напрямую (`safe_ex`). Из-за этого `scenario` равен `undefined`, и чтение `scenario.topic` выбрасывает исключение `TypeError`.
- **Варианты решения**: использовать `const scenario = data.scenario || data;` с опциональной цепочкой (`scenario?.topic`).
- **Статус**: зафиксировано, ожидает команды на исправление.
- [ ] **BUG-08: Бесконечный спиннер («Анализ ИИ длится бесконечно») на этапе дебрифинга урока**:
- **Симптом**: после прохождения всех этапов урока экран «🤖 Локальный ИИ Qwen 2.5 формирует ваш персональный разбор...» висит бесконечно долго без отображения результата.
- **Диагностика**:
1. Холодный запуск Ollama для модели Qwen 2.5 3B (после разгрузки памяти) занимает ~18.5 секунд только на загрузку весов в RAM. Генерация 450 токенов JSON на CPU суммарно требует 45-60 секунд.
2. В `app/ai.py` (строка 579) таймаут httpx к Ollama выставлен в 25 секунд (`timeout=25.0`), из-за чего запрос рвется, а во фронтенде в `api.lessons.submitDebrief` нет клиентского таймаута с аварийным выходом.
- **Варианты решения**: добавить жесткий клиентский таймаут (8-10 сек) на фронтенде с мгновенным отображением сверхбыстрого детерминированного отчета (`generate_deterministic_debrief`, работающего за 1 мс), либо переключить фоновый дебрифинг на модель `qwen2.5:1.5b`.
- **Статус**: зафиксировано, ожидает команды на исправление.
---
## ⏳ Coming Soon
## ⏳ Очередь новых функций (Feature Backlog)
- [ ] **🧘 Фокус-режим в читалке (Focus Mode / Zen Reader — 100% vh & 100% vw)**:
- [ ] **FEAT-01: 🧘 Фокус-режим в читалке (Focus Mode / Zen Reader — 100% vh & 100% vw)**:
- **Концепция**: чистый дзен-режим чтения на весь экран без отвлекающих панелей с сохранением 100% интерактивного перевода.
- **Интерфейс и верстка**:
- Скрытие шапки сайта (`navbar`), тулбара читалки, мобильной панели вкладок (`bottom tab bar`) и рамок.
- Текстовый контейнер расширяется на `100vw` и `100vh` (с учётом `env(safe-area-inset-*)`).
- Сохраняются все пользовательские настройки типографики (`Aa`): размер шрифта, гарнитура (Sans/Serif/Mono), ширина колонки и темы оформления (Dark, Sepia, Light, OLED).
- **Интерактивный перевод (Zero Loss)**:
- **Интерфейс перевода (Zero Loss)**:
- Клик / тап по любому слову по-прежнему открывает всплывающее окно перевода (десктопный попап или мобильный Bottom Sheet).
- Доступны контекстный ИИ-перевод предложений, словарные статьи и быстрое добавление `+ В словарь`.
- **Управление и HUD**:
@@ -529,6 +541,18 @@
- Ненавязчивый полупрозрачный плавающий оверлей в углу с индикатором прогресса чтения и кнопкой выхода `✕`.
- Выход по нажатию клавиши `Escape`, клику на `✕` или свайпу/тапу по верхнему краю экрана.
- Поддержка нативного Fullscreen API (`document.documentElement.requestFullscreen()`) для браузеров на десктопе и Android.
- [ ] **FEAT-02: 📝 Подробные конспекты для тетради и шпаргалки с таблицами (Murphy Detailed Notes & Markdown Tables)**:
- **Полноценные Markdown-таблицы**: отображение наглядных сравнительных таблиц в теории грамматики и подсказках (спряжения глаголов, формы неправильных глаголов, маркеры времени, предлоги места/времени).
- **Глубокая структурированная теория без воды**: развернутые объяснения правил по методике Raymond Murphy с живыми примерами и контрастными парами (вместо сжатых 1-2 предложений), готовые для записи в рабочую тетрадь.
- [ ] **FEAT-03: 🤖 Интеграция с Google NotebookLM для генерации инфографики и карточек (Низкий приоритет)**:
- Использование возможностей Google NotebookLM или мультимодальных моделей для автоматической генерации наглядной инфографики и подробных обучающих карточек, «разжевывающих» грамматические нюансы и идиомы.
- [ ] **FEAT-04: 🎯 Адаптивный объем тренировки (доведение до автоматизма) и умные рекомендации**:
- Настраиваемый объем заданий в блоках урока: выбор между 5, 10, 15, 20 заданиями или режим «тренировка до 90% точности / безошибочной серии».
- Персональные рекомендации при низком балле (< 75-80%): алгоритм анализирует ошибки и автоматически предлагает, какие конкретно статьи в читалке изучить и какие юниты грамматики Мерфи повторить.
- [ ] **FEAT-05: ✍️ Режим активного составления предложений (Sentence Builder / Production Mode)**:
- Тренировка активного словарного запаса: студенту предлагается слово из личного словаря (например, *«установленный» / «installed»*), на которое нужно составить и записать предложение на английском.
- Грамматические модификаторы сложности: задание условий по времени и конструкции (например: *«составь предложение в Past Simple»*, *«используй Future Continuous»*, *«составь вопрос с предлогом»*).
- Проверка через локальную языковую модель с мгновенным разбором правильности, стиля и грамматических ошибок.
- [ ] **🌐 Быстрый захват из браузера (Bookmarklet)**:
- Создать JavaScript-букмарклет для добавления слова/фразы из любого окна браузера в личный словарь [`study.qpid.pro`](https://study.qpid.pro) (низший приоритет).
- [ ] **Нативная автономная озвучка (HTML5 Web Speech API / `speechSynthesis`)**: