feat(deps): flip unassigned-ready branch from ready-comment to auto-assign #200
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#200
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Policy change supersedes #196.
PR #198 shipped the comment-only version (operator-in-the-loop for unassigned ready issues). Operator reversed that decision: at a single-operator scale, a manual tap per unblock defeats the point of automation. The heuristic is good enough to try auto-assign directly with a cheap override path.
My REQUEST_CHANGES review on #198 landed 2.5 min before the merge but was overridden by
reviewer-2's auto-APPROVED (process gap worth a separate bug). This issue ships the delta as a focused follow-up.What to change
1. Pivot
handleUnassignedReadyinapps/server/src/deps.tsReplace
postReadyComment(...)with:The assign call triggers the existing
issues.assignedwebhook →dispatchIssueForAgent→ agent picks up work. The short comment is the audit trail.2. Add
/unassignslash commandMirror
/holdmachinery inhandleIssueComment:/hold,/breakdown).updateIssueAssignees(repo, issue.number, [], token).Unassigned. Re-add a blocker + close it to re-trigger auto-assign, or assign manually.Keep
/holdfor "suppress all automation";/unassignis narrower ("this routing was wrong").3. Remove
postReadyCommentrendererDelete the full ready-to-assign comment template + its dead-code rendering path. Audit comment in step 1 replaces it.
4. Keep everything else
The mechanism #198 shipped is solid — keep:
suggestAssigneeheuristic/hold//ready/hold_issuesSQLite table/issues/readyendpointjust deps-backfillCLI5. Update tests
deps.test.ts:unassigned + all-blockers-closedpropagator cases now assertupdateIssueAssignees([type])+ short audit comment, notpostReadyComment(...)./unassignslash command clears assignees, trust-gated./holdtests, keep heuristic matrix unchanged.6. Docs
/unassignis the escape hatch./issues/readydoc if needed (endpoint semantics unchanged).Acceptance criteria
unassigned + all-blockers-closedpath auto-assigns + posts audit comment/unassignslash command implemented, trust-gated, testedpostReadyCommentrenderer removeddeps.test.tsheuristic tests still passOut of scope
References
apps/server/src/deps.ts::handleUnassignedReady— the one branch that pivots.apps/server/src/webhook-handlers.ts::handleIssueComment— where/unassignregisters./unassigncheap override for misroutes.