v1.1.1 — orchestrator FP + exit-attribution + inert-edit fixes for the Class-1 evidence layer
Three fixes, each surfaced by putting v1.1.0 through two Fable passes (a
break-it red-team + an architectural review) and a real subagent transcript:
-
SubagentStop falsely accused every test-running subagent of "no test ran":
the sidechain filter (correct for the main path) deleted the subagent's own
evidence while keeping its claim, and the stop also wrote shared session
state against the ORCHESTRATOR's contract. main() now branches on
hook_event_name===SubagentStop: parse the subagent's own file with
includeSidechain, grade its claim against its own evidence, write nothing
shared, demote block->warn. Empty/unreadable transcript -> abstain. -
Exit-status attribution was wrong across every shell connector:
&& echo ok
laundered a crash,cd x && npm testfired on a test that never ran,
|| true/pipe/;laundered a red into a green. Replaced with a
connector-aware rule (|| -> null; exit belongs to the last;/newline
statement; within the last statement attributable iff every non-family
segment is infallible {echo,true,:}; a null latest run abstains and never
displaces an earlier red). Command-position anchor (FAM_CMD_RE) so a runner
name in an argument (grep vitest ...) is not a family run. -
Stale-green fired on inert edits (a comment on a code line, whitespace
reformat): the mutation-is-code test is now the normalized code portion
(splitCodeComment + collapsed whitespace), so comment/whitespace deltas
don't count while string/code changes still do.
The review found five live defects in the half-finished implementation, two of
them the exact laundering/FP classes the changelog claimed closed (trailing
;/newline laundering, lone-& FP, redirected-echo FP, runner-name-in-arg
FP/FN, empty-subagent-transcript re-mint) -- all fixed at root with pinned
regressions.
Self-check 566 -> 596; legacy committed suite 509/509 (zero drift);
red-team 14/14; corpus unchanged (17/23 at-capture).
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Full symptom → root-cause → fix → regression-test in FIXES.md (v1.1.1).