Repository navigation
starts: the loop's inbox read takes only step 3's MAILBOX line, settled before any Resume or loop jump (#109) - #156
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
In a resume start, the executor's step 4 sends the session to Resume, and Resume ends by entering the loop, whose step 0 reads the inbox. When the mailbox check was a later step of its own (step 5,
inbox.mjs --check), a model that followed the arrow literally read the inbox before the check. That check exists to refuse an inbox inside the clone, where PR code could write it.#128 moved the mailbox check into the start check (step 3,
start-check.mjs), which runs before step 4. ItsMAILBOX <inbox>orNO_MAILBOXline decides the mailbox. So the order is already safe; what was missing is the link in the text and a test that keeps the order:<inbox>from this start's step 3MAILBOX <inbox>line, which the start check settles before any later step can send the session there.NO_MAILBOX, and no text of theirs reads an inbox. No change there.Also: the superseded stop. In all three Claude Code roles, "stop the running waiter with
TaskStop" becomes "stop the waiter withTaskStopif one still runs; a waiter that exited 4 has already ended". A live check showed a superseded reviewer'sTaskStopfailing on a waiter that had already exited 4 (TAKEN_OVER): a takeover usually ends the old session's waiter before the old session learns it was superseded. Test: "superseded stop: every Claude Code role stops the waiter only if one still runs".Done, and the checks that show it
inbox.mjs --dirpasses outside the mailbox step, in any of the three adapters.MAILBOXline come before the first jump (→ **Resume**,enter the loop,## The loop,Each cycle:). The only inbox read is the loop's step 0, and that step takes its folder from theMAILBOXline.Mutation-checked, each failing the first test:
Calls a reviewer might push back on
Restart note
All three Claude Code roles (executor, reviewer, QA) need a fresh session to pick up the text. Generic and Kiro: none. Setup doesn't need re-running.
Closes #109