Skip to content

Epic: one number on every surface — cross-surface parity (audit follow-ups) #94

Description

@axisrow

Part of #87.

Аудит всех 44 смердженных PR форка (2026-10-11) нашёл один повторяющийся класс ошибок: число, ход или порог, который PR объявляли «одним определением для всех», на граничных случаях расходится между поверхностями. Каждый случай воспроизводится одной командой — блок «Как проверить» в sub-issue; проверять достаточно один раз.

Поверхности, которые должны показывать одно и то же

Поверхность Где считается
Сайдбар (токены, ходы) analyzeSessionFileMetadata — src/main/utils/jsonl.ts
Чат (чипы «Turn N») transformChunksToConversation — src/renderer/utils/groupTransformer.ts
Панель Visible Context (Re-read, Loop, Wait-loop) processSessionContextWithPhases — src/renderer/utils/contextTracker.ts
Колокол (бюджет хода, циклы) TurnBudgetDetector, LoopDetector — src/main/utils/loopDetection.ts
Хук бюджета хода analyzeTurn — scripts/turn-accounting.mjs
pnpm analyze:session buildLedger, computeFindings — src/cli/analyzeSession.ts
pnpm analyze:sessions scanSessionFile — src/cli/sessionInventory.ts
pnpm session:sums buildSums — src/cli/sessionSums.ts

Граничные случаи, на которых числа расходятся: запрос прокси без requestId (GLM), повторы одного вызова, компакт внутри хода, промпт сабагента в основном файле, релей тиммейта, сессия без user-сообщения в начале.

Sub-issues

Связанные в других эпиках: #88 и #91 (эпик #87) — та же природа: ledger и инвентарь считают одно и то же по-разному; #90 (эпик #78) — ключ вызова, на котором стоит Loop; #74 и #79 — сверка с реальными сессиями.

Порядок

Фаза Ишью Почему так
0 одна проверка каждого пункта по блоку «Как проверить» выводы агента, автор им не доверяет
1 #103, #102 сначала инструмент, который ловит расхождения; без него следующие PR не докажут паритет
2 #95, #96 малые фиксы: общий ключ запроса в инвентаре, один порог Loop в @shared/constants/loopPolicy
3 решение о каноне хода в scripts/turn-accounting.mjs → #97, #98, #99, #100 одно решение (компакт, сабагент, релей, старт без user) для всех потребителей
4 #101 ключ сопоставления колокола и панели зависит от решений фазы 3

Правила:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestepicТребует декомпозиции

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions