- runPaidShard no longer buffers whole 30-min stream-json streams in
RAM (x concurrent jobs): every byte tees to a per-shard log file
(slug-named, path printed at START for mid-run inspection and on the
FAILED terminal line); failures print a 64KiB tail read back from
disk; passing shards stay quiet (the file is the record) — the free
runner's proven contract. Classification unchanged: the strict
classifier still sees every byte first.
- the ~35 duplicated spawn/group-kill/wall-timer/finally-reap lines
move into runShardChild in test-strict-output.ts (detached-per-
platform spawn, signal forwarding, SIGKILL group kill at the wall,
drain-before-verdict); designed so the free runner can migrate later
- expectedFiles drift fixed toward ENFORCEMENT: the injected-command
exemption is gone — a fake command exiting 0 without bun's terminal
summary now reads FAILED (pinned: silent-pass → failed)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>