Skip to content

Fix queue admission for blocked tasks - #378

Merged
animus-launchapp-gitprovider[bot] merged 1 commit into
mainfrom
fix/task-1177-lifecycle-admission
Jul 31, 2026
Merged

Fix queue admission for blocked tasks#378
animus-launchapp-gitprovider[bot] merged 1 commit into
mainfrom
fix/task-1177-lifecycle-admission

Conversation

@Shooksie

Copy link
Copy Markdown
Contributor

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

  • Allow queued task admission only from ready or in-progress.
  • Reject backlog, blocked, on-hold, done, cancelled, unknown, or missing task status with a typed invalid-input error.
  • Apply the invariant to CLI/MCP enqueue and daemon control routing.
  • Leave dynamic subjects and deliberate direct workflow run behavior unchanged.
  • Document the lifecycle contract and add regression coverage.

Verification

  • cargo animus-fmt-check
  • cargo animus-bin-check
  • focused queue suite: 28 passed
  • full elevated orchestrator-cli run: 1,439 passed; one unrelated parallel workflow-fixture race failed, then passed in exact isolation
  • production TASK-1195 payload confirms canonical top-level status is blocked

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.

@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
animus-docs Ready Ready Preview Jul 31, 2026 8:20pm

Request Review

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@Shooksie
Shooksie marked this pull request as ready for review July 31, 2026 20:34

@animus-launchapp-gitprovider animus-launchapp-gitprovider Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@animus-launchapp-gitprovider
animus-launchapp-gitprovider Bot merged commit 70d8b99 into main Jul 31, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant