Module norm

Module norm 

Source
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:

  • normalize is 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.