From 08a45448bc10c67318dd6c69f0163a0fd3d36b66 Mon Sep 17 00:00:00 2001 From: XiaoqiangWu Date: Tue, 11 Aug 2026 12:47:49 +0800 Subject: [PATCH 1/5] fix: recover completed empty responses Track assistant output evidence and retry strict empty unknown completions after idle. Prevent retries while aborted or waiting for questions and permissions, and cover the recovery flow with tests. Signed-off-by: XiaoqiangWu --- README.md | 25 +++- dist/index.d.ts.map | 2 +- dist/index.js | 141 +++++++++++++++++++-- dist/index.js.map | 2 +- dist/recovery.d.ts | 29 +++++ dist/recovery.d.ts.map | 1 + dist/recovery.js | 44 +++++++ dist/recovery.js.map | 1 + package.json | 2 + src/index.ts | 160 ++++++++++++++++++++++-- src/recovery.ts | 77 ++++++++++++ test/plugin.test.ts | 272 +++++++++++++++++++++++++++++++++++++++++ test/recovery.test.ts | 79 ++++++++++++ 13 files changed, 807 insertions(+), 28 deletions(-) create mode 100644 dist/recovery.d.ts create mode 100644 dist/recovery.d.ts.map create mode 100644 dist/recovery.js create mode 100644 dist/recovery.js.map create mode 100644 src/recovery.ts create mode 100644 test/plugin.test.ts create mode 100644 test/recovery.test.ts diff --git a/README.md b/README.md index 96c6cb8..99f967b 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # opencode-auto-continue -OpenCode plugin that automatically sends "continue" when transient errors occur, allowing sessions to recover and resume without manual intervention. Handles API errors, provider issues, context overflow, connection resets, tool failures, and more — with configurable error patterns so you control exactly which errors trigger a retry. +OpenCode plugin that automatically sends "continue" when transient errors or completed empty assistant responses occur, allowing sessions to recover and resume without manual intervention. Handles API errors, provider issues, context overflow, connection resets, tool failures, empty provider responses, and more — with configurable safeguards so you control exactly which failures trigger a retry. image ## How It Works -1. **Detects errors**: Listens for `session.error` and `message.updated` events -2. **Pattern matching**: Matches error name + message against configurable patterns (case-insensitive substrings). Exclude patterns are checked first to prevent retrying user-initiated aborts. -3. **Waits for idle**: When the session becomes idle after a matched error, sends "continue" via `promptAsync` +1. **Detects recoverable failures**: Listens for explicit errors and completed assistant messages that end with `finish: "unknown"`, zero output tokens, and no text or error. +2. **Pattern and state matching**: Matches explicit errors against configurable patterns and strictly validates the latest assistant message before treating an empty response as recoverable. User aborts, tool calls, questions, and permission prompts are excluded. +3. **Waits for idle**: When the session becomes idle after a recoverable failure, rechecks the latest state after the configured delay and sends "continue" via `promptAsync`. 4. **Safety limits**: Configurable throttle and max consecutive retries prevent infinite loops 5. **Auto-reset**: Consecutive retry counter resets when a message completes successfully @@ -86,6 +86,9 @@ Create `opencode-auto-continue.jsonc` in your `.opencode/` directory. The follow // Set to false to disable the plugin without removing it "enabled": true, + // Retry finish="unknown" assistant responses with zero output and no text/error + "retryEmptyResponses": true, + // Update throttle: minimum ms between remote version checks. // The plugin only checks for new versions when you run /ac, /ac status, // or /auto-continue — this controls how often that check hits GitHub. @@ -101,12 +104,26 @@ Create `opencode-auto-continue.jsonc` in your `.opencode/` directory. The follow | `delayMs` | number | `500` | Delay after session idle before sending continue | | `maxConsecutive` | number | `5` | Max consecutive auto-continues before giving up (0 = unlimited) | | `enabled` | boolean | `true` | Set `false` to disable without removing from plugin list | +| `retryEmptyResponses` | boolean | `true` | Retry strict completed empty assistant responses without an explicit error | | `updateThrottleMs` | number | `30000` | Update throttle: minimum ms between remote version checks | | `errorPatterns` | string[] | *(see below)* | Error substrings that trigger auto-continue (case-insensitive) | | `excludePatterns` | string[] | *(see below)* | Error substrings that **never** trigger auto-continue (checked first) | All fields are optional — omitted keys use the defaults shown above. You can also manage timing settings at runtime via `/auto-continue global `. +### Completed Empty Responses + +Some providers can finish a request without emitting an explicit error or a usable assistant response. The plugin treats this as recoverable only when the latest assistant message has all of the following properties when the session becomes idle: + +- `finish` is exactly `"unknown"` +- output token count is `0` +- no non-empty text part was emitted for that assistant message +- no assistant or session error was reported +- the turn was not user-aborted +- the session is not waiting for a question answer or permission reply + +The existing `delayMs`, `throttleMs`, and `maxConsecutive` limits apply. A late successful `finish: "stop"` event cancels a queued retry, and a successful stop resets the consecutive retry counter. Set `retryEmptyResponses` to `false` to retain error-only behavior. + ### Error Patterns The plugin matches each error against a list of patterns. The error is formatted as `"ErrorName: error message"` and each pattern is matched as a case-insensitive substring. diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index 7896960..1cd6b07 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuXlD,QAAA,MAAM,MAAM,EAAE,MAw3Bb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAiZlD,QAAA,MAAM,MAAM,EAAE,MAw+Bb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 80a11c2..a950a34 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,5 +1,6 @@ import { access, lstat, mkdir, readdir, readFile, realpath, rm, writeFile } from "node:fs/promises"; import { join } from "node:path"; +import { createTurnEvidence, isCompletedEmptyResponse, recordTextPart, updateAssistantEvidence, } from "./recovery.js"; const PLUGIN_NAME = "opencode-auto-continue"; const CONFIG_DIR = ".opencode"; const CONFIG_FILE = `${PLUGIN_NAME}.jsonc`; @@ -217,6 +218,8 @@ const DEFAULTS = { maxConsecutive: 5, /** Whether the plugin is enabled */ enabled: true, + /** Retry completed assistant responses that contain no usable output */ + retryEmptyResponses: true, /** Minimum ms between remote version checks */ updateThrottleMs: 30_000, /** Disable all remote calls and version-related filesystem checks */ @@ -286,6 +289,8 @@ async function loadConfig(directory, log) { config.maxConsecutive = parsed.maxConsecutive; if (typeof parsed.enabled === "boolean") config.enabled = parsed.enabled; + if (typeof parsed.retryEmptyResponses === "boolean") + config.retryEmptyResponses = parsed.retryEmptyResponses; if (typeof parsed.updateThrottleMs === "number") config.updateThrottleMs = parsed.updateThrottleMs; if (typeof parsed.offlineMode === "boolean") @@ -332,6 +337,17 @@ function isRetryableError(error, config) { } return false; } +function isExcludedError(error, config) { + if (!error || typeof error !== "object") + return false; + const err = error; + const data = err.data; + const name = typeof err.name === "string" ? err.name : ""; + const message = (typeof data?.message === "string" ? data.message : null) ?? + (typeof err.message === "string" ? err.message : ""); + const matchStr = `${name}: ${message}`.toLowerCase(); + return config.excludePatterns.some((pattern) => matchStr.includes(pattern.toLowerCase())); +} function errorMessage(error) { if (!error || typeof error !== "object") return "unknown"; @@ -592,6 +608,7 @@ const plugin = async ({ client, directory }) => { delayMs: globalConfig.delayMs, maxConsecutive: globalConfig.maxConsecutive, enabled: globalConfig.enabled, + retryEmptyResponses: globalConfig.retryEmptyResponses, updateThrottleMs: globalConfig.updateThrottleMs, }; if (globalConfig.offlineMode) { @@ -615,11 +632,22 @@ const plugin = async ({ client, directory }) => { lastContinueTime: 0, pendingContinue: false, consecutiveCount: 0, + turn: createTurnEvidence(), }; sessions.set(sessionID, state); } return state; } + function clearIdleTimer(state) { + if (state.idleTimer) + clearTimeout(state.idleTimer); + state.idleTimer = undefined; + } + function resetTurn(state) { + clearIdleTimer(state); + state.pendingContinue = false; + state.turn = createTurnEvidence(); + } async function sendContinue(sessionID) { const state = sessions.get(sessionID); if (!state?.pendingContinue) @@ -628,7 +656,12 @@ const plugin = async ({ client, directory }) => { const now = Date.now(); if (now - state.lastContinueTime < config.throttleMs) { const remaining = config.throttleMs - (now - state.lastContinueTime); - log(`Throttle active for session ${sessionID}, ${remaining}ms remaining, skipping`); + log(`Throttle active for session ${sessionID}, retrying in ${remaining}ms`); + clearIdleTimer(state); + state.idleTimer = setTimeout(() => { + state.idleTimer = undefined; + void sendContinue(sessionID); + }, remaining); return; } if (config.maxConsecutive > 0 && state.consecutiveCount >= config.maxConsecutive) { @@ -1081,9 +1114,15 @@ const plugin = async ({ client, directory }) => { const config = getEffectiveConfig(sessionID); if (!config.enabled) return; + const state = getState(sessionID); + if (isExcludedError(error, config)) { + state.turn.aborted = true; + state.pendingContinue = false; + clearIdleTimer(state); + return; + } if (isRetryableError(error, config)) { log(`Retryable error in ${sessionID}: ${errorMessage(error)}`); - const state = getState(sessionID); state.lastErrorTime = Date.now(); state.pendingContinue = true; } @@ -1092,25 +1131,78 @@ const plugin = async ({ client, directory }) => { if (event.type === "message.updated") { const props = event.properties; const info = props.info; - if (!info?.sessionID || info.role !== "assistant") + if (!info?.sessionID) + return; + const state = getState(info.sessionID); + if (info.role === "user") { + resetTurn(state); + return; + } + if (info.role !== "assistant") return; const config = getEffectiveConfig(info.sessionID); + updateAssistantEvidence(state.turn, info); + if (isExcludedError(info.error, config)) { + state.turn.aborted = true; + state.pendingContinue = false; + clearIdleTimer(state); + return; + } // Retryable error on assistant message if (config.enabled && isRetryableError(info.error, config)) { log(`Retryable error on assistant message in ${info.sessionID}: ${errorMessage(info.error)}`); - const state = getState(info.sessionID); state.lastErrorTime = Date.now(); state.pendingContinue = true; } // Reset counter on successful completion - if (info.metadata?.done && !info.error) { - const state = sessions.get(info.sessionID); - if (state && state.consecutiveCount > 0) { + if ((info.finish === "stop" || info.metadata?.done) && !info.error) { + clearIdleTimer(state); + state.pendingContinue = false; + if (state.consecutiveCount > 0) { log(`${info.sessionID} completed successfully, resetting counter`); state.consecutiveCount = 0; } } } + if (event.type === "message.part.updated") { + const props = event.properties; + const part = props.part; + if (!part?.sessionID) + return; + recordTextPart(getState(part.sessionID).turn, part); + } + const eventType = event.type; + if (eventType === "permission.updated" || + eventType === "permission.asked" || + eventType === "permission.v2.asked" || + eventType === "permission.replied" || + eventType === "permission.v2.replied") { + const props = event.properties; + if (!props.sessionID) + return; + const state = getState(props.sessionID); + state.turn.waitingForPermission = !eventType.endsWith("replied"); + if (state.turn.waitingForPermission) { + state.pendingContinue = false; + clearIdleTimer(state); + } + } + if (eventType === "question.asked" || + eventType === "question.v2.asked" || + eventType === "question.replied" || + eventType === "question.v2.replied" || + eventType === "question.rejected" || + eventType === "question.v2.rejected") { + const props = event.properties; + if (!props.sessionID) + return; + const state = getState(props.sessionID); + state.turn.waitingForQuestion = eventType.endsWith("asked"); + if (state.turn.waitingForQuestion) { + state.pendingContinue = false; + clearIdleTimer(state); + } + } // ── session.idle: send continue if pending ── if (event.type === "session.idle") { const props = event.properties; @@ -1121,12 +1213,39 @@ const plugin = async ({ client, directory }) => { if (!config.enabled) return; const state = sessions.get(sessionID); - if (state?.pendingContinue) { - log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); - setTimeout(() => sendContinue(sessionID), config.delayMs); - } + if (!state || state.idleTimer) + return; + if (state.turn.aborted || state.turn.waitingForQuestion || state.turn.waitingForPermission) + return; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) + return; + log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); + state.idleTimer = setTimeout(() => { + state.idleTimer = undefined; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) + return; + state.pendingContinue = true; + void sendContinue(sessionID); + }, config.delayMs); } }, + "tool.execute.before": async (input) => { + if (input.tool !== "question" || !input.sessionID) + return; + const state = getState(input.sessionID); + state.turn.waitingForQuestion = true; + state.pendingContinue = false; + clearIdleTimer(state); + }, + "tool.execute.after": async (input) => { + if (input.tool !== "question" || !input.sessionID) + return; + getState(input.sessionID).turn.waitingForQuestion = false; + }, + dispose: async () => { + for (const state of sessions.values()) + clearIdleTimer(state); + }, }; }; export default plugin; diff --git a/dist/index.js.map b/dist/index.js.map index 2e51a4d..54b20e1 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/recovery.d.ts b/dist/recovery.d.ts new file mode 100644 index 0000000..d4cace7 --- /dev/null +++ b/dist/recovery.d.ts @@ -0,0 +1,29 @@ +export interface AssistantEvidence { + id: string; + finish?: string; + outputTokens: number; + sawText: boolean; + error: boolean; +} +export interface TurnEvidence { + assistant?: AssistantEvidence; + aborted: boolean; + waitingForQuestion: boolean; + waitingForPermission: boolean; +} +export declare function createTurnEvidence(): TurnEvidence; +export declare function updateAssistantEvidence(turn: TurnEvidence, info: { + id?: string; + finish?: string; + tokens?: { + output?: number; + }; + error?: unknown; +}): void; +export declare function recordTextPart(turn: TurnEvidence, part: { + messageID?: string; + type?: string; + text?: string; +}): void; +export declare function isCompletedEmptyResponse(turn: TurnEvidence): boolean; +//# sourceMappingURL=recovery.d.ts.map \ No newline at end of file diff --git a/dist/recovery.d.ts.map b/dist/recovery.d.ts.map new file mode 100644 index 0000000..30bb4a0 --- /dev/null +++ b/dist/recovery.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAMjD;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,IAAI,CAiBN;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,IAAI,CASN;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAYpE"} \ No newline at end of file diff --git a/dist/recovery.js b/dist/recovery.js new file mode 100644 index 0000000..eb8a764 --- /dev/null +++ b/dist/recovery.js @@ -0,0 +1,44 @@ +export function createTurnEvidence() { + return { + aborted: false, + waitingForQuestion: false, + waitingForPermission: false, + }; +} +export function updateAssistantEvidence(turn, info) { + if (!info.id) + return; + if (turn.assistant?.id !== info.id) { + turn.assistant = { + id: info.id, + finish: info.finish, + outputTokens: Number(info.tokens?.output) || 0, + sawText: false, + error: Boolean(info.error), + }; + return; + } + turn.assistant.finish = info.finish ?? turn.assistant.finish; + turn.assistant.outputTokens = Math.max(turn.assistant.outputTokens, Number(info.tokens?.output) || 0); + turn.assistant.error ||= Boolean(info.error); +} +export function recordTextPart(turn, part) { + if (turn.assistant && + part.messageID === turn.assistant.id && + part.type === "text" && + Boolean(part.text?.trim())) { + turn.assistant.sawText = true; + } +} +export function isCompletedEmptyResponse(turn) { + const assistant = turn.assistant; + return Boolean(assistant && + assistant.finish === "unknown" && + assistant.outputTokens === 0 && + !assistant.sawText && + !assistant.error && + !turn.aborted && + !turn.waitingForQuestion && + !turn.waitingForPermission); +} +//# sourceMappingURL=recovery.js.map \ No newline at end of file diff --git a/dist/recovery.js.map b/dist/recovery.js.map new file mode 100644 index 0000000..f1f7f0c --- /dev/null +++ b/dist/recovery.js.map @@ -0,0 +1 @@ +{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,KAAK;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAkB,EAClB,IAKC;IAED,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO;IAErB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3B,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC7D,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,IAA0D;IAE1D,IACE,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;QACpC,IAAI,CAAC,IAAI,KAAK,MAAM;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAC1B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,OAAO,OAAO,CACZ,SAAS;QACP,SAAS,CAAC,MAAM,KAAK,SAAS;QAC9B,SAAS,CAAC,YAAY,KAAK,CAAC;QAC5B,CAAC,SAAS,CAAC,OAAO;QAClB,CAAC,SAAS,CAAC,KAAK;QAChB,CAAC,IAAI,CAAC,OAAO;QACb,CAAC,IAAI,CAAC,kBAAkB;QACxB,CAAC,IAAI,CAAC,oBAAoB,CAC7B,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/package.json b/package.json index 8d86c45..c3fd0ea 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,8 @@ }, "scripts": { "build": "tsc", + "test": "bun test", + "check": "tsc --noEmit", "dev": "tsc --watch", "prepublishOnly": "tsc" }, diff --git a/src/index.ts b/src/index.ts index 12a9051..6dad3c4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,13 @@ import { access, lstat, mkdir, readdir, readFile, realpath, rm, writeFile } from "node:fs/promises"; import { join } from "node:path"; import type { Plugin } from "@opencode-ai/plugin"; +import { + createTurnEvidence, + isCompletedEmptyResponse, + recordTextPart, + updateAssistantEvidence, + type TurnEvidence, +} from "./recovery.js"; const PLUGIN_NAME = "opencode-auto-continue"; const CONFIG_DIR = ".opencode"; @@ -233,6 +240,8 @@ const DEFAULTS: Config = { maxConsecutive: 5, /** Whether the plugin is enabled */ enabled: true, + /** Retry completed assistant responses that contain no usable output */ + retryEmptyResponses: true, /** Minimum ms between remote version checks */ updateThrottleMs: 30_000, /** Disable all remote calls and version-related filesystem checks */ @@ -248,6 +257,7 @@ interface Config { delayMs: number; maxConsecutive: number; enabled: boolean; + retryEmptyResponses: boolean; updateThrottleMs: number; offlineMode: boolean; errorPatterns: string[]; @@ -259,6 +269,8 @@ interface SessionState { lastContinueTime: number; pendingContinue: boolean; consecutiveCount: number; + turn: TurnEvidence; + idleTimer?: ReturnType; } // ─── Helpers ──────────────────────────────────────────────────────────────── @@ -314,6 +326,7 @@ async function loadConfig(directory: string, log: (msg: string) => void): Promis if (typeof parsed.delayMs === "number") config.delayMs = parsed.delayMs; if (typeof parsed.maxConsecutive === "number") config.maxConsecutive = parsed.maxConsecutive; if (typeof parsed.enabled === "boolean") config.enabled = parsed.enabled; + if (typeof parsed.retryEmptyResponses === "boolean") config.retryEmptyResponses = parsed.retryEmptyResponses; if (typeof parsed.updateThrottleMs === "number") config.updateThrottleMs = parsed.updateThrottleMs; if (typeof parsed.offlineMode === "boolean") config.offlineMode = parsed.offlineMode; if (Array.isArray(parsed.errorPatterns)) { @@ -362,6 +375,19 @@ function isRetryableError(error: unknown, config: Config): boolean { return false; } +function isExcludedError(error: unknown, config: Config): boolean { + if (!error || typeof error !== "object") return false; + + const err = error as Record; + const data = err.data as Record | undefined; + const name = typeof err.name === "string" ? err.name : ""; + const message = + (typeof data?.message === "string" ? data.message : null) ?? + (typeof err.message === "string" ? err.message : ""); + const matchStr = `${name}: ${message}`.toLowerCase(); + return config.excludePatterns.some((pattern) => matchStr.includes(pattern.toLowerCase())); +} + function errorMessage(error: unknown): string { if (!error || typeof error !== "object") return "unknown"; const err = error as Record; @@ -617,6 +643,7 @@ const plugin: Plugin = async ({ client, directory }) => { delayMs: globalConfig.delayMs, maxConsecutive: globalConfig.maxConsecutive, enabled: globalConfig.enabled, + retryEmptyResponses: globalConfig.retryEmptyResponses, updateThrottleMs: globalConfig.updateThrottleMs, }; if (globalConfig.offlineMode) { @@ -641,12 +668,24 @@ const plugin: Plugin = async ({ client, directory }) => { lastContinueTime: 0, pendingContinue: false, consecutiveCount: 0, + turn: createTurnEvidence(), }; sessions.set(sessionID, state); } return state; } + function clearIdleTimer(state: SessionState) { + if (state.idleTimer) clearTimeout(state.idleTimer); + state.idleTimer = undefined; + } + + function resetTurn(state: SessionState) { + clearIdleTimer(state); + state.pendingContinue = false; + state.turn = createTurnEvidence(); + } + async function sendContinue(sessionID: string) { const state = sessions.get(sessionID); if (!state?.pendingContinue) return; @@ -656,7 +695,12 @@ const plugin: Plugin = async ({ client, directory }) => { if (now - state.lastContinueTime < config.throttleMs) { const remaining = config.throttleMs - (now - state.lastContinueTime); - log(`Throttle active for session ${sessionID}, ${remaining}ms remaining, skipping`); + log(`Throttle active for session ${sessionID}, retrying in ${remaining}ms`); + clearIdleTimer(state); + state.idleTimer = setTimeout(() => { + state.idleTimer = undefined; + void sendContinue(sessionID); + }, remaining); return; } @@ -1205,9 +1249,16 @@ const plugin: Plugin = async ({ client, directory }) => { const config = getEffectiveConfig(sessionID); if (!config.enabled) return; + const state = getState(sessionID); + if (isExcludedError(error, config)) { + state.turn.aborted = true; + state.pendingContinue = false; + clearIdleTimer(state); + return; + } + if (isRetryableError(error, config)) { log(`Retryable error in ${sessionID}: ${errorMessage(error)}`); - const state = getState(sessionID); state.lastErrorTime = Date.now(); state.pendingContinue = true; } @@ -1217,35 +1268,98 @@ const plugin: Plugin = async ({ client, directory }) => { if (event.type === "message.updated") { const props = event.properties as { info?: { + id?: string; sessionID?: string; role?: string; + finish?: string; + tokens?: { output?: number }; error?: unknown; metadata?: { done?: boolean }; }; }; const info = props.info; - if (!info?.sessionID || info.role !== "assistant") return; + if (!info?.sessionID) return; + + const state = getState(info.sessionID); + if (info.role === "user") { + resetTurn(state); + return; + } + if (info.role !== "assistant") return; const config = getEffectiveConfig(info.sessionID); + updateAssistantEvidence(state.turn, info); + + if (isExcludedError(info.error, config)) { + state.turn.aborted = true; + state.pendingContinue = false; + clearIdleTimer(state); + return; + } // Retryable error on assistant message if (config.enabled && isRetryableError(info.error, config)) { log(`Retryable error on assistant message in ${info.sessionID}: ${errorMessage(info.error)}`); - const state = getState(info.sessionID); state.lastErrorTime = Date.now(); state.pendingContinue = true; } // Reset counter on successful completion - if (info.metadata?.done && !info.error) { - const state = sessions.get(info.sessionID); - if (state && state.consecutiveCount > 0) { + if ((info.finish === "stop" || info.metadata?.done) && !info.error) { + clearIdleTimer(state); + state.pendingContinue = false; + if (state.consecutiveCount > 0) { log(`${info.sessionID} completed successfully, resetting counter`); state.consecutiveCount = 0; } } } + if (event.type === "message.part.updated") { + const props = event.properties as { + part?: { sessionID?: string; messageID?: string; type?: string; text?: string }; + }; + const part = props.part; + if (!part?.sessionID) return; + recordTextPart(getState(part.sessionID).turn, part); + } + + const eventType = event.type as string; + if ( + eventType === "permission.updated" || + eventType === "permission.asked" || + eventType === "permission.v2.asked" || + eventType === "permission.replied" || + eventType === "permission.v2.replied" + ) { + const props = event.properties as { sessionID?: string }; + if (!props.sessionID) return; + const state = getState(props.sessionID); + state.turn.waitingForPermission = !eventType.endsWith("replied"); + if (state.turn.waitingForPermission) { + state.pendingContinue = false; + clearIdleTimer(state); + } + } + + if ( + eventType === "question.asked" || + eventType === "question.v2.asked" || + eventType === "question.replied" || + eventType === "question.v2.replied" || + eventType === "question.rejected" || + eventType === "question.v2.rejected" + ) { + const props = event.properties as { sessionID?: string }; + if (!props.sessionID) return; + const state = getState(props.sessionID); + state.turn.waitingForQuestion = eventType.endsWith("asked"); + if (state.turn.waitingForQuestion) { + state.pendingContinue = false; + clearIdleTimer(state); + } + } + // ── session.idle: send continue if pending ── if (event.type === "session.idle") { const props = event.properties as { sessionID?: string }; @@ -1256,12 +1370,36 @@ const plugin: Plugin = async ({ client, directory }) => { if (!config.enabled) return; const state = sessions.get(sessionID); - if (state?.pendingContinue) { - log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); - setTimeout(() => sendContinue(sessionID), config.delayMs); - } + if (!state || state.idleTimer) return; + if (state.turn.aborted || state.turn.waitingForQuestion || state.turn.waitingForPermission) return; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) return; + + log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); + state.idleTimer = setTimeout(() => { + state.idleTimer = undefined; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) return; + state.pendingContinue = true; + void sendContinue(sessionID); + }, config.delayMs); } }, + + "tool.execute.before": async (input: { sessionID?: string; tool?: string }) => { + if (input.tool !== "question" || !input.sessionID) return; + const state = getState(input.sessionID); + state.turn.waitingForQuestion = true; + state.pendingContinue = false; + clearIdleTimer(state); + }, + + "tool.execute.after": async (input: { sessionID?: string; tool?: string }) => { + if (input.tool !== "question" || !input.sessionID) return; + getState(input.sessionID).turn.waitingForQuestion = false; + }, + + dispose: async () => { + for (const state of sessions.values()) clearIdleTimer(state); + }, }; }; diff --git a/src/recovery.ts b/src/recovery.ts new file mode 100644 index 0000000..42d1c67 --- /dev/null +++ b/src/recovery.ts @@ -0,0 +1,77 @@ +export interface AssistantEvidence { + id: string; + finish?: string; + outputTokens: number; + sawText: boolean; + error: boolean; +} + +export interface TurnEvidence { + assistant?: AssistantEvidence; + aborted: boolean; + waitingForQuestion: boolean; + waitingForPermission: boolean; +} + +export function createTurnEvidence(): TurnEvidence { + return { + aborted: false, + waitingForQuestion: false, + waitingForPermission: false, + }; +} + +export function updateAssistantEvidence( + turn: TurnEvidence, + info: { + id?: string; + finish?: string; + tokens?: { output?: number }; + error?: unknown; + }, +): void { + if (!info.id) return; + + if (turn.assistant?.id !== info.id) { + turn.assistant = { + id: info.id, + finish: info.finish, + outputTokens: Number(info.tokens?.output) || 0, + sawText: false, + error: Boolean(info.error), + }; + return; + } + + turn.assistant.finish = info.finish ?? turn.assistant.finish; + turn.assistant.outputTokens = Math.max(turn.assistant.outputTokens, Number(info.tokens?.output) || 0); + turn.assistant.error ||= Boolean(info.error); +} + +export function recordTextPart( + turn: TurnEvidence, + part: { messageID?: string; type?: string; text?: string }, +): void { + if ( + turn.assistant && + part.messageID === turn.assistant.id && + part.type === "text" && + Boolean(part.text?.trim()) + ) { + turn.assistant.sawText = true; + } +} + +export function isCompletedEmptyResponse(turn: TurnEvidence): boolean { + const assistant = turn.assistant; + return Boolean( + assistant && + assistant.finish === "unknown" && + assistant.outputTokens === 0 && + !assistant.sawText && + !assistant.error && + !turn.aborted && + !turn.waitingForQuestion && + !turn.waitingForPermission, + ); +} diff --git a/test/plugin.test.ts b/test/plugin.test.ts new file mode 100644 index 0000000..9deed28 --- /dev/null +++ b/test/plugin.test.ts @@ -0,0 +1,272 @@ +import { afterEach, describe, expect, test } from "bun:test"; +import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; +import plugin from "../src/index.js"; + +const roots: string[] = []; + +afterEach(async () => { + await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true }))); +}); + +async function createHarness(overrides: Record = {}) { + const directory = await mkdtemp(join(tmpdir(), "auto-continue-test-")); + roots.push(directory); + await mkdir(join(directory, ".opencode")); + await writeFile( + join(directory, ".opencode", "opencode-auto-continue.jsonc"), + JSON.stringify({ offlineMode: true, delayMs: 0, throttleMs: 0, ...overrides }), + ); + + const prompts: unknown[] = []; + const hooks = await plugin({ + directory, + client: { + session: { + promptAsync: async (request: unknown) => { + prompts.push(request); + return {}; + }, + }, + }, + } as never); + + const event = async (type: string, properties: Record) => { + await hooks.event?.({ event: { type, properties } } as never); + }; + const settle = () => new Promise((resolve) => setTimeout(resolve, 10)); + + return { hooks, event, prompts, settle }; +} + +async function userTurn(event: (type: string, properties: Record) => Promise) { + await event("message.updated", { + info: { id: "user-1", sessionID: "session-1", role: "user" }, + }); +} + +async function emptyAssistant( + event: (type: string, properties: Record) => Promise, + id = "assistant-empty", +) { + await event("message.updated", { + info: { + id, + sessionID: "session-1", + role: "assistant", + finish: "unknown", + tokens: { output: 0 }, + }, + }); +} + +describe("empty response recovery", () => { + test("continues a completed empty assistant response on idle", async () => { + const { event, prompts, settle } = await createHarness(); + await userTurn(event); + await emptyAssistant(event); + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(1); + }); + + test("allows empty response recovery to be disabled", async () => { + const { event, prompts, settle } = await createHarness({ retryEmptyResponses: false }); + await userTurn(event); + await emptyAssistant(event); + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(0); + }); + + test("does not continue a normal reply or tool-calls completion", async () => { + const { event, prompts, settle } = await createHarness(); + await userTurn(event); + await event("message.updated", { + info: { + id: "assistant-normal", + sessionID: "session-1", + role: "assistant", + finish: "stop", + tokens: { output: 20 }, + }, + }); + await event("message.part.updated", { + part: { + sessionID: "session-1", + messageID: "assistant-normal", + type: "text", + text: "Done", + }, + }); + await event("session.idle", { sessionID: "session-1" }); + await event("message.updated", { + info: { + id: "assistant-tool", + sessionID: "session-1", + role: "assistant", + finish: "tool-calls", + tokens: { output: 10 }, + }, + }); + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(0); + }); + + test("continues when the assistant after a tool call is empty", async () => { + const { event, prompts, settle } = await createHarness(); + await userTurn(event); + await event("message.updated", { + info: { + id: "assistant-tool", + sessionID: "session-1", + role: "assistant", + finish: "tool-calls", + tokens: { output: 10 }, + }, + }); + await event("message.part.updated", { + part: { + sessionID: "session-1", + messageID: "assistant-tool", + type: "text", + text: "Running tool", + }, + }); + await emptyAssistant(event, "assistant-after-tool"); + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(1); + }); + + test("does not continue after abort, question, or permission requests", async () => { + for (const blocked of ["abort", "question", "question-event", "permission", "permission-v2"] as const) { + const { hooks, event, prompts, settle } = await createHarness(); + await userTurn(event); + await emptyAssistant(event); + if (blocked === "abort") { + await event("session.error", { + sessionID: "session-1", + error: { name: "MessageAbortedError", message: "operation was aborted" }, + }); + } else if (blocked === "question") { + await hooks["tool.execute.before"]?.({ sessionID: "session-1", tool: "question" } as never, {} as never); + } else if (blocked === "question-event") { + await event("question.asked", { sessionID: "session-1" }); + } else if (blocked === "permission") { + await event("permission.updated", { sessionID: "session-1" }); + } else { + await event("permission.asked", { sessionID: "session-1" }); + } + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(0); + } + }); + + test("question and permission waits cancel an explicit-error retry", async () => { + for (const blocked of ["question", "permission", "permission-v2"] as const) { + const { hooks, event, prompts, settle } = await createHarness(); + await event("session.error", { + sessionID: "session-1", + error: { name: "APIError", message: "SSE read timed out" }, + }); + if (blocked === "question") { + await hooks["tool.execute.before"]?.({ sessionID: "session-1", tool: "question" } as never, {} as never); + } else if (blocked === "permission") { + await event("permission.updated", { sessionID: "session-1" }); + } else { + await event("permission.v2.asked", { sessionID: "session-1" }); + } + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(0); + } + }); + + test("cancels a queued retry when a late stop arrives", async () => { + const { event, prompts, settle } = await createHarness({ delayMs: 25 }); + await userTurn(event); + await emptyAssistant(event); + await event("session.idle", { sessionID: "session-1" }); + await event("message.updated", { + info: { + id: "assistant-empty", + sessionID: "session-1", + role: "assistant", + finish: "stop", + tokens: { output: 10 }, + }, + }); + await new Promise((resolve) => setTimeout(resolve, 40)); + await settle(); + + expect(prompts).toHaveLength(0); + }); + + test("deduplicates repeated idle events", async () => { + const { event, prompts, settle } = await createHarness(); + await userTurn(event); + await emptyAssistant(event); + await event("session.idle", { sessionID: "session-1" }); + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(1); + }); + + test("honors throttle and maximum consecutive retries", async () => { + const throttled = await createHarness({ throttleMs: 30 }); + await userTurn(throttled.event); + await emptyAssistant(throttled.event, "empty-1"); + await throttled.event("session.idle", { sessionID: "session-1" }); + await throttled.settle(); + await userTurn(throttled.event); + await emptyAssistant(throttled.event, "empty-2"); + await throttled.event("session.idle", { sessionID: "session-1" }); + await new Promise((resolve) => setTimeout(resolve, 40)); + expect(throttled.prompts).toHaveLength(2); + + const limited = await createHarness({ maxConsecutive: 2 }); + for (let attempt = 0; attempt < 3; attempt++) { + await userTurn(limited.event); + await emptyAssistant(limited.event, `empty-${attempt}`); + await limited.event("session.idle", { sessionID: "session-1" }); + await limited.settle(); + } + expect(limited.prompts).toHaveLength(2); + }); + + test("resets consecutive retries after finish stop", async () => { + const { event, prompts, settle } = await createHarness({ maxConsecutive: 1 }); + await userTurn(event); + await emptyAssistant(event, "empty-1"); + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + await userTurn(event); + await event("message.updated", { + info: { + id: "assistant-success", + sessionID: "session-1", + role: "assistant", + finish: "stop", + tokens: { output: 10 }, + }, + }); + await userTurn(event); + await emptyAssistant(event, "empty-2"); + await event("session.idle", { sessionID: "session-1" }); + await settle(); + + expect(prompts).toHaveLength(2); + }); +}); diff --git a/test/recovery.test.ts b/test/recovery.test.ts new file mode 100644 index 0000000..70e6271 --- /dev/null +++ b/test/recovery.test.ts @@ -0,0 +1,79 @@ +import { describe, expect, test } from "bun:test"; +import { + createTurnEvidence, + isCompletedEmptyResponse, + recordTextPart, + updateAssistantEvidence, +} from "../src/recovery.js"; + +describe("completed empty response detection", () => { + test("accepts only unknown, zero-output, textless assistant completion", () => { + const turn = createTurnEvidence(); + updateAssistantEvidence(turn, { + id: "assistant-1", + finish: "unknown", + tokens: { output: 0 }, + }); + + expect(isCompletedEmptyResponse(turn)).toBe(true); + }); + + test.each([ + ["normal stop", { finish: "stop", output: 10, text: "done" }], + ["tool call", { finish: "tool-calls", output: 10, text: "" }], + ["unknown with output", { finish: "unknown", output: 1, text: "" }], + ["unknown with text", { finish: "unknown", output: 0, text: "partial" }], + ])("rejects %s", (_name, value) => { + const turn = createTurnEvidence(); + updateAssistantEvidence(turn, { + id: "assistant-1", + finish: value.finish, + tokens: { output: value.output }, + }); + recordTextPart(turn, { + messageID: "assistant-1", + type: "text", + text: value.text, + }); + + expect(isCompletedEmptyResponse(turn)).toBe(false); + }); + + test("tracks text only for the latest assistant message", () => { + const turn = createTurnEvidence(); + updateAssistantEvidence(turn, { + id: "tool-message", + finish: "tool-calls", + tokens: { output: 20 }, + }); + recordTextPart(turn, { + messageID: "tool-message", + type: "text", + text: "Running a tool", + }); + updateAssistantEvidence(turn, { + id: "empty-message", + finish: "unknown", + tokens: { output: 0 }, + }); + + expect(isCompletedEmptyResponse(turn)).toBe(true); + }); + + test("rejects errors, aborts, questions, and permissions", () => { + for (const blocked of ["error", "aborted", "question", "permission"] as const) { + const turn = createTurnEvidence(); + updateAssistantEvidence(turn, { + id: "assistant-1", + finish: "unknown", + tokens: { output: 0 }, + error: blocked === "error" ? { message: "failed" } : undefined, + }); + if (blocked === "aborted") turn.aborted = true; + if (blocked === "question") turn.waitingForQuestion = true; + if (blocked === "permission") turn.waitingForPermission = true; + + expect(isCompletedEmptyResponse(turn)).toBe(false); + } + }); +}); From dfa3250d281996ec33315fd8671d8a8099036486 Mon Sep 17 00:00:00 2001 From: XiaoqiangWu Date: Tue, 11 Aug 2026 13:09:55 +0800 Subject: [PATCH 2/5] feat: recover stalled requests Abort busy requests that produce no assistant activity for 200 seconds, then continue after idle. Preserve user abort handling and cancel the watchdog on output, questions, permissions, or tool activity. Signed-off-by: XiaoqiangWu --- README.md | 16 ++++- dist/index.d.ts.map | 2 +- dist/index.js | 140 +++++++++++++++++++++++++++++++++++++------- dist/index.js.map | 2 +- src/index.ts | 136 ++++++++++++++++++++++++++++++++++++------ test/plugin.test.ts | 92 ++++++++++++++++++++++++++++- 6 files changed, 346 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 99f967b..64b5a31 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,9 @@ OpenCode plugin that automatically sends "continue" when transient errors or com 1. **Detects recoverable failures**: Listens for explicit errors and completed assistant messages that end with `finish: "unknown"`, zero output tokens, and no text or error. 2. **Pattern and state matching**: Matches explicit errors against configurable patterns and strictly validates the latest assistant message before treating an empty response as recoverable. User aborts, tool calls, questions, and permission prompts are excluded. 3. **Waits for idle**: When the session becomes idle after a recoverable failure, rechecks the latest state after the configured delay and sends "continue" via `promptAsync`. -4. **Safety limits**: Configurable throttle and max consecutive retries prevent infinite loops -5. **Auto-reset**: Consecutive retry counter resets when a message completes successfully +4. **Recovers stalled requests**: Aborts a request that remains busy for 200 seconds without any real assistant activity, then sends "continue" after the session becomes idle. +5. **Safety limits**: Configurable throttle and max consecutive retries prevent infinite loops +6. **Auto-reset**: Consecutive retry counter resets when a message completes successfully ## Installation @@ -89,6 +90,10 @@ Create `opencode-auto-continue.jsonc` in your `.opencode/` directory. The follow // Retry finish="unknown" assistant responses with zero output and no text/error "retryEmptyResponses": true, + // Abort and retry after 200 seconds with no text, reasoning, tool call, or output token + // Set to 0 to disable stalled-request recovery + "stalledRequestTimeoutMs": 200000, + // Update throttle: minimum ms between remote version checks. // The plugin only checks for new versions when you run /ac, /ac status, // or /auto-continue — this controls how often that check hits GitHub. @@ -105,6 +110,7 @@ Create `opencode-auto-continue.jsonc` in your `.opencode/` directory. The follow | `maxConsecutive` | number | `5` | Max consecutive auto-continues before giving up (0 = unlimited) | | `enabled` | boolean | `true` | Set `false` to disable without removing from plugin list | | `retryEmptyResponses` | boolean | `true` | Retry strict completed empty assistant responses without an explicit error | +| `stalledRequestTimeoutMs` | number | `200000` | Abort and retry a busy request with no real assistant activity after this delay (0 disables) | | `updateThrottleMs` | number | `30000` | Update throttle: minimum ms between remote version checks | | `errorPatterns` | string[] | *(see below)* | Error substrings that trigger auto-continue (case-insensitive) | | `excludePatterns` | string[] | *(see below)* | Error substrings that **never** trigger auto-continue (checked first) | @@ -124,6 +130,12 @@ Some providers can finish a request without emitting an explicit error or a usab The existing `delayMs`, `throttleMs`, and `maxConsecutive` limits apply. A late successful `finish: "stop"` event cancels a queued retry, and a successful stop resets the consecutive retry counter. Set `retryEmptyResponses` to `false` to retain error-only behavior. +### Stalled Requests + +The plugin starts a watchdog when a session becomes busy. If the request remains busy for `stalledRequestTimeoutMs` without emitting non-empty text, reasoning, a tool call, or any output token, the plugin calls OpenCode's session abort API and sends "continue" after the session becomes idle. + +The default timeout is 200 seconds. Once real assistant activity begins, the watchdog is cancelled, so it does not impose a total-duration limit on long responses or tool executions. User-initiated aborts, questions, and permission prompts remain excluded from automatic recovery. Set `stalledRequestTimeoutMs` to `0` to disable this behavior. + ### Error Patterns The plugin matches each error against a list of patterns. The error is formatted as `"ErrorName: error message"` and each pattern is matched as a case-insensitive substring. diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index 1cd6b07..6e0e1dc 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAiZlD,QAAA,MAAM,MAAM,EAAE,MAw+Bb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2ZlD,QAAA,MAAM,MAAM,EAAE,MAokCb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index a950a34..8722998 100644 --- a/dist/index.js +++ b/dist/index.js @@ -220,6 +220,8 @@ const DEFAULTS = { enabled: true, /** Retry completed assistant responses that contain no usable output */ retryEmptyResponses: true, + /** Abort and retry a busy request with no assistant activity after this delay (0 disables) */ + stalledRequestTimeoutMs: 200_000, /** Minimum ms between remote version checks */ updateThrottleMs: 30_000, /** Disable all remote calls and version-related filesystem checks */ @@ -291,6 +293,9 @@ async function loadConfig(directory, log) { config.enabled = parsed.enabled; if (typeof parsed.retryEmptyResponses === "boolean") config.retryEmptyResponses = parsed.retryEmptyResponses; + if (typeof parsed.stalledRequestTimeoutMs === "number") { + config.stalledRequestTimeoutMs = parsed.stalledRequestTimeoutMs; + } if (typeof parsed.updateThrottleMs === "number") config.updateThrottleMs = parsed.updateThrottleMs; if (typeof parsed.offlineMode === "boolean") @@ -609,6 +614,7 @@ const plugin = async ({ client, directory }) => { maxConsecutive: globalConfig.maxConsecutive, enabled: globalConfig.enabled, retryEmptyResponses: globalConfig.retryEmptyResponses, + stalledRequestTimeoutMs: globalConfig.stalledRequestTimeoutMs, updateThrottleMs: globalConfig.updateThrottleMs, }; if (globalConfig.offlineMode) { @@ -633,6 +639,9 @@ const plugin = async ({ client, directory }) => { pendingContinue: false, consecutiveCount: 0, turn: createTurnEvidence(), + busy: false, + pluginAbortPending: false, + sawAssistantActivity: false, }; sessions.set(sessionID, state); } @@ -643,9 +652,53 @@ const plugin = async ({ client, directory }) => { clearTimeout(state.idleTimer); state.idleTimer = undefined; } + function clearStalledTimer(state) { + if (state.stalledTimer) + clearTimeout(state.stalledTimer); + state.stalledTimer = undefined; + } + function hasAssistantActivity(state) { + const assistant = state.turn.assistant; + return Boolean(state.sawAssistantActivity || + (assistant && (assistant.outputTokens > 0 || assistant.sawText || assistant.finish === "tool-calls"))); + } + function startStalledTimer(sessionID, state) { + const config = getEffectiveConfig(sessionID); + if (state.stalledTimer) + return; + if (!config.enabled || config.stalledRequestTimeoutMs <= 0 || hasAssistantActivity(state)) + return; + if (state.pluginAbortPending) + return; + if (state.turn.waitingForQuestion || state.turn.waitingForPermission) + return; + state.stalledTimer = setTimeout(async () => { + state.stalledTimer = undefined; + const currentConfig = getEffectiveConfig(sessionID); + if (!currentConfig.enabled || !state.busy || hasAssistantActivity(state)) + return; + if (state.turn.waitingForQuestion || state.turn.waitingForPermission) + return; + if (currentConfig.maxConsecutive > 0 && state.consecutiveCount >= currentConfig.maxConsecutive) + return; + state.pluginAbortPending = true; + state.pendingContinue = true; + try { + await client.session.abort({ path: { id: sessionID } }); + } + catch (err) { + state.pluginAbortPending = false; + state.pendingContinue = false; + log(`Failed to abort stalled request in ${sessionID}: ${err}`); + } + }, config.stalledRequestTimeoutMs); + } function resetTurn(state) { clearIdleTimer(state); + clearStalledTimer(state); state.pendingContinue = false; + state.pluginAbortPending = false; + state.sawAssistantActivity = false; state.turn = createTurnEvidence(); } async function sendContinue(sessionID) { @@ -687,6 +740,31 @@ const plugin = async ({ client, directory }) => { log(`Failed to send "continue" to ${sessionID}: ${err}`); } } + function handleSessionIdle(sessionID) { + const config = getEffectiveConfig(sessionID); + if (!config.enabled) + return; + const state = sessions.get(sessionID); + if (!state || state.idleTimer) + return; + state.busy = false; + clearStalledTimer(state); + if (state.pluginAbortPending) { + state.turn.aborted = false; + } + if (state.turn.aborted || state.turn.waitingForQuestion || state.turn.waitingForPermission) + return; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) + return; + log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); + state.idleTimer = setTimeout(() => { + state.idleTimer = undefined; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) + return; + state.pendingContinue = true; + void sendContinue(sessionID); + }, config.delayMs); + } // ── Command UI helpers ────────────────────────────────────────────────── function overrideLines(overrides) { const parts = []; @@ -754,6 +832,7 @@ const plugin = async ({ client, directory }) => { ` Throttle: ${cfg.throttleMs}ms`, ` Delay: ${cfg.delayMs}ms`, ` Max Retries: ${cfg.maxConsecutive === 0 ? "unlimited (0)" : cfg.maxConsecutive}`, + ` Stall timeout: ${cfg.stalledRequestTimeoutMs > 0 ? `${cfg.stalledRequestTimeoutMs}ms` : "disabled"}`, ` Update throttle: ${cfg.updateThrottleMs}ms`, ]; if (overrides && Object.keys(overrides).length > 0) { @@ -1116,9 +1195,12 @@ const plugin = async ({ client, directory }) => { return; const state = getState(sessionID); if (isExcludedError(error, config)) { + if (state.pluginAbortPending) + return; state.turn.aborted = true; state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); return; } if (isRetryableError(error, config)) { @@ -1142,10 +1224,17 @@ const plugin = async ({ client, directory }) => { return; const config = getEffectiveConfig(info.sessionID); updateAssistantEvidence(state.turn, info); + if (hasAssistantActivity(state)) { + state.sawAssistantActivity = true; + clearStalledTimer(state); + } if (isExcludedError(info.error, config)) { + if (state.pluginAbortPending) + return; state.turn.aborted = true; state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); return; } // Retryable error on assistant message @@ -1157,6 +1246,7 @@ const plugin = async ({ client, directory }) => { // Reset counter on successful completion if ((info.finish === "stop" || info.metadata?.done) && !info.error) { clearIdleTimer(state); + clearStalledTimer(state); state.pendingContinue = false; if (state.consecutiveCount > 0) { log(`${info.sessionID} completed successfully, resetting counter`); @@ -1169,9 +1259,31 @@ const plugin = async ({ client, directory }) => { const part = props.part; if (!part?.sessionID) return; - recordTextPart(getState(part.sessionID).turn, part); + const state = getState(part.sessionID); + recordTextPart(state.turn, part); + const hasPartActivity = ((part.type === "text" || part.type === "reasoning") && Boolean(part.text?.trim())) || part.type === "tool"; + if (hasPartActivity) { + state.sawAssistantActivity = true; + clearStalledTimer(state); + } } const eventType = event.type; + if (eventType === "session.status") { + const props = event.properties; + if (!props.sessionID || !props.status?.type) + return; + const state = getState(props.sessionID); + state.busy = props.status.type === "busy"; + if (state.busy) { + startStalledTimer(props.sessionID, state); + } + else if (props.status.type === "idle") { + handleSessionIdle(props.sessionID); + } + else { + clearStalledTimer(state); + } + } if (eventType === "permission.updated" || eventType === "permission.asked" || eventType === "permission.v2.asked" || @@ -1185,6 +1297,7 @@ const plugin = async ({ client, directory }) => { if (state.turn.waitingForPermission) { state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); } } if (eventType === "question.asked" || @@ -1201,6 +1314,7 @@ const plugin = async ({ client, directory }) => { if (state.turn.waitingForQuestion) { state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); } } // ── session.idle: send continue if pending ── @@ -1209,24 +1323,7 @@ const plugin = async ({ client, directory }) => { const sessionID = props.sessionID; if (!sessionID) return; - const config = getEffectiveConfig(sessionID); - if (!config.enabled) - return; - const state = sessions.get(sessionID); - if (!state || state.idleTimer) - return; - if (state.turn.aborted || state.turn.waitingForQuestion || state.turn.waitingForPermission) - return; - if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) - return; - log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); - state.idleTimer = setTimeout(() => { - state.idleTimer = undefined; - if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) - return; - state.pendingContinue = true; - void sendContinue(sessionID); - }, config.delayMs); + handleSessionIdle(sessionID); } }, "tool.execute.before": async (input) => { @@ -1236,6 +1333,7 @@ const plugin = async ({ client, directory }) => { state.turn.waitingForQuestion = true; state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); }, "tool.execute.after": async (input) => { if (input.tool !== "question" || !input.sessionID) @@ -1243,8 +1341,10 @@ const plugin = async ({ client, directory }) => { getState(input.sessionID).turn.waitingForQuestion = false; }, dispose: async () => { - for (const state of sessions.values()) + for (const state of sessions.values()) { clearIdleTimer(state); + clearStalledTimer(state); + } }, }; }; diff --git a/dist/index.js.map b/dist/index.js.map index 54b20e1..5a6277f 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 6dad3c4..22bb50e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -242,6 +242,8 @@ const DEFAULTS: Config = { enabled: true, /** Retry completed assistant responses that contain no usable output */ retryEmptyResponses: true, + /** Abort and retry a busy request with no assistant activity after this delay (0 disables) */ + stalledRequestTimeoutMs: 200_000, /** Minimum ms between remote version checks */ updateThrottleMs: 30_000, /** Disable all remote calls and version-related filesystem checks */ @@ -258,6 +260,7 @@ interface Config { maxConsecutive: number; enabled: boolean; retryEmptyResponses: boolean; + stalledRequestTimeoutMs: number; updateThrottleMs: number; offlineMode: boolean; errorPatterns: string[]; @@ -271,6 +274,10 @@ interface SessionState { consecutiveCount: number; turn: TurnEvidence; idleTimer?: ReturnType; + stalledTimer?: ReturnType; + busy: boolean; + pluginAbortPending: boolean; + sawAssistantActivity: boolean; } // ─── Helpers ──────────────────────────────────────────────────────────────── @@ -327,6 +334,9 @@ async function loadConfig(directory: string, log: (msg: string) => void): Promis if (typeof parsed.maxConsecutive === "number") config.maxConsecutive = parsed.maxConsecutive; if (typeof parsed.enabled === "boolean") config.enabled = parsed.enabled; if (typeof parsed.retryEmptyResponses === "boolean") config.retryEmptyResponses = parsed.retryEmptyResponses; + if (typeof parsed.stalledRequestTimeoutMs === "number") { + config.stalledRequestTimeoutMs = parsed.stalledRequestTimeoutMs; + } if (typeof parsed.updateThrottleMs === "number") config.updateThrottleMs = parsed.updateThrottleMs; if (typeof parsed.offlineMode === "boolean") config.offlineMode = parsed.offlineMode; if (Array.isArray(parsed.errorPatterns)) { @@ -644,6 +654,7 @@ const plugin: Plugin = async ({ client, directory }) => { maxConsecutive: globalConfig.maxConsecutive, enabled: globalConfig.enabled, retryEmptyResponses: globalConfig.retryEmptyResponses, + stalledRequestTimeoutMs: globalConfig.stalledRequestTimeoutMs, updateThrottleMs: globalConfig.updateThrottleMs, }; if (globalConfig.offlineMode) { @@ -669,6 +680,9 @@ const plugin: Plugin = async ({ client, directory }) => { pendingContinue: false, consecutiveCount: 0, turn: createTurnEvidence(), + busy: false, + pluginAbortPending: false, + sawAssistantActivity: false, }; sessions.set(sessionID, state); } @@ -680,9 +694,51 @@ const plugin: Plugin = async ({ client, directory }) => { state.idleTimer = undefined; } + function clearStalledTimer(state: SessionState) { + if (state.stalledTimer) clearTimeout(state.stalledTimer); + state.stalledTimer = undefined; + } + + function hasAssistantActivity(state: SessionState): boolean { + const assistant = state.turn.assistant; + return Boolean( + state.sawAssistantActivity || + (assistant && (assistant.outputTokens > 0 || assistant.sawText || assistant.finish === "tool-calls")), + ); + } + + function startStalledTimer(sessionID: string, state: SessionState) { + const config = getEffectiveConfig(sessionID); + if (state.stalledTimer) return; + if (!config.enabled || config.stalledRequestTimeoutMs <= 0 || hasAssistantActivity(state)) return; + if (state.pluginAbortPending) return; + if (state.turn.waitingForQuestion || state.turn.waitingForPermission) return; + + state.stalledTimer = setTimeout(async () => { + state.stalledTimer = undefined; + const currentConfig = getEffectiveConfig(sessionID); + if (!currentConfig.enabled || !state.busy || hasAssistantActivity(state)) return; + if (state.turn.waitingForQuestion || state.turn.waitingForPermission) return; + if (currentConfig.maxConsecutive > 0 && state.consecutiveCount >= currentConfig.maxConsecutive) return; + + state.pluginAbortPending = true; + state.pendingContinue = true; + try { + await client.session.abort({ path: { id: sessionID } }); + } catch (err) { + state.pluginAbortPending = false; + state.pendingContinue = false; + log(`Failed to abort stalled request in ${sessionID}: ${err}`); + } + }, config.stalledRequestTimeoutMs); + } + function resetTurn(state: SessionState) { clearIdleTimer(state); + clearStalledTimer(state); state.pendingContinue = false; + state.pluginAbortPending = false; + state.sawAssistantActivity = false; state.turn = createTurnEvidence(); } @@ -730,6 +786,29 @@ const plugin: Plugin = async ({ client, directory }) => { } } + function handleSessionIdle(sessionID: string) { + const config = getEffectiveConfig(sessionID); + if (!config.enabled) return; + + const state = sessions.get(sessionID); + if (!state || state.idleTimer) return; + state.busy = false; + clearStalledTimer(state); + if (state.pluginAbortPending) { + state.turn.aborted = false; + } + if (state.turn.aborted || state.turn.waitingForQuestion || state.turn.waitingForPermission) return; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) return; + + log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); + state.idleTimer = setTimeout(() => { + state.idleTimer = undefined; + if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) return; + state.pendingContinue = true; + void sendContinue(sessionID); + }, config.delayMs); + } + // ── Command UI helpers ────────────────────────────────────────────────── function overrideLines(overrides: Partial): string[] { @@ -815,6 +894,7 @@ const plugin: Plugin = async ({ client, directory }) => { ` Throttle: ${cfg.throttleMs}ms`, ` Delay: ${cfg.delayMs}ms`, ` Max Retries: ${cfg.maxConsecutive === 0 ? "unlimited (0)" : cfg.maxConsecutive}`, + ` Stall timeout: ${cfg.stalledRequestTimeoutMs > 0 ? `${cfg.stalledRequestTimeoutMs}ms` : "disabled"}`, ` Update throttle: ${cfg.updateThrottleMs}ms`, ]; @@ -1251,9 +1331,11 @@ const plugin: Plugin = async ({ client, directory }) => { const state = getState(sessionID); if (isExcludedError(error, config)) { + if (state.pluginAbortPending) return; state.turn.aborted = true; state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); return; } @@ -1289,11 +1371,17 @@ const plugin: Plugin = async ({ client, directory }) => { const config = getEffectiveConfig(info.sessionID); updateAssistantEvidence(state.turn, info); + if (hasAssistantActivity(state)) { + state.sawAssistantActivity = true; + clearStalledTimer(state); + } if (isExcludedError(info.error, config)) { + if (state.pluginAbortPending) return; state.turn.aborted = true; state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); return; } @@ -1307,6 +1395,7 @@ const plugin: Plugin = async ({ client, directory }) => { // Reset counter on successful completion if ((info.finish === "stop" || info.metadata?.done) && !info.error) { clearIdleTimer(state); + clearStalledTimer(state); state.pendingContinue = false; if (state.consecutiveCount > 0) { log(`${info.sessionID} completed successfully, resetting counter`); @@ -1321,10 +1410,31 @@ const plugin: Plugin = async ({ client, directory }) => { }; const part = props.part; if (!part?.sessionID) return; - recordTextPart(getState(part.sessionID).turn, part); + const state = getState(part.sessionID); + recordTextPart(state.turn, part); + const hasPartActivity = + ((part.type === "text" || part.type === "reasoning") && Boolean(part.text?.trim())) || part.type === "tool"; + if (hasPartActivity) { + state.sawAssistantActivity = true; + clearStalledTimer(state); + } } const eventType = event.type as string; + if (eventType === "session.status") { + const props = event.properties as { sessionID?: string; status?: { type?: string } }; + if (!props.sessionID || !props.status?.type) return; + const state = getState(props.sessionID); + state.busy = props.status.type === "busy"; + if (state.busy) { + startStalledTimer(props.sessionID, state); + } else if (props.status.type === "idle") { + handleSessionIdle(props.sessionID); + } else { + clearStalledTimer(state); + } + } + if ( eventType === "permission.updated" || eventType === "permission.asked" || @@ -1339,6 +1449,7 @@ const plugin: Plugin = async ({ client, directory }) => { if (state.turn.waitingForPermission) { state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); } } @@ -1357,6 +1468,7 @@ const plugin: Plugin = async ({ client, directory }) => { if (state.turn.waitingForQuestion) { state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); } } @@ -1366,21 +1478,7 @@ const plugin: Plugin = async ({ client, directory }) => { const sessionID = props.sessionID; if (!sessionID) return; - const config = getEffectiveConfig(sessionID); - if (!config.enabled) return; - - const state = sessions.get(sessionID); - if (!state || state.idleTimer) return; - if (state.turn.aborted || state.turn.waitingForQuestion || state.turn.waitingForPermission) return; - if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) return; - - log(`${sessionID} idle with pending continue, waiting ${config.delayMs}ms...`); - state.idleTimer = setTimeout(() => { - state.idleTimer = undefined; - if (!state.pendingContinue && !(config.retryEmptyResponses && isCompletedEmptyResponse(state.turn))) return; - state.pendingContinue = true; - void sendContinue(sessionID); - }, config.delayMs); + handleSessionIdle(sessionID); } }, @@ -1390,6 +1488,7 @@ const plugin: Plugin = async ({ client, directory }) => { state.turn.waitingForQuestion = true; state.pendingContinue = false; clearIdleTimer(state); + clearStalledTimer(state); }, "tool.execute.after": async (input: { sessionID?: string; tool?: string }) => { @@ -1398,7 +1497,10 @@ const plugin: Plugin = async ({ client, directory }) => { }, dispose: async () => { - for (const state of sessions.values()) clearIdleTimer(state); + for (const state of sessions.values()) { + clearIdleTimer(state); + clearStalledTimer(state); + } }, }; }; diff --git a/test/plugin.test.ts b/test/plugin.test.ts index 9deed28..15e51a3 100644 --- a/test/plugin.test.ts +++ b/test/plugin.test.ts @@ -20,10 +20,15 @@ async function createHarness(overrides: Record = {}) { ); const prompts: unknown[] = []; + const aborts: unknown[] = []; const hooks = await plugin({ directory, client: { session: { + abort: async (request: unknown) => { + aborts.push(request); + return { data: true }; + }, promptAsync: async (request: unknown) => { prompts.push(request); return {}; @@ -37,7 +42,7 @@ async function createHarness(overrides: Record = {}) { }; const settle = () => new Promise((resolve) => setTimeout(resolve, 10)); - return { hooks, event, prompts, settle }; + return { hooks, event, prompts, aborts, settle }; } async function userTurn(event: (type: string, properties: Record) => Promise) { @@ -270,3 +275,88 @@ describe("empty response recovery", () => { expect(prompts).toHaveLength(2); }); }); + +describe("stalled request recovery", () => { + test("aborts a busy request without assistant activity and continues after idle", async () => { + const { event, prompts, aborts, settle } = await createHarness({ stalledRequestTimeoutMs: 15 }); + await userTurn(event); + await event("session.status", { sessionID: "session-1", status: { type: "busy" } }); + await new Promise((resolve) => setTimeout(resolve, 25)); + + expect(aborts).toHaveLength(1); + expect(prompts).toHaveLength(0); + + await event("session.error", { + sessionID: "session-1", + error: { name: "MessageAbortedError", message: "operation was aborted" }, + }); + await event("session.status", { sessionID: "session-1", status: { type: "idle" } }); + await settle(); + + expect(prompts).toHaveLength(1); + }); + + test("does not restart the watchdog on duplicate busy events", async () => { + const { event, aborts } = await createHarness({ stalledRequestTimeoutMs: 20 }); + await userTurn(event); + await event("session.status", { sessionID: "session-1", status: { type: "busy" } }); + await new Promise((resolve) => setTimeout(resolve, 12)); + await event("session.status", { sessionID: "session-1", status: { type: "busy" } }); + await new Promise((resolve) => setTimeout(resolve, 12)); + + expect(aborts).toHaveLength(1); + }); + + test("does not abort after real assistant activity", async () => { + for (const activity of ["text", "reasoning", "tool", "tokens"] as const) { + const { event, aborts } = await createHarness({ stalledRequestTimeoutMs: 15 }); + await userTurn(event); + await event("session.status", { sessionID: "session-1", status: { type: "busy" } }); + if (activity === "tokens") { + await event("message.updated", { + info: { + id: "assistant-active", + sessionID: "session-1", + role: "assistant", + tokens: { output: 1 }, + }, + }); + } else { + await event("message.part.updated", { + part: { + sessionID: "session-1", + messageID: "assistant-active", + type: activity, + text: activity === "tool" ? undefined : "activity", + }, + }); + } + await new Promise((resolve) => setTimeout(resolve, 25)); + + expect(aborts).toHaveLength(0); + } + }); + + test("does not abort user-cancelled, question, permission, or disabled watchdog turns", async () => { + for (const blocked of ["abort", "question", "permission", "disabled"] as const) { + const { hooks, event, aborts } = await createHarness({ + stalledRequestTimeoutMs: blocked === "disabled" ? 0 : 15, + }); + await userTurn(event); + await event("session.status", { sessionID: "session-1", status: { type: "busy" } }); + if (blocked === "abort") { + await event("session.error", { + sessionID: "session-1", + error: { name: "MessageAbortedError", message: "operation was aborted" }, + }); + } else if (blocked === "question") { + await hooks["tool.execute.before"]?.({ sessionID: "session-1", tool: "question" } as never, {} as never); + } else if (blocked === "permission") { + await event("permission.updated", { sessionID: "session-1" }); + } + await new Promise((resolve) => setTimeout(resolve, 25)); + + expect(aborts).toHaveLength(0); + } + }); +}); From af7604634e75ab2ff88896539ef9f511daef29d5 Mon Sep 17 00:00:00 2001 From: XiaoqiangWu Date: Tue, 11 Aug 2026 20:50:39 +0800 Subject: [PATCH 3/5] fix: recover empty responses without idle events Some OpenCode versions complete empty assistant messages without emitting an idle event. Trigger the existing guarded recovery path when the final unknown completion arrives and cover the behavior with a regression test. Signed-off-by: XiaoqiangWu --- dist/index.d.ts.map | 2 +- dist/index.js | 8 ++++++++ dist/index.js.map | 2 +- src/index.ts | 11 +++++++++++ test/plugin.test.ts | 9 +++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index 6e0e1dc..ebb82dc 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2ZlD,QAAA,MAAM,MAAM,EAAE,MAokCb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2ZlD,QAAA,MAAM,MAAM,EAAE,MA+kCb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 8722998..7af3780 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1253,6 +1253,14 @@ const plugin = async ({ client, directory }) => { state.consecutiveCount = 0; } } + // Some OpenCode versions persist an empty completed response without + // emitting session.idle or session.status=idle. Reuse the same guarded + // recovery path so the status plugin and auto-continue agree. + if (info.finish === "unknown" && + config.retryEmptyResponses && + isCompletedEmptyResponse(state.turn)) { + handleSessionIdle(info.sessionID); + } } if (event.type === "message.part.updated") { const props = event.properties; diff --git a/dist/index.js.map b/dist/index.js.map index 5a6277f..ace336d 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 22bb50e..df40eb7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1402,6 +1402,17 @@ const plugin: Plugin = async ({ client, directory }) => { state.consecutiveCount = 0; } } + + // Some OpenCode versions persist an empty completed response without + // emitting session.idle or session.status=idle. Reuse the same guarded + // recovery path so the status plugin and auto-continue agree. + if ( + info.finish === "unknown" && + config.retryEmptyResponses && + isCompletedEmptyResponse(state.turn) + ) { + handleSessionIdle(info.sessionID); + } } if (event.type === "message.part.updated") { diff --git a/test/plugin.test.ts b/test/plugin.test.ts index 15e51a3..daf1346 100644 --- a/test/plugin.test.ts +++ b/test/plugin.test.ts @@ -77,6 +77,15 @@ describe("empty response recovery", () => { expect(prompts).toHaveLength(1); }); + test("continues an empty response when no idle event is emitted", async () => { + const { event, prompts, settle } = await createHarness(); + await userTurn(event); + await emptyAssistant(event); + await settle(); + + expect(prompts).toHaveLength(1); + }); + test("allows empty response recovery to be disabled", async () => { const { event, prompts, settle } = await createHarness({ retryEmptyResponses: false }); await userTurn(event); From e1c25be405d227b5e280bfc90c5959d1b42ce34f Mon Sep 17 00:00:00 2001 From: XiaoqiangWu Date: Wed, 12 Aug 2026 11:14:27 +0800 Subject: [PATCH 4/5] fix: preserve retries across message updates OpenCode can update the original user message summary after an empty assistant completion. Track the active user message ID so duplicate updates do not reset the turn and cancel the queued retry. Signed-off-by: XiaoqiangWu --- dist/index.d.ts.map | 2 +- dist/index.js | 3 +++ dist/index.js.map | 2 +- src/index.ts | 3 +++ test/plugin.test.ts | 17 +++++++++++++++++ 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index ebb82dc..12f633d 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2ZlD,QAAA,MAAM,MAAM,EAAE,MA+kCb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA4ZlD,QAAA,MAAM,MAAM,EAAE,MAilCb,CAAC;AAEF,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 7af3780..caacb17 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1217,6 +1217,9 @@ const plugin = async ({ client, directory }) => { return; const state = getState(info.sessionID); if (info.role === "user") { + if (info.id === state.userMessageID) + return; + state.userMessageID = info.id; resetTurn(state); return; } diff --git a/dist/index.js.map b/dist/index.js.map index ace336d..3b81030 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index df40eb7..2aff8ed 100644 --- a/src/index.ts +++ b/src/index.ts @@ -268,6 +268,7 @@ interface Config { } interface SessionState { + userMessageID?: string; lastErrorTime: number; lastContinueTime: number; pendingContinue: boolean; @@ -1364,6 +1365,8 @@ const plugin: Plugin = async ({ client, directory }) => { const state = getState(info.sessionID); if (info.role === "user") { + if (info.id === state.userMessageID) return; + state.userMessageID = info.id; resetTurn(state); return; } diff --git a/test/plugin.test.ts b/test/plugin.test.ts index daf1346..d535a91 100644 --- a/test/plugin.test.ts +++ b/test/plugin.test.ts @@ -86,6 +86,23 @@ describe("empty response recovery", () => { expect(prompts).toHaveLength(1); }); + test("keeps an empty-response retry when the user message summary is updated", async () => { + const { event, prompts, settle } = await createHarness({ delayMs: 5 }); + await userTurn(event); + await emptyAssistant(event); + await event("message.updated", { + info: { + id: "user-1", + sessionID: "session-1", + role: "user", + summary: { diffs: [] }, + }, + }); + await settle(); + + expect(prompts).toHaveLength(1); + }); + test("allows empty response recovery to be disabled", async () => { const { event, prompts, settle } = await createHarness({ retryEmptyResponses: false }); await userTurn(event); From 3639fdc66755450b8cbd194723e8703af674087c Mon Sep 17 00:00:00 2001 From: XiaoqiangWu Date: Wed, 12 Aug 2026 11:55:13 +0800 Subject: [PATCH 5/5] fix: recover partial unknown responses Providers can emit partial text while completing a response with an unknown finish and zero output tokens. Treat these abnormal completions as recoverable so auto-continue matches the tab status warning. Signed-off-by: XiaoqiangWu --- dist/recovery.d.ts.map | 2 +- dist/recovery.js | 1 - dist/recovery.js.map | 2 +- src/recovery.ts | 1 - test/plugin.test.ts | 17 +++++++++++++++++ test/recovery.test.ts | 19 +++++++++++++++++-- 6 files changed, 36 insertions(+), 6 deletions(-) diff --git a/dist/recovery.d.ts.map b/dist/recovery.d.ts.map index 30bb4a0..e93e0e3 100644 --- a/dist/recovery.d.ts.map +++ b/dist/recovery.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAMjD;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,IAAI,CAiBN;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,IAAI,CASN;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAYpE"} \ No newline at end of file +{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAMjD;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,IAAI,CAiBN;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,IAAI,CASN;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAWpE"} \ No newline at end of file diff --git a/dist/recovery.js b/dist/recovery.js index eb8a764..d6e3771 100644 --- a/dist/recovery.js +++ b/dist/recovery.js @@ -35,7 +35,6 @@ export function isCompletedEmptyResponse(turn) { return Boolean(assistant && assistant.finish === "unknown" && assistant.outputTokens === 0 && - !assistant.sawText && !assistant.error && !turn.aborted && !turn.waitingForQuestion && diff --git a/dist/recovery.js.map b/dist/recovery.js.map index f1f7f0c..de56042 100644 --- a/dist/recovery.js.map +++ b/dist/recovery.js.map @@ -1 +1 @@ -{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,KAAK;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAkB,EAClB,IAKC;IAED,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO;IAErB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3B,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC7D,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,IAA0D;IAE1D,IACE,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;QACpC,IAAI,CAAC,IAAI,KAAK,MAAM;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAC1B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,OAAO,OAAO,CACZ,SAAS;QACP,SAAS,CAAC,MAAM,KAAK,SAAS;QAC9B,SAAS,CAAC,YAAY,KAAK,CAAC;QAC5B,CAAC,SAAS,CAAC,OAAO;QAClB,CAAC,SAAS,CAAC,KAAK;QAChB,CAAC,IAAI,CAAC,OAAO;QACb,CAAC,IAAI,CAAC,kBAAkB;QACxB,CAAC,IAAI,CAAC,oBAAoB,CAC7B,CAAC;AACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,KAAK;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAkB,EAClB,IAKC;IAED,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO;IAErB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3B,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC7D,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,IAA0D;IAE1D,IACE,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;QACpC,IAAI,CAAC,IAAI,KAAK,MAAM;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAC1B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAkB;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,OAAO,OAAO,CACZ,SAAS;QACP,SAAS,CAAC,MAAM,KAAK,SAAS;QAC9B,SAAS,CAAC,YAAY,KAAK,CAAC;QAC5B,CAAC,SAAS,CAAC,KAAK;QAChB,CAAC,IAAI,CAAC,OAAO;QACb,CAAC,IAAI,CAAC,kBAAkB;QACxB,CAAC,IAAI,CAAC,oBAAoB,CAC7B,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/src/recovery.ts b/src/recovery.ts index 42d1c67..cf8de2f 100644 --- a/src/recovery.ts +++ b/src/recovery.ts @@ -68,7 +68,6 @@ export function isCompletedEmptyResponse(turn: TurnEvidence): boolean { assistant && assistant.finish === "unknown" && assistant.outputTokens === 0 && - !assistant.sawText && !assistant.error && !turn.aborted && !turn.waitingForQuestion && diff --git a/test/plugin.test.ts b/test/plugin.test.ts index d535a91..45e4889 100644 --- a/test/plugin.test.ts +++ b/test/plugin.test.ts @@ -103,6 +103,23 @@ describe("empty response recovery", () => { expect(prompts).toHaveLength(1); }); + test("continues an unknown zero-output response that contains partial text", async () => { + const { event, prompts, settle } = await createHarness({ delayMs: 5 }); + await userTurn(event); + await emptyAssistant(event); + await event("message.part.updated", { + part: { + sessionID: "session-1", + messageID: "assistant-empty", + type: "text", + text: "partial result", + }, + }); + await settle(); + + expect(prompts).toHaveLength(1); + }); + test("allows empty response recovery to be disabled", async () => { const { event, prompts, settle } = await createHarness({ retryEmptyResponses: false }); await userTurn(event); diff --git a/test/recovery.test.ts b/test/recovery.test.ts index 70e6271..3b876e2 100644 --- a/test/recovery.test.ts +++ b/test/recovery.test.ts @@ -7,7 +7,7 @@ import { } from "../src/recovery.js"; describe("completed empty response detection", () => { - test("accepts only unknown, zero-output, textless assistant completion", () => { + test("accepts an unknown zero-output assistant completion", () => { const turn = createTurnEvidence(); updateAssistantEvidence(turn, { id: "assistant-1", @@ -22,7 +22,6 @@ describe("completed empty response detection", () => { ["normal stop", { finish: "stop", output: 10, text: "done" }], ["tool call", { finish: "tool-calls", output: 10, text: "" }], ["unknown with output", { finish: "unknown", output: 1, text: "" }], - ["unknown with text", { finish: "unknown", output: 0, text: "partial" }], ])("rejects %s", (_name, value) => { const turn = createTurnEvidence(); updateAssistantEvidence(turn, { @@ -39,6 +38,22 @@ describe("completed empty response detection", () => { expect(isCompletedEmptyResponse(turn)).toBe(false); }); + test("accepts partial text from an unknown zero-output completion", () => { + const turn = createTurnEvidence(); + updateAssistantEvidence(turn, { + id: "assistant-1", + finish: "unknown", + tokens: { output: 0 }, + }); + recordTextPart(turn, { + messageID: "assistant-1", + type: "text", + text: "partial", + }); + + expect(isCompletedEmptyResponse(turn)).toBe(true); + }); + test("tracks text only for the latest assistant message", () => { const turn = createTurnEvidence(); updateAssistantEvidence(turn, {