mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-08-23 23:45:12 +00:00
Two gaps the adversarial pass found in the throughput rehome. The `taskOpen` gate had no behavioral coverage: deleting it left all 613 core tests green, because the existing cases pin the flag's VALUE and never its consequence — their resumed pass holds no pending calls, so an earlier condition already blocks attribution. The new case splits a task with two token_counts, so the resumed pass holds a real call and real generated tokens but never saw the task_started. Without the gate its task_complete takes the whole 6s window for the one call it happens to hold — double that call's share, with the first call left unattributed. With it, nothing is attributed. The timing branches spoke only function_call / function_call_output, while main and the ported codex-throughput.ts also count Codex Desktop's custom-tool transport. On the real corpus that is 11,390 tool pairs across 134 rollouts, whose wait time was being counted as active: GPT-5.5 drops from 506,373 to 490,337 active seconds (36.5 -> 37.7 Tok/s), gpt-5.6-sol from 66,194 to 54,120 (35.3 -> 43.2). Tool NAMING for custom_tool_call stays unported, so the start is captured in its own timing-only branch. Cost, calls and tokens are unchanged: codex totals are still byte-identical to the base branch over the 1326-session corpus. Also lands the adversarial append-split fixture as a permanent regression test: cold parse == warm append parse at EVERY line split point of a rollout with two complete tasks and a third left open at EOF, plus a three-pass variant and an idempotence check. It kills both ways of getting the resume point wrong — replaying past the boundary (callCount not truncated) and resuming at end-of-file (the open task's window lost). The validator's full O(n^2) three- pass sweep is trimmed to the boundary-crossing pairs; it adds ~90 parses and no extra mutation coverage. |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| package.json | ||
| tsconfig.json | ||
| tsup.config.ts | ||
| vitest.config.ts | ||