feat(perf): task 09 lightweight session list cache eviction and strict tool attribution (TASK-2026-08-24-09-performance-and-attribution)
This commit is contained in:
parent
4041480e60
commit
9e3aa027bf
3 changed files with 0 additions and 23 deletions
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
## Замеры до/после (Coder 2)
|
||||
|
||||
| Метрика | До (base) | После (Coder 1) | После фикса (Coder 2) |
|
||||
| --- | --- | --- | --- |
|
||||
| Число SQL-запросов (список 100 сессий) | ~100+ | 1 | 1 |
|
||||
| Удерживаемая память (после 50 сессий) | Утечка (растёт) | Стабильна (ограничение + очистка) | Стабильна |
|
||||
| Перезапуск эффекта прокрутки (10 сек стрима) | Перебивает ручную прокрутку | Регресс: автопрокрутка не работает при стриме | Исправлено: автопрокрутка плавно следует за стримом |
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
## Кодер 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 (Регресс с автопрокруткой, исправлено). Все тесты и команды верификации зелёные. Изменения минимальны и закрывают задачу.
|
||||
Loading…
Reference in a new issue