Expand description
2026-09-26: Normalising bash tool output so that identical work reads
identically: progress lines are dropped, and timestamps, dates, durations,
pids and ps bookkeeping columns become placeholders. Every tool output is
fed back to the model, so a build that reports in 0.00s on one run and
in 1.23s on the next gives two greedy runs different contexts.
Each rule is anchored on a shape only tool bookkeeping has: a cargo status
word at the start of a line, a time(1) row, curl’s progress meter, a
timestamp. Compiler diagnostics pass through. Outside a fuser line, the
pid rules rewrite only runs of four or more digits, so (exit status: 101)
and 2 passed survive. A port survives when it is glued to /tcp, : or
., or follows the word port.
Only bash results are normalised (agent_shell.rs run_shell), before
truncation. read, grep and glob results are not, so an edit built
from a read matches the file. No rule can fix a ps COMMAND column that
shows another process on the box, or timing that changes what a command
prints.
Owner: bench, agentic. Invariants:
normalizeis idempotent: every placeholder it writes is digit-free.- It drops only progress lines, and reorders only runs of libtest result lines; every other line keeps its place.
Functions§
- normalize
- 2026-09-26: Normalise one shell result. Idempotent: every placeholder it writes is digit-free, so no rule matches its own output.