fix(tasks): accept completion summaries with result markers#90864
fix(tasks): accept completion summaries with result markers#90864moeedahmed wants to merge 3 commits into
Conversation
|
Codex review: needs changes before merge. Reviewed July 8, 2026, 5:44 AM ET / 09:44 UTC. Summary PR surface: Source +17, Tests +70. Total +87 across 2 files. Reproducibility: yes. at source level. The PR regex matches planning-only strings before the existing planning blocker runs, and both ACP and subagent callers persist the classifier result into terminal task state. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Land a classifier-only fix that accepts explicit final result, report, or verification evidence while keeping future and conditional planning blocked, with tests through the public terminal-result contract unless maintainers intentionally expose the helper. Do we have a high-confidence way to reproduce the issue? Yes, at source level. The PR regex matches planning-only strings before the existing planning blocker runs, and both ACP and subagent callers persist the classifier result into terminal task state. Is this the best way to solve the issue? No as submitted. The classifier layer is the right place, but marker acceptance needs to be narrower and tests should use the public terminal-result API unless the helper export is intentional. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 4ae8d735bf54. Label changesLabel justifications:
Evidence reviewedPR surface: Source +17, Tests +70. Total +87 across 2 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (2 earlier review cycles)
|
|
This pull request has been automatically marked as stale due to inactivity. |
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: fix(tasks): accept completion summaries with result markers This is item 1/1 in the current shard. Shard 2/4. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
Summary
Make the required-completion classifier accept summaries that begin with progress narration but contain a real result/report/verification marker later in the text.
This keeps genuine progress-only messages blocked, while avoiding false
Required completion ended with progress-only textoutcomes for completed worker reports such as:I'll verify the fix. Verification: all 62 tests passed...I'll start running the suite. Result: 3 files changed...Investigating ... I patched the handler, tests passedWhy
A worker can produce a usable final report, but if the first words look like progress narration the current classifier can still mark it as progress-only. That leaves otherwise completed background work blocked or invisible to the requester.
This PR is deliberately scoped to the classifier. The separate
completion_handoff_pendingdelivery issue already has upstream PR coverage in #90740 / #90144, so this PR avoids duplicating that pending-handoff work.Changes
isProgressOnlyCompletionText().Real behavior proof
node classifier-test.mjs, performed the OpenClaw safe gateway restart, then ran a managed Claude ACP post-restart smoke.ACP_DELIVERY_SMOKE_OKafter the safe restart.completion_handoff_pendingdelivery queue change was not retested in this PR because it is already covered upstream by Implement durable system-event fallback for subagent completion when handoff is still pending #90740 / fix(announce): durable in-process queue fallback for direct-pending handoffs #90144; this PR only changes the classifier guard.Verification
pnpm exec oxfmt --check src/tasks/task-completion-contract.ts src/tasks/task-completion-contract.test.tspnpm exec oxlint src/tasks/task-completion-contract.ts src/tasks/task-completion-contract.test.tspnpm test src/tasks/task-completion-contract.test.tsAll passed locally on this PR branch.