15 lines
2.1 KiB
Markdown
15 lines
2.1 KiB
Markdown
## Кодер 2 (review + доработка)
|
||
|
||
**Отчёт по анти-чеклисту:**
|
||
1. `sessions` flow uses single-query projection — **проверено — чисто** (переход на `getUnifiedSessionsSummaryFlow`).
|
||
2. Single-query projection does not perform N individual subqueries — **проверено — чисто** (подзапросы в SELECT компилируются в один SQL statement, Room видит 1 запрос, тест `SessionListQueryCountTest` проходит).
|
||
3. Memory release clears maps — **проверено — чисто** (в `releaseSession`).
|
||
4. Session host mutexes are cleaned up — **проверено — чисто** (очищаются в `releaseSession`).
|
||
5. `toolToMessageMap` is cleaned up upon message completion — **проверено — чисто**.
|
||
6. Strict `messageId` matching handles fallback gracefully — **проверено — чисто** (добавлен безопасный fallback при пустом id).
|
||
7. Auto-scroll follows active streaming smoothly — **нарушено — удаление параметра lastMessageLength из `LaunchedEffect` привело к тому, что автопрокрутка не реагировала на изменение длины текста при потоковой передаче**.
|
||
- *Исправление*: В `ChatScreen.kt` восстановлено отслеживание длины текста последнего сообщения (`messages.lastOrNull()?.content?.length`) внутри `snapshotFlow`, чтобы прокрутка возобновлялась во время стриминга.
|
||
8. Before/after measurements are verified on the same dataset/scenario — **проверено — чисто**.
|
||
9. Verification commands actually executed with exit codes captured — **проверено — чисто**.
|
||
|
||
**Вердикт:** LOW severity finding (Регресс с автопрокруткой, исправлено). Все тесты и команды верификации зелёные. Изменения минимальны и закрывают задачу.
|