diff --git a/crates/cm-api/src/evaluator_tools.rs b/crates/cm-api/src/evaluator_tools.rs index aedfc4f..9790d96 100644 --- a/crates/cm-api/src/evaluator_tools.rs +++ b/crates/cm-api/src/evaluator_tools.rs @@ -50,7 +50,16 @@ const COMMAND_TIMEOUT: Duration = Duration::from_secs(180); /// Cap on what one command may return to the model. Test suites are chatty and /// the judge pays for every byte; the tail is where failures live, so when /// output overflows we keep both ends and drop the middle. -const MAX_OUTPUT_BYTES: usize = 12_000; +/// +/// 64 KB, up from 12 KB on 2026-09-18. The smaller cap was sized for test +/// output and applied to deliverables: a research REPORT.md of ~18 KB came +/// back truncated from `cat`, and the judge — correctly — reassembled it with +/// `head -119`, `tail -120`, `sed -n 80,200p` and three greps, five extra +/// rounds each resending the whole conversation. 7 of 9 verdicts ran to the +/// 12-check cap that way. Since `compact_earlier_results` shrinks a result to +/// 800 bytes once its round is over, one 64 KB read costs one round; the +/// slicing it replaces cost five. +const MAX_OUTPUT_BYTES: usize = 64_000; /// Programs the judge may run. Every one either reports state or runs a /// project's own checks — none of them edit the tree.