Part of #94.
Зачем
Тесты в репо проверяют каждого потребителя отдельно. Единственный тест, сравнивающий несколько поверхностей, — test/shared/turnAccounting.parity.test.ts. Он сравнивает хук, проход CLI и часть панели на одной фикстуре без компакта, релеев, промптов сабагентов и строк прокси.
Все расхождения эпика (#95–#102) прошли CI зелёными. Регрессии приходили из более поздних PR, которые меняли правило в одном месте:
Что сделать
- Новый тест, например
test/shared/crossSurfaceParity.test.ts. В нём — построитель синтетического JSONL (как в блоках «Как проверить» из sub-issue эпика) и таблица «сценарий × поверхности»:
| сценарий |
что сравнивать |
запрос прокси без requestId (несколько строк, один message.id) |
итог токенов: сайдбар, детали сессии, analyze:session, analyze:sessions (#95) |
многострочный запрос Claude с параллельными tool_use |
число вызовов: сырой JSONL, ledger, панель (#88) |
| повторы одного вызова ×2/×3/×4 |
Loop: панель, loop_streak, cycles, колокол (#96) |
| компакт внутри хода |
wait-loop: CLI и панель; самый длинный ход в обеих CLI; номер хода везде (#97) |
| промпт сабагента в основном файле |
перечитывание за ход: хук, колокол, панель; число ходов: сайдбар, чипы, CLI (#98, #99) |
| релей тиммейта |
номер хода: чат, колокол, CLI (#99) |
| старт без user-сообщения |
счётчик сайдбара против чипов (#100) |
<task-notification> |
ход не открывается; есть элемент отображения (#104) |
- Начать со строк, которые совпадают уже сейчас. Каждый фикс из эпика добавляет свою строку в том же PR. Заведомо красные строки со
skip не добавлять.
- Тест входит в
pnpm test, то есть работает в CI.
Связано: #74 (эталонная фикстура и сверка с внешним источником) и #79 (корпус реальных сессий вне CI). Этот тест синтетический и работает в CI — они дополняют друг друга.
Acceptance
Part of #94.
Зачем
Тесты в репо проверяют каждого потребителя отдельно. Единственный тест, сравнивающий несколько поверхностей, —
test/shared/turnAccounting.parity.test.ts. Он сравнивает хук, проход CLI и часть панели на одной фикстуре без компакта, релеев, промптов сабагентов и строк прокси.Все расхождения эпика (#95–#102) прошли CI зелёными. Регрессии приходили из более поздних PR, которые меняли правило в одном месте:
Что сделать
test/shared/crossSurfaceParity.test.ts. В нём — построитель синтетического JSONL (как в блоках «Как проверить» из sub-issue эпика) и таблица «сценарий × поверхности»:requestId(несколько строк, одинmessage.id)analyze:session,analyze:sessions(#95)tool_useloop_streak, cycles, колокол (#96)<task-notification>skipне добавлять.pnpm test, то есть работает в CI.Связано: #74 (эталонная фикстура и сверка с внешним источником) и #79 (корпус реальных сессий вне CI). Этот тест синтетический и работает в CI — они дополняют друг друга.
Acceptance
pnpm test, работает в CI