zcode-acp-server 0.35.2 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -239,7 +239,7 @@ Thanks to everyone who has contributed (updated automatically from the
239
239
  <a href="https://github.com/william0wang/zcode-acp/graphs/contributors">
240
240
  <!-- release-please re-stamps &v= on every release: the new URL busts the
241
241
  contrib.rocks and GitHub camo image caches. -->
242
- <img src="https://contrib.rocks/image?repo=william0wang/zcode-acp&v=0.35.2" alt="Contributors" /> <!-- x-release-please-version -->
242
+ <img src="https://contrib.rocks/image?repo=william0wang/zcode-acp&v=0.36.0" alt="Contributors" /> <!-- x-release-please-version -->
243
243
  </a>
244
244
 
245
245
  ## Related Projects
@@ -1,4 +1,4 @@
1
1
  {
2
- "fingerprint": "3467c947e037f9c1404cb74341e92f7f4c301c824ce3abbc0c1b8f0d79777b7e",
2
+ "fingerprint": "958945eedadaf4f0765723d0126d15841fbd4075f8dc0d0de81624b74931d6e8",
3
3
  "fileCount": 76
4
4
  }
@@ -33,6 +33,14 @@ export declare class GoalLoopDriver {
33
33
  private runId;
34
34
  /** Set when the last goal turn was cancelled by the sandbox allow-restart. */
35
35
  private lastSandboxRestart;
36
+ /**
37
+ * Consecutive backend-lost recoveries by run()'s catch (the per-turn
38
+ * recovery inside runOneTurn already respawns twice before giving up —
39
+ * this counter only bounds the loop-level last resort). Reset on any
40
+ * round that completes without losing the backend.
41
+ */
42
+ private backendRecoveries;
43
+ private static readonly MAX_BACKEND_RECOVERIES;
36
44
  private constructor();
37
45
  /** Live driver for a session, when a loop is running. */
38
46
  static live(server: ZcodeAcpServer, zcodeSid: string): GoalLoopDriver | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/goal-loop/driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAOrD,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,cAAc,CAAC;AAsBhE,wEAAwE;AACxE,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAIlE;AAiBD,qBAAa,cAAc;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,KAAK,CAAK;IAClB,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO;IAYP,yDAAyD;IACzD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAKjF;;;;OAIG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAC9B,cAAc;IA+BjB,4EAA4E;IAC5E,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAIpB,8EAA8E;IAC9E,MAAM,IAAI,IAAI;IAKd,2DAA2D;IAC3D,IAAI,IAAI,IAAI;IAIZ,wCAAwC;IACxC,UAAU,IAAI,MAAM;IAcpB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAOrD,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;IAKvB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAqBpB,0EAA0E;YAC5D,WAAW;IAmCzB,oEAAoE;IACpE,OAAO,CAAC,qBAAqB;IAM7B;;;;;;;;;;;OAWG;YACW,sBAAsB;IAcpC,oFAAoF;YACtE,iBAAiB;IAe/B,8EAA8E;YAChE,iBAAiB;YAUjB,YAAY;YAKZ,WAAW;YAWX,QAAQ;IAStB,OAAO,CAAC,OAAO;YAID,OAAO;YAgBP,GAAG;YAoBH,SAAS;YAoNT,qBAAqB;IAWnC;;;OAGG;YACW,eAAe;CA0B9B"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/goal-loop/driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAarD,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,cAAc,CAAC;AAsBhE,wEAAwE;AACxE,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAIlE;AAiBD,qBAAa,cAAc;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,KAAK,CAAK;IAClB,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB,CAAS;IACnC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IAEnD,OAAO;IAYP,yDAAyD;IACzD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAKjF;;;;OAIG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAC9B,cAAc;IA+BjB,4EAA4E;IAC5E,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAIpB,8EAA8E;IAC9E,MAAM,IAAI,IAAI;IAKd,2DAA2D;IAC3D,IAAI,IAAI,IAAI;IAIZ,wCAAwC;IACxC,UAAU,IAAI,MAAM;IAcpB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAOrD,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;IAKvB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAqBpB,0EAA0E;YAC5D,WAAW;IAmCzB,oEAAoE;IACpE,OAAO,CAAC,qBAAqB;IAM7B;;;;;;;;;;;OAWG;YACW,sBAAsB;IAcpC,oFAAoF;YACtE,iBAAiB;IAe/B,8EAA8E;YAChE,iBAAiB;YAUjB,YAAY;YAKZ,WAAW;YAWX,QAAQ;IAStB,OAAO,CAAC,OAAO;YAID,OAAO;YAgBP,GAAG;YA+DH,SAAS;YAuNT,qBAAqB;IAWnC;;;OAGG;YACW,eAAe;CA0B9B"}
@@ -16,7 +16,7 @@
16
16
  */
17
17
  import { readFileSync, unlinkSync } from "node:fs";
18
18
  import { compact } from "../handlers/extensions.js";
19
- import { preemptInFlightTurn, runOneTurn, withPreemptLock } from "../handlers/session.js";
19
+ import { isBackendLostRequestError, preemptInFlightTurn, reloadBackendSession, runOneTurn, withPreemptLock, } from "../handlers/session.js";
20
20
  import { sendTextChunk } from "../handlers/io.js";
21
21
  import { messages } from "../i18n.js";
22
22
  import { log, warn } from "../utils.js";
@@ -54,6 +54,14 @@ export class GoalLoopDriver {
54
54
  runId = 0;
55
55
  /** Set when the last goal turn was cancelled by the sandbox allow-restart. */
56
56
  lastSandboxRestart = false;
57
+ /**
58
+ * Consecutive backend-lost recoveries by run()'s catch (the per-turn
59
+ * recovery inside runOneTurn already respawns twice before giving up —
60
+ * this counter only bounds the loop-level last resort). Reset on any
61
+ * round that completes without losing the backend.
62
+ */
63
+ backendRecoveries = 0;
64
+ static MAX_BACKEND_RECOVERIES = 3;
57
65
  constructor(server, acpSid, zcodeSid, state) {
58
66
  this.server = server;
59
67
  this.acpSid = acpSid;
@@ -322,19 +330,55 @@ export class GoalLoopDriver {
322
330
  // prompts, disarm the keepalive, and persist a paused status — the outer
323
331
  // .catch in start() only logs (ADR-0022 §4: unrecoverable errors end the
324
332
  // loop, they must not wedge the editor's prompt request forever).
325
- try {
326
- await this.runRounds(myRun);
327
- }
328
- catch (e) {
329
- const msg = e instanceof Error ? e.message : String(e);
330
- warn(`goal-loop: round machinery failed — pausing loop (${msg})`);
331
- if (this.runId !== myRun)
332
- return;
333
+ // Loop rather than recurse on backend-lost recovery: a re-thrown failure
334
+ // from a recursive runRounds would escape this handler and reject run().
335
+ for (;;) {
333
336
  try {
334
- await this.endLoop("paused-crash", msg);
337
+ await this.runRounds(myRun);
338
+ return;
335
339
  }
336
- catch (e2) {
337
- warn(`goal-loop: crash recovery failed (${e2 instanceof Error ? e2.message : String(e2)})`);
340
+ catch (e) {
341
+ const msg = e instanceof Error ? e.message : String(e);
342
+ // A lost backend is recoverable at the loop level too: respawn,
343
+ // reload the session, and re-enter the round machinery instead of
344
+ // pausing — an unattended auto run must survive backend process
345
+ // churn (observed 2026-09-11: "database is not open" during the
346
+ // agent's own shutdown hard-stopped a night-long run). Bounded so a
347
+ // persistently broken spawn still ends in a pause.
348
+ if (isBackendLostRequestError(e) &&
349
+ this.runId === myRun &&
350
+ this.backendRecoveries < GoalLoopDriver.MAX_BACKEND_RECOVERIES) {
351
+ this.backendRecoveries++;
352
+ warn(`goal-loop: backend lost — respawning and resuming (${this.backendRecoveries}/${GoalLoopDriver.MAX_BACKEND_RECOVERIES}, ${msg})`);
353
+ try {
354
+ this.server.ensureBackend();
355
+ await reloadBackendSession(this.server, this.acpSid, this.zcodeSid);
356
+ }
357
+ catch (e2) {
358
+ warn(`goal-loop: backend recovery failed — pausing loop (${e2 instanceof Error ? e2.message : String(e2)})`);
359
+ if (this.runId !== myRun)
360
+ return;
361
+ try {
362
+ await this.endLoop("paused-crash", msg);
363
+ }
364
+ catch (e3) {
365
+ warn(`goal-loop: crash recovery failed (${e3 instanceof Error ? e3.message : String(e3)})`);
366
+ }
367
+ return;
368
+ }
369
+ await this.announce(messages().goalBackendRecovered);
370
+ continue;
371
+ }
372
+ warn(`goal-loop: round machinery failed — pausing loop (${msg})`);
373
+ if (this.runId !== myRun)
374
+ return;
375
+ try {
376
+ await this.endLoop("paused-crash", msg);
377
+ }
378
+ catch (e2) {
379
+ warn(`goal-loop: crash recovery failed (${e2 instanceof Error ? e2.message : String(e2)})`);
380
+ }
381
+ return;
338
382
  }
339
383
  }
340
384
  }
@@ -414,6 +458,9 @@ export class GoalLoopDriver {
414
458
  return void (await this.endLoop("paused", "cancelled"));
415
459
  }
416
460
  this.state.rounds++;
461
+ // A round completed against a live backend — the lost-backend streak
462
+ // (if any) is broken, so the loop-level recovery budget resets.
463
+ this.backendRecoveries = 0;
417
464
  // Stall detection: rounds with zero tool activity accumulate to a pause.
418
465
  const tools = await this.toolActivitySince(before);
419
466
  stallCount = tools > 0 ? 0 : stallCount + 1;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/goal-loop/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/goal-loop/driver.ts"],"names":[],"mappings":"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"}
@@ -166,6 +166,12 @@ export declare function setConfigOptionHandler(server: ZcodeAcpServer, params: a
166
166
  * stopReason "cancelled" immediately.
167
167
  */
168
168
  export declare function cancel(server: ZcodeAcpServer, params: acp.CancelNotification): Promise<void>;
169
+ /**
170
+ * Whether a thrown error is the RequestError form of a backend-lost turn
171
+ * failure (as produced by turnFailureRequestError). The goal-loop uses this
172
+ * to choose between respawn-and-continue and a hard pause.
173
+ */
174
+ export declare function isBackendLostRequestError(e: unknown): boolean;
169
175
  /** Dependencies of drainBackendAfterCancel, injectable for tests. */
170
176
  interface DrainDeps {
171
177
  acpSid: string;
@@ -269,6 +275,14 @@ export interface ImageAttachment {
269
275
  * Exported for unit testing.
270
276
  */
271
277
  export declare function extractAttachments(blocks: acp.ContentBlock[] | undefined): ImageAttachment[];
278
+ /**
279
+ * Reload a session into the backend subprocess via `session/resume` — the
280
+ * recovery path after the backend evicted the resident runtime (idle timeout
281
+ * / LRU). Same param shape as session/load·resume (workspace from the
282
+ * recorded session cwd, default-model overlay only if a faithful resume
283
+ * fails). Marks the session backend-loaded on success.
284
+ */
285
+ export declare function reloadBackendSession(server: ZcodeAcpServer, acpSid: string, zcodeSid: string): Promise<void>;
272
286
  /**
273
287
  * fetchMessages + bounded read-back settle, for paths that JUST performed a
274
288
  * resume. The backend's `session/messages` reflects only what it has hydrated
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ import { buildResumeRuntimeModel } from "../config/runtime-model.js";
25
25
  import { messages } from "../i18n.js";
26
26
  import { lookupLazySession, recordMaterializedSession, rememberLazySession, } from "../lazy-sessions.js";
27
27
  import { refreshTerminalTabTitle } from "../terminal-title.js";
28
- import { buildDiffContent, EventTranslator, extractLocations, formatTurnError, isTransientTurnError, ProjectionDiffer, } from "../translators/index.js";
28
+ import { buildDiffContent, EventTranslator, extractLocations, formatTurnError, isBackendLostError, isTransientTurnError, ProjectionDiffer, } from "../translators/index.js";
29
29
  import { clientConnectionRoot, log, warn } from "../utils.js";
30
30
  import { dispatchEvent } from "./dispatch.js";
31
31
  import { sendSessionUpdate, sendTextChunk, withReplayBatch } from "./io.js";
@@ -1071,7 +1071,10 @@ export async function prompt(server, params, cx, requestId, client) {
1071
1071
  * a second send/subscribe/retry path.
1072
1072
  */
1073
1073
  export async function runOneTurn(server, opts) {
1074
- const { backend, cx, acpSid, zcodeSid, requestId, turn, preempted, sendText } = opts;
1074
+ const { cx, acpSid, zcodeSid, requestId, turn, preempted, sendText } = opts;
1075
+ // `backend`/`listener`/`monitor` are reassigned by the backend-lost recovery
1076
+ // below (respawn swaps the process they are bound to).
1077
+ let backend = opts.backend;
1075
1078
  const attachments = opts.attachments ?? [];
1076
1079
  // Out-of-band running indicator: emitted per attached alias (see
1077
1080
  // server.sessionAliases) so a client holding this conversation under a
@@ -1087,8 +1090,8 @@ export async function runOneTurn(server, opts) {
1087
1090
  }
1088
1091
  }
1089
1092
  };
1090
- const listener = new EventStreamListener(backend, zcodeSid);
1091
- const monitor = new TurnMonitor(backend, zcodeSid, () => server.nextId());
1093
+ let listener = new EventStreamListener(backend, zcodeSid);
1094
+ let monitor = new TurnMonitor(backend, zcodeSid, () => server.nextId());
1092
1095
  // Per-session ProjectionDiffer (persists across turns). The baseline mark_seen
1093
1096
  // prevents the differ from re-emitting history at turn completion.
1094
1097
  const differ = getOrCreateDiffer(server, zcodeSid);
@@ -1150,6 +1153,11 @@ export async function runOneTurn(server, opts) {
1150
1153
  const MAX_BACKOFF_MS = 4000;
1151
1154
  const backoffMs = (attempt) => Math.min(1000 * 2 ** (attempt - 1), MAX_BACKOFF_MS);
1152
1155
  let lastTurnError = null;
1156
+ // Backend-lost (process died / storage closed mid-turn) gets its own cap:
1157
+ // each recovery respawns the subprocess, so an unbounded retry would churn.
1158
+ const MAX_BACKEND_LOST_RETRIES = 2;
1159
+ let backendLostRetries = 0;
1160
+ let suppressRetryNotice = false;
1153
1161
  for (let attempt = 1; attempt <= MAX_TURN_ATTEMPTS; attempt++) {
1154
1162
  if (attempt > 1) {
1155
1163
  // A prior transient turn ended the backend turn; before re-sending,
@@ -1160,7 +1168,10 @@ export async function runOneTurn(server, opts) {
1160
1168
  return { stopReason: "cancelled" };
1161
1169
  }
1162
1170
  differ.markSeen(await fetchMessages(server, zcodeSid));
1163
- await sendTextChunk(cx, acpSid, messages().networkRetry(attempt - 1, MAX_TURN_ATTEMPTS - 1), randomUUID());
1171
+ if (!suppressRetryNotice) {
1172
+ await sendTextChunk(cx, acpSid, messages().networkRetry(attempt - 1, MAX_TURN_ATTEMPTS - 1), randomUUID());
1173
+ }
1174
+ suppressRetryNotice = false;
1164
1175
  log(` [retry] transient turn failed, re-sending (attempt ${attempt}/${MAX_TURN_ATTEMPTS})`);
1165
1176
  await sleep(backoffMs(attempt - 1));
1166
1177
  }
@@ -1280,6 +1291,56 @@ export async function runOneTurn(server, opts) {
1280
1291
  return result;
1281
1292
  }
1282
1293
  catch (e) {
1294
+ // Backend lost (process died / storage closed mid-turn): recover by
1295
+ // respawning the backend and reloading the session, then retry the
1296
+ // turn. The session file is intact — only the process is gone.
1297
+ if (e instanceof TurnFailedError && !turn.cancelled && isBackendLostError(e.turnError)) {
1298
+ if (backendLostRetries >= MAX_BACKEND_LOST_RETRIES)
1299
+ throw turnFailureRequestError(e);
1300
+ backendLostRetries++;
1301
+ const lostDetail = formatTurnError(e.turnError);
1302
+ log(` [recover] backend lost (${lostDetail}) — respawning and reloading session ${zcodeSid} (recovery ${backendLostRetries}/${MAX_BACKEND_LOST_RETRIES})`);
1303
+ // The backend is process-wide: every other session's in-flight turn
1304
+ // on it is dead too — cancel them so their loops unwind instead of
1305
+ // hanging on the dead reader. goalLoop turns are skipped: they have
1306
+ // their OWN backend-lost recovery (driver-level respawn + reload);
1307
+ // marking them cancelled here would end their loop as "paused" and
1308
+ // defeat the recovery this commit exists for. Skipped loops hit the
1309
+ // dead-reader fast-fail below and recover on their own. This turn
1310
+ // may still be marked (non-goal-loop caller); restore its flags so
1311
+ // the retry below is not mistaken for a user cancel.
1312
+ server.cancelAllPendingTurns(true);
1313
+ turn.cancelled = false;
1314
+ turn.stopSent = false;
1315
+ // Kill the broken instance unless it already died — and only null
1316
+ // the server's reference when it still points at OUR instance, so a
1317
+ // concurrent respawn by someone else is never murdered.
1318
+ if (!backend.isDead) {
1319
+ if (server.backend === backend)
1320
+ server.backend = null;
1321
+ void backend
1322
+ .close()
1323
+ .catch((err) => warn(`recover: backend kill failed: ${err instanceof Error ? err.message : String(err)}`));
1324
+ }
1325
+ try {
1326
+ backend = server.ensureBackend();
1327
+ listener = new EventStreamListener(backend, zcodeSid);
1328
+ monitor = new TurnMonitor(backend, zcodeSid, () => server.nextId());
1329
+ await reloadBackendSession(server, acpSid, zcodeSid);
1330
+ await listener.subscribe(() => server.nextId());
1331
+ backend.registerEventListener(zcodeSid, listener);
1332
+ }
1333
+ catch (recoverErr) {
1334
+ warn(`recover: backend respawn/reload failed: ${recoverErr instanceof Error ? recoverErr.message : String(recoverErr)}`);
1335
+ throw turnFailureRequestError(e);
1336
+ }
1337
+ differ.markSeen(await fetchMessages(server, zcodeSid));
1338
+ await sendTextChunk(cx, acpSid, messages().backendRecovered(backendLostRetries, MAX_BACKEND_LOST_RETRIES), randomUUID());
1339
+ // The retry notice at the top of the next attempt would duplicate
1340
+ // the recovery announcement above.
1341
+ suppressRetryNotice = true;
1342
+ continue;
1343
+ }
1283
1344
  // Only a transient TurnFailedError is retryable; everything else (send
1284
1345
  // failures, non-transient turn errors, exhausted retries, cancellation)
1285
1346
  // propagates to the caller.
@@ -1299,6 +1360,12 @@ export async function runOneTurn(server, opts) {
1299
1360
  // session usable so the user can resend the message instead of the editor
1300
1361
  // surfacing a hard error and stopping. Skip auto-compact here: compaction
1301
1362
  // after a failed turn is more likely to confuse state than help.
1363
+ // Goal-loop turns are the exception: returning end_turn here would let the
1364
+ // driver parse the PREVIOUS round's assistant text as this round's verdict
1365
+ // and mis-mark the ticket done — throw so the loop pauses cleanly instead.
1366
+ if (turn.goalLoop) {
1367
+ throw turnFailureRequestError(new TurnFailedError(lastTurnError ?? {}));
1368
+ }
1302
1369
  const errMsg = formatTurnError(lastTurnError) || "turn failed after retries";
1303
1370
  await sendTextChunk(cx, acpSid, messages().requestFailed(errMsg), randomUUID());
1304
1371
  return { stopReason: "end_turn" };
@@ -1629,6 +1696,18 @@ function turnFailureRequestError(error) {
1629
1696
  const detail = formatTurnError(cause ?? error.turnError) || error.message;
1630
1697
  return new RequestError(-32603, `ZCode turn failed: ${detail}`, acpTurnFailureData(error.turnError));
1631
1698
  }
1699
+ /**
1700
+ * Whether a thrown error is the RequestError form of a backend-lost turn
1701
+ * failure (as produced by turnFailureRequestError). The goal-loop uses this
1702
+ * to choose between respawn-and-continue and a hard pause.
1703
+ */
1704
+ export function isBackendLostRequestError(e) {
1705
+ if (!(e instanceof RequestError))
1706
+ return false;
1707
+ const data = (e.data ?? {});
1708
+ return (isBackendLostError({ cause: { code: data.code, message: e.message } }) ||
1709
+ isBackendLostError({ cause: { message: data.reason } }));
1710
+ }
1632
1711
  /**
1633
1712
  * Fire-and-forget `session/stop` to the backend. Mirrors Python's
1634
1713
  * `_cancel_backend_turn`: send stop with an id (some backends route by id
@@ -1998,7 +2077,7 @@ async function resumeBackendSession(server, zcParams) {
1998
2077
  * recorded session cwd, default-model overlay only if a faithful resume
1999
2078
  * fails). Marks the session backend-loaded on success.
2000
2079
  */
2001
- async function reloadBackendSession(server, acpSid, zcodeSid) {
2080
+ export async function reloadBackendSession(server, acpSid, zcodeSid) {
2002
2081
  const cwd = server.sessionCwds.get(acpSid) ?? process.cwd();
2003
2082
  const zcParams = {
2004
2083
  sessionId: zcodeSid,
@@ -2414,6 +2493,18 @@ export async function runEventTurn(server, listener, monitor, differ, cx, acpSid
2414
2493
  }
2415
2494
  const ev = await listener.pollEvent(500);
2416
2495
  if (ev === null) {
2496
+ // Dead-reader fast-fail: a backend whose reader died will never emit
2497
+ // another event — without this check the loop waits out the full stall
2498
+ // policy (2min no-progress / 10min stale-freeze) on a dead process.
2499
+ // Throwing the backend-lost shape routes into runOneTurn's respawn
2500
+ // recovery instead.
2501
+ if (!turn.cancelled && backend.isDead) {
2502
+ throw new TurnFailedError({
2503
+ code: "UNKNOWN_ERROR",
2504
+ message: "Turn execution failed",
2505
+ cause: { code: "ERR_INVALID_STATE", message: "reader dead" },
2506
+ });
2507
+ }
2417
2508
  // Thinking-phase hint: if the turn has started but produced no output
2418
2509
  // yet (no text/reasoning/tool streamed), and we've been silent longer
2419
2510
  // than the threshold, emit a single "thinking" thought chunk so the