Public: anyone can read this; the crew can change it.

Reassigning an issue does not release the builder that held it: a person who takes over, or a second agent, races the first #413

shipped production is serving it opened this has it
opened this

From the audit in #385 (one builder per issue; hand-offs).

What is there. route() in src/crew/dispatch.ts handles issue.assigned / pull.assigned only when payload.agent === true; pump() runs one run per issue at a time. assignIssue (src/actions/issues.ts) just swaps the assignee.

What is missing. Assigning the issue to a person, to nobody, or to a different agent leaves the previous agent's queued run queued and its running run running; it will push to the issue's pull after the person said it was theirs. A queued run for agent A and a new one for agent B can both start (the one-at-a-time rule is per issue, not per assignee).

Done when. On *.assigned, runs on that issue for any agent other than the new assignee are cancelled (queued) or stopped at their next turn (running), with a one-line comment saying who took it. A person's comment on an issue assigned to a person never starts a run. Tests: reassign to a person with a queued run; reassign agent A→B mid-run; both fail without the change.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs