night shift: hand work back as pull requests, not local branches #30
No reviewers
Labels
No labels
claude-wip
map-report
map:is
map:se
needs-review
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
art/ismap!30
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "night-shift-pull-requests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Night-shift work landed on local
night/issue-<n>-<slug>branches that were never pushed,so reviewing a night meant
git logacross a handful of branches that existed only on thebox that made them. This makes each worked issue a pull request instead.
queue.py finish --branchis now the whole handoff: push the branch, open a PR whosebody is the worker's review note (with
Closes #<n>, so a merge closes the issue), commentthe PR link on the issue, move the label. The note stops being duplicated — it lives with
the diff, and the issue points at it.
Pushing lives in
queue.py, not in the subagent brief. It is the run's oneoutward-facing action, so confining it to the handoff means a worker can publish its own
branch and nothing else, and
.claude/settings.jsoncovers it by allowlistingqueue.pyrather than granting bare
git push. Never forced: a branch that diverged because reviewfixups were pushed onto it fails the handoff rather than discarding them. Nothing is merged
or approved by the run.
New
queue.py release— the outcome last night was missing. The #16 worker was killedby a session limit, which is not an obstacle; marking it
blockedwould have hidden aworkable issue from every future night.
releasejust un-claims it.Opening a PR needs the
write:repositorytoken scope, which art-bot's token did not have;the 403 now names the missing scope instead of dumping the raw error, since it would
otherwise surface at 02:00 at the very last step of a night's work.
Verification
finishpaths exercised against the live repo; this PR and thefive below were opened by the new code path.
settings.jsonre-validated as JSON; CLI help checked forfinishandrelease.Note that the preflight requires the tree to be on
main, so until this is merged a nightrun still uses the old branch-only flow.