fix(gsd): show accurate pause message for queued-user-message skip
Distinguish between malformed-JSON pauses and queued-user-message pauses in the notification so operators see the correct root cause. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1859cb0d1a
commit
c159844b05
1 changed files with 7 additions and 4 deletions
|
|
@ -582,11 +582,14 @@ export async function postUnitPreVerification(pctx: PostUnitContext, opts?: PreV
|
|||
"error",
|
||||
);
|
||||
} else if (!triggerArtifactVerified) {
|
||||
// #2883: If the artifact is missing because the tool invocation itself
|
||||
// failed (malformed/truncated JSON arguments), retrying will produce the
|
||||
// same failure. Pause auto-mode instead of entering a stuck retry loop.
|
||||
// #2883/#3595: If the artifact is missing because the tool invocation
|
||||
// failed (malformed JSON) or was skipped (queued user message), retrying
|
||||
// will produce the same failure. Pause auto-mode instead of looping.
|
||||
if (s.lastToolInvocationError) {
|
||||
const errMsg = `Tool invocation failed for ${s.currentUnit.type}: ${s.lastToolInvocationError}. Structured argument generation failed — pausing auto-mode.`;
|
||||
const isUserSkip = /queued user message/i.test(s.lastToolInvocationError);
|
||||
const errMsg = isUserSkip
|
||||
? `Tool skipped for ${s.currentUnit.type}: ${s.lastToolInvocationError}. Queued user message interrupted the turn — pausing auto-mode.`
|
||||
: `Tool invocation failed for ${s.currentUnit.type}: ${s.lastToolInvocationError}. Structured argument generation failed — pausing auto-mode.`;
|
||||
debugLog("postUnit", { phase: "tool-invocation-error-pause", unitType: s.currentUnit.type, unitId: s.currentUnit.id, error: s.lastToolInvocationError });
|
||||
ctx.ui.notify(errMsg, "error");
|
||||
s.lastToolInvocationError = null;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue