fix(story-mode): one verdict per call, failed saves, and loops that end at a check

From review round 2 (a question, failing tests first, and a push):

- A run that reported failed tests is now failed on the event itself, so
  its drawer and wire tags agree with the panel (the TDD red run was a red
  panel with a green "ok" tag; `; echo "exit=$?"` had hidden the exit code).
- A save whose command failed says so ("Claude tries to send the work up,
  and the command fails."), stamps ERROR instead of SAVED, and counts the
  error in the Director's cut. A save still running stamps nothing.
- A loop ends at its last check: README, .gitignore and the like written
  after the tests passed are their own fix panel instead of disappearing
  into the loop's diff.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Codeman maintainer committed 2026-10-18 10:43:04 +02:00
1 parent 848566828f
commit d7a6644c2f
4 files changed
+69 -13

No files matched your search

+4 -1
View File
@@ -109,7 +109,10 @@ export interface StoryEvent {
tool: string;
label: string;
intent: StoryIntent;
/** False when the tool result was flagged as an error; absent while the call is still running. */
/**
* False when the call failed: its result was flagged as an error, or it reported failed tests (an
* exit code a pipe hid). Absent while the call is still running.
*/
ok?: boolean;
pending?: boolean;
/** The one file this event concerns (Read, Edit, Write), as the transcript gave it. */