fix(executor): bypass summary-incomplete refusal for PREMISE STALE: summaries
Address the code-review finding on the prior commit: a natural premise-stale summary like "PREMISE STALE: the task has no remaining work — implementation is already done on HEAD" matches /\b(incomplete|not implemented|not done| not finished)\b/i with 'the task' inside the 40-char first-person window, refusing fn_task_done with summary-claims-incomplete and deadlocking the escape hatch. When summary starts (case-insensitive) with PREMISE STALE:, skip the dissent-pattern and scoped-incomplete summary checks. Pending-code-review and bulk-step-completion guards still apply unchanged. Add executor-task-done-premise-stale.test.ts covering: the deadlock case now passes; dissent phrasing in a sentinel summary is allowed; case- insensitive sentinel; sentinel must be at the start (mid-summary doesn't bypass); REVISE verdict still blocks even with the sentinel.
This commit is contained in:
9
.changeset/executor-premise-stale-bypass.md
Normal file
9
.changeset/executor-premise-stale-bypass.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
"@runfusion/fusion": patch
|
||||
---
|
||||
|
||||
fix(executor): exempt `PREMISE STALE:` summaries from `summary-claims-incomplete` refusals
|
||||
|
||||
The preflight escape hatch added in the prior commit instructs the agent to call `fn_task_done` with a summary that begins `PREMISE STALE:` when reproduction shows HEAD already matches the desired state. Natural premise-stale wording such as *"PREMISE STALE: the task has no remaining work — implementation is already done on HEAD"* tripped `evaluateTaskDoneRefusal`'s scoped-incomplete regex (`/\b(incomplete|not implemented|not done|not finished)\b/i`) when the 40-char window contained `the task`/`this task`/first-person pronouns, refusing `fn_task_done` and deadlocking the executor — the exact failure the escape hatch was meant to prevent.
|
||||
|
||||
Add a sentinel bypass: when `summary` starts (case-insensitive) with `PREMISE STALE:`, skip the dissent-pattern and scoped-incomplete summary checks. The `pending-code-review-revise` and `bulk-step-completion-without-review` guards still run unchanged, so the bypass cannot dodge real review obligations or unfinished work — only the summary-phrasing checks are relaxed.
|
||||
Reference in New Issue
Block a user