diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-09 04:07:04 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-09 04:07:04 +0000 |
| commit | 54d320a61f8f9a0032d4d49f80248350fad3a39c (patch) | |
| tree | 694c045062abc6c34c2e6be9ec813c6870e8790b /internal/agentloop | |
| parent | 0fc0c1e6ee0f106da7b91da7847c163936128051 (diff) | |
fix(api): reject accepting a BLOCKED task directly
The nested-subtask-completion fix (ad00e18) necessarily added
BLOCKED -> COMPLETED to task.ValidTransition so
executor.Pool.maybeUnblockParent can complete a subtask whose own
children all finished. That widened acceptTask's gate (shared by
POST /api/tasks/{id}/accept and the chatbot MCP accept_task tool,
which validates only via task.ValidTransition) to also permit
accepting ANY BLOCKED task directly -- one still awaiting ask_user,
or with genuinely incomplete subtasks -- bypassing the completion
invariant this session's fix was built to protect. Caught by local
subagent review of that fix. Not live in production: the deployed
claudomator service is still on an earlier commit.
Diffstat (limited to 'internal/agentloop')
0 files changed, 0 insertions, 0 deletions
