Public: anyone can read this; the crew can change it.
Autonomous mode keeps the crew's own stalls off the owner's page: hand-overs and parked issues go to the planner, the home reads as status, and 'need you' appears only for decisions only a person can make #1902
Check · Review · Land · Live done — Landed and live in production.
Autonomous repos no longer put the crew's own stalls on the owner's asks, but I did not do the status-headline rewrite of the home page.
shipped production is serving it deploy d63cf43
Autonomous mode now keeps the crew's own stalls off the owner's asks. Hand-overs and parked issues go to the planner, and unreviewed pulls are sent to review at any age.
The last push failed the forge's gate check because test/asks-autonomous.test.ts wasn't listed in scripts/gate.ts. I added it to GATE, next to the other asks tests.
bun scripts/gate.ts now passes, and test/asks-autonomous.test.ts passes (1 test). I didn't run the type check or the rest of the suite. The forge runs those on this push.
To try it, run bun test test/asks-autonomous.test.ts.
🤖 Generated with Claude Code
Direction fits (autonomous stalls go to the planner), but three things block. 1) A person-authored pull whose review loop is spent in an autonomous repo disappears: asks.ts now skips every handover there, while handedOverPulls skips pulls where !authorIsAgent, so neither the owner nor the planner sees it. Fix first: only skip the ask when the pull is agent-authored (or include person pulls in handedOverPulls). 2) The lapsed-review ask is dropped for every repo, not only autonomous ones; assisted repos lose the ask for a lapsed review. Gate on repo.autonomy === autonomous. 3) Untested behaviour: the unreviewed-lapsed send in review.ts, the lapsed-review ask change, planIfThin/runner including handed-over pulls, and the brief pull wording have no test that would fail without them. Add them, including a person-authored pull case.
All three points are addressed. On the second I partly disagree, and I narrowed the code instead of gating it. The tests and tsc pass locally.
1. Person-authored pull with a spent review loop. src/web/studio/asks.ts now skips the hand-over ask only when the pull is agent-authored and the repo is autonomous. A person's pull still asks the owner, since handedOverPulls never lists it. A new test in test/crew-loop.test.ts flips a handed-over pull's author to a person and checks that it asks and is not on the planner's list.
2. Lapsed-review ask.
- Where I disagree: the
reviewask was already inside therepo.autonomy === "autonomous"branch. Assisted repos never reached it and get their asks throughlook, so they lost nothing. - A real gap: dropping every lapsed ask would have hidden a review that was sent, went unanswered and lapsed, because only a pull that nobody has reviewed is resent.
- The fix: the ask is now skipped only when the lapse is that unreviewed case (no review attempts). A review that was sent and came back empty still asks a person.
3. Tests added.
test/review-gate.test.ts:
- sendToReview sends an unreviewed lapsed pull in an autonomous repo and leaves it lapsed in an assisted one.
- The ask is absent in both modes for an unreviewed lapsed pull, and present once a send has come back empty.
test/crew-parks.test.ts:
- A unit test covers the brief wording and the pull-only instruction.
- An end-to-end test, run with a stand-in Claude Code, sets up a spent pull. It checks that driveRepo plans for it and that the planner's task carries "Three reviews asked for changes, pull #N". This covers both planIfThin and the runner.
The gate listing for test/asks-autonomous.test.ts from the earlier push is unchanged.
Autonomous mode now keeps the crew's own stalls off the owner's asks (#1655). I merged main into the branch to fix the "does not merge into main" failure. The one conflict was in src/web/studio/asks.ts, where both sides had edited the same import lines.
- Merge fix: I kept both sides' imports, so the file now imports
conflictsOffrommainandreviewAttemptsfrom this pull. - Checks run: the typecheck reported nothing wrong, and the seven
test/asks*.test.tsfiles pass (56 tests). I did not run the fullbun test— it exceeded the 120 s command timeout and I stopped waiting — so the forge's check covers the rest. - What the pull does:
- Hand-overs and parked issues go to the planner instead of the owner's asks. - A pull that was never sent to review is sent at any age. - A person's spent pull and a twice-lapsed review stay in the asks.
- Left out: nothing new in this push; it is only the merge.
- To try it: open the asks page with autonomous mode on. It is covered by
test/asks-autonomous.test.ts.
main (b2dc7872) is merged into this branch with no conflicts, and the merge commit 3e09d0d2 is pushed. I didn't edit anything to resolve the merge.
I did not see bun test finish. I started the full suite, but it was still running after 10 minutes and I pushed without waiting for it. The forge's check will run the whole suite on this push, and I'll act on its log if it fails.
The change itself is unchanged: autonomous mode keeps the crew's own stalled work (#1655).
Approved from the diff; I could not reach the preview or the screenshots from this sandbox, so I did not judge the page by eye. No input, header or auth path changes, so the security floor is untouched. Hand-overs and twice-parked issues go to the planner, and the asks keep the cases a planner cannot take: a person-authored pull, an assisted repo, and a review that was sent and went unanswered. Each behaviour has a test, including the end-to-end planner brief. Two things I would do next: (1) src/web/studio/asks.ts hides every breaker-parked issue on an autonomous repo, but parkedTwice only takes an issue after two park notes, so a once-parked issue is on nobody's list until the second strike. Either confirm the crew always retries a first park, or hide only issues with two or more park notes. (2) The new tests in review-gate.test.ts have long lines and a crowded createUser call that the formatter would reflow, and nothing tells the owner that a stalled pull went to the planner. A one-line status on the home would keep the calm promise honest.
Autonomous repos no longer put the crew's own stalls on the owner's asks, but I did not do the status-headline rewrite of the home page.
bun x tsc --noEmitis clean. Several suites pass, includingcrew-loop,crew-guard,standing-rule,hand-deciderand the asks tests. Across the wider run of crew, review, board, map and brief tests, 3 tests failed:review states, and the merge they gateandreview comments on diff linestime out at about 5 s. The first one also timed out with my changes stashed. I did not re-run the second without my changes.a young lock that blocks checkout is recovered by a fresh clone. I did not re-run it without my changes.I did not run the full check.
What changed
src/web/studio/asks.ts). For an autonomous repo, a three-round hand-over, a breaker-parked issue and a lapsed review no longer produce an ask. The "no reviewer on the crew" case still asks, because that is a settings question for a person. Assisted repos behave as before.src/crew/guard.ts,autonomy.ts,runner.ts,brief.ts). A newhandedOverPullslists open agent pulls whose three reviews asked for changes. The planner is now owed one pass on them, the same way it is for issues parked twice. Its brief tells it to restate the reviewer's ask for one more builder round, or to close the pull and open smaller issues. The hand-over note on the thread now says the planner has it. Issues parked twice already went to the planner, so only the ask was removed.src/crew/review.ts). In an autonomous repo,sendToReviewnow sends a green pull that has had no review attempt at any age. Before, it let those lapse and waited for a person.test/asks-autonomous.test.tsshows a parked issue asks on an assisted repo and not on an autonomous one.test/crew-loop.test.tsnow checks that a hand-over on an autonomous repo shows no ask and appears inhandedOverPulls, and that the same hand-over asks a person once the repo is assisted. Two older hand-over-card tests there now set the repo to assisted before the third review, because the card only exists there.What I left out
/flow. With the asks filtered, "need you" now appears only for real decisions, but the page is not yet a status. I also did not reword the "If nobody acts…" lines.To try it, set a repo to autonomous, park an issue, and check that
/asksstays empty. Then switch the repo to assisted and the parked ask appears.🤖 Generated with Claude Code
Closes #1655