Fix queue admission for blocked tasks - #378
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
VERDICT: APPROVE
No blocking findings. The queue-boundary guard is narrowly scoped to canonical task subjects, normalizes the supported in-progress spelling, fails closed for missing and non-dispatchable lifecycle states with typed invalid-input errors, and is consistently applied to both CLI/MCP and daemon control-routing enqueue paths. Dynamic subjects and direct workflow execution retain their intended behavior.
The regression coverage exercises allowed, denied, missing-status, and dynamic-subject cases, and the exact head f5316e0a8a6038bde1ab0ff724c021dd544ed684 has completed all configured checks successfully. The documentation and MCP tool description clearly expose the new lifecycle contract. The focused implementation and preservation of the explicit operator escape hatch are particularly good.
There was a problem hiding this comment.
VERDICT: APPROVE
No blocking findings. The synchronized head f5316e0a8a6038bde1ab0ff724c021dd544ed684 remains correct, complete, and narrowly scoped to task queue admission: it permits only ready/in-progress task lifecycle states, fails closed on blocked/terminal/missing states, applies the invariant to both MCP/CLI enqueue and daemon control routing, and preserves dynamic-subject and direct-workflow behavior.
Verification: all configured checks for the exact head are terminal and successful (cargo-check (workspace), clippy, rustfmt, docs-sync, smoke-help, dependency guardrail, and Vercel). Regression tests cover allowed, rejected, missing-status, and dynamic-subject cases. The explicit queue-boundary placement, typed invalid-input behavior, and clear documentation are particularly good.
Root cause
Queue enqueue fetched the canonical subject record for repository metadata but ignored the task lifecycle status. GitHub rework automation could therefore enqueue an externally blocked or terminal task and start another paid coding node.
Change
Verification
Release impact
Requires merge and a new immutable CLI release before the coordinated Portal runtime can enforce this in production. Portal PR #235 independently adds the v2 no-mutation/no-enqueue reworker contract.