Skip to content

Catch refused-command loops and unrun tests; run the held-out gate off the turn, deterministically - #63

Merged
yogthos merged 3 commits into
mainfrom
remaining-fixes
Sep 29, 2026
Merged

yogthos merged 3 commits into
mainfrom
remaining-fixes

Conversation

@yogthos

@yogthos yogthos commented Sep 29, 2026

Copy link
Copy Markdown
Owner

Four fixes from the third endless-flight run.

  • A branch that retries a command head the shell policy refused (run bcd61b39 retried rm, nohup jolt and true about fifteen times) now hears about it: refusals are counted per head for the run, including approval refusals, which were never counted, and the refused-again gate names the head and says nobody will approve it (karamazov-q1tt).
  • A suite whose output shows no sign of running a test namespace the run added or changed is not read as green about it; the verify note names the namespace to register (karamazov-khzy).
  • Cell, manifest and policy saves validate in the turn and replay the held-out battery on a background lane; the edit is pending and not live until the verdict, which reaches the author as a message (karamazov-nha1).
  • The replay child runs one turn at a time with no supervisor stream, so two replays of a case are the same computation; three baseline reads of the endless-flight case came back identical (karamazov-x0dx).

Yogthos added 3 commits September 29, 2026 15:14
An approval refusal is neutral, so no counter moved when run bcd61b39's
implementor retried rm, nohup jolt and true about fifteen times over fifty
turns. The shell policy now names the head it refused, the branch counts
refusals per head for the whole run, and the refused-again gate fires on a
repeat, naming the head and saying nobody will approve it.
Run bcd61b39 added a test namespace the project's runner never required; the
suite reported the baseline's 94 tests green and the supervisor twice called
the work verified. The feature verify now checks that every test namespace the
run added or changed shows the runner's own marker in the output (Testing
<ns> for clojure.test, policy in :focused-verify :ran-marker), and a suite
that skipped one reads as tests not passed, naming it.
A refusal is confirmed by a second replay, and one case's refusal took 733 s
against a 900 s turn deadline while the gate ran inside the tool call. Cell,
manifest and policy saves now validate in the turn and hand the edit to a
background lane; the tool answers that it is pending and not live, and the
verdict reaches the branch that made it as a message on a later turn. Edits
are measured and committed in the order they were made.

Replays were not the same computation twice: a recording that forked replayed
its branches concurrently and which turn landed first was timing, so one
baseline read 11/14 and 13/14 minutes apart. The replay child now runs the
beam with serial turns and no supervisor stream; three reads of the same case
came back identical.
@yogthos
yogthos merged commit ccc85a6 into main Sep 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant