@koda-sl/baker-bridge 0.166.0 → 0.167.0-dev.521cbd067
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 +21 -0
- package/dist/hono/agent.d.ts.map +1 -1
- package/dist/hono/agent.js +2 -1
- package/dist/hono/agent.js.map +1 -1
- package/dist/hono/agent.test.js +91 -175
- package/dist/hono/agent.test.js.map +1 -1
- package/dist/hono/bridge-job.d.ts +7 -0
- package/dist/hono/bridge-job.d.ts.map +1 -1
- package/dist/hono/bridge-job.js +8 -0
- package/dist/hono/bridge-job.js.map +1 -1
- package/dist/hono/bridge-job.test.js +19 -0
- package/dist/hono/bridge-job.test.js.map +1 -1
- package/dist/hono/flow-input-card-fields.test.js +1 -1
- package/dist/hono/flow-input.d.ts +1 -1
- package/dist/hono/flow-input.js +1 -1
- package/dist/hono/main-sync.d.ts +22 -0
- package/dist/hono/main-sync.d.ts.map +1 -1
- package/dist/hono/main-sync.js +110 -2
- package/dist/hono/main-sync.js.map +1 -1
- package/dist/hono/main-sync.test.js +127 -1
- package/dist/hono/main-sync.test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -833,6 +833,27 @@ whose reflog or remote branch still holds a commit it no longer reaches (reset
|
|
|
833
833
|
or rebased back to `main`) holds lost work, not none, so it never reports
|
|
834
834
|
unchanged. If git cannot answer, the field is left out.
|
|
835
835
|
|
|
836
|
+
## After a Publish is pushed
|
|
837
|
+
|
|
838
|
+
A chat can go on after Publish, so once this chat's Publish is on `main` (its
|
|
839
|
+
`publish: <branch>` commit), the bridge settles it: when the publish turn ends,
|
|
840
|
+
and again before the next turn's catch-up for a Runtime that stopped first. In
|
|
841
|
+
order:
|
|
842
|
+
|
|
843
|
+
1. The chat branch starts again from `main` (`git checkout -B <branch>
|
|
844
|
+
origin/main`), only when the workspace holds exactly what was published:
|
|
845
|
+
nothing written since, and the same tree as the published commit, or the
|
|
846
|
+
same change when the Publish re-applied it on a newer `main`. Its reflog
|
|
847
|
+
from before goes with it: everything it held is live. Anything else leaves
|
|
848
|
+
the branch as it is, with a warning in the log.
|
|
849
|
+
2. The remote chat branch is deleted.
|
|
850
|
+
3. `refs/baker/published` records the published commit, and how many entries
|
|
851
|
+
the branch's reflog held then. The lost-work check above reads only the
|
|
852
|
+
entries after them, so what was published never reads as lost work, while a
|
|
853
|
+
commit lost after Publish still does.
|
|
854
|
+
|
|
855
|
+
A Publish already recorded is not settled twice.
|
|
856
|
+
|
|
836
857
|
## Keeping the CLI on the current release
|
|
837
858
|
|
|
838
859
|
A turn's request may carry `cliVersion`: the `baker` CLI release the turn should
|
package/dist/hono/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/hono/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAiCvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAU3D,OAAO,EACL,KAAK,qBAAqB,EAK3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAoB/E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAEhG;AA2DD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5D;AAOD,cAAM,oBAAoB;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,YAAY,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,qBAAqB,EAcpE;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAE3B;IAED,KAAK,IAAI,OAAO,CAEf;IAED,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE9F;IAED,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAE9D;IAED,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAE3E;IAED,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAE5E;IAED,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,yBAAyB,GAAG,OAAO,CAExF;IAED,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAEhF;IAED,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAE5E;IAEK,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCjF;IAED,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/hono/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAiCvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAU3D,OAAO,EACL,KAAK,qBAAqB,EAK3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAoB/E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAEhG;AA2DD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5D;AAOD,cAAM,oBAAoB;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,YAAY,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,qBAAqB,EAcpE;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAE3B;IAED,KAAK,IAAI,OAAO,CAEf;IAED,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE9F;IAED,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAE9D;IAED,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAE3E;IAED,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAE5E;IAED,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,yBAAyB,GAAG,OAAO,CAExF;IAED,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAEhF;IAED,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAE5E;IAEK,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCjF;IAED,OAAO,CAAC,uBAAuB;YA+FjB,kBAAkB;YAQlB,mBAAmB;YAOnB,sBAAsB;YAItB,cAAc;IAO5B,OAAO,CAAC,wBAAwB;YAKlB,uBAAuB;YAQvB,+BAA+B;YAQ/B,wBAAwB;YAwBxB,kBAAkB;CAejC;AAwBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAElF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAWD,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CA2BhE"}
|
package/dist/hono/agent.js
CHANGED
|
@@ -4,7 +4,7 @@ import { buildAttachmentPromptSuffix, downloadAttachments } from "./attachments.
|
|
|
4
4
|
import { BridgeJobExecutor, } from "./bridge-job.js";
|
|
5
5
|
import { cliKeeper } from "./cli-sync.js";
|
|
6
6
|
import { clearStreamBuffer, enqueueStreamingTools, enqueueStreamText, flushStream, markStreamReplace, postAgentActivity, postAvatarCastingRequest, postAvatarCastingResolved, postCompaction, postConnectionInputRequest, postConnectionInputResolved, postContextUsage, postCredentialInputRequest, postCredentialInputResolved, postEvent, postFlowInputRequest, postFlowInputResolved, postHeartbeat, postInputRequest, postInputResolved, postPlanResolved, postPlanReview, postRetractedEvents, postReviewDigest, postTagInputRequest, postTagInputResolved, postToolOutcomes, recordContextSource, signalComplete, waitForTerminalCompletionLifecycle, } from "./convex.js";
|
|
7
|
-
import { catchUpWithMain, holdsNoWorkOfItsOwn } from "./main-sync.js";
|
|
7
|
+
import { catchUpWithMain, holdsNoWorkOfItsOwn, settleAfterPublish } from "./main-sync.js";
|
|
8
8
|
import { createMcpServersProvider } from "./mcp-servers.js";
|
|
9
9
|
import { resolveAgentModel } from "./model-capabilities.js";
|
|
10
10
|
import { recoverStalledPublish, waitForStalledPublishRecovery } from "./publish-recovery.js";
|
|
@@ -234,6 +234,7 @@ class BridgeRuntimeSession {
|
|
|
234
234
|
mcpServersProvider,
|
|
235
235
|
catchUpWithMain: (threadId) => catchUpWithMain(bridgeRuntimeFiles.projectRoot(), threadId),
|
|
236
236
|
holdsNoWork: () => holdsNoWorkOfItsOwn(bridgeRuntimeFiles.projectRoot()),
|
|
237
|
+
settleAfterPublish: () => settleAfterPublish(bridgeRuntimeFiles.projectRoot()),
|
|
237
238
|
keepCliInStep,
|
|
238
239
|
model: resolveAgentModel(),
|
|
239
240
|
sessionStore: {
|
package/dist/hono/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/hono/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/hono/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/hono/agent.test.js
CHANGED
|
@@ -2,14 +2,43 @@ import { mkdir, mkdtemp } from "node:fs/promises";
|
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
|
|
5
|
+
// The turn runs in a workspace of its own: a temp directory outside any git repository, so the
|
|
6
|
+
// before-turn sync with main never fetches or writes refs in the checkout running these tests.
|
|
7
|
+
// getSlashCommands reads the workspace's skills off disk, so the project root stays steerable.
|
|
8
|
+
// The session boundary and in-flight turn are kept under a temp Baker home, where the tests read them.
|
|
9
|
+
const dirs = await vi.hoisted(async () => {
|
|
10
|
+
const { mkdtempSync } = await import("node:fs");
|
|
11
|
+
const { tmpdir } = await import("node:os");
|
|
12
|
+
const { join } = await import("node:path");
|
|
13
|
+
return {
|
|
14
|
+
projectRoot: { value: mkdtempSync(join(tmpdir(), "baker-agent-workspace-")) },
|
|
15
|
+
bakerHome: mkdtempSync(join(tmpdir(), "baker-agent-home-")),
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
const projectRootMock = dirs.projectRoot;
|
|
19
|
+
// The real session store clears a boundary by deleting its file. A test that
|
|
20
|
+
// needs a stale clear to land late holds that delete open here.
|
|
21
|
+
const sessionFileDeletes = vi.hoisted(() => ({
|
|
22
|
+
hold: undefined,
|
|
23
|
+
}));
|
|
24
|
+
vi.mock("node:fs/promises", async (importOriginal) => {
|
|
25
|
+
const actual = await importOriginal();
|
|
26
|
+
return {
|
|
27
|
+
...actual,
|
|
28
|
+
rm: async (...args) => {
|
|
29
|
+
await sessionFileDeletes.hold?.(String(args[0]));
|
|
30
|
+
return actual.rm(...args);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
});
|
|
8
34
|
vi.mock("./runtime-files.ts", async (importOriginal) => {
|
|
9
35
|
const actual = await importOriginal();
|
|
10
36
|
return {
|
|
11
37
|
...actual,
|
|
12
|
-
bridgeRuntimeFiles: {
|
|
38
|
+
bridgeRuntimeFiles: {
|
|
39
|
+
...actual.createBridgeRuntimeFiles({ bakerHome: dirs.bakerHome }),
|
|
40
|
+
projectRoot: () => projectRootMock.value,
|
|
41
|
+
},
|
|
13
42
|
};
|
|
14
43
|
});
|
|
15
44
|
// The real provider POSTs to the convex site above: every turn here went out to
|
|
@@ -33,24 +62,6 @@ vi.mock("@anthropic-ai/claude-agent-sdk", () => ({
|
|
|
33
62
|
createSdkMcpServer: vi.fn(() => ({ type: "sdk", name: "baker_ui", instance: {} })),
|
|
34
63
|
tool: vi.fn((name) => ({ name })),
|
|
35
64
|
}));
|
|
36
|
-
vi.mock("./model-capabilities.ts", () => ({
|
|
37
|
-
DEFAULT_MODEL: "claude-opus-5-5",
|
|
38
|
-
resolveAgentModel: () => "claude-opus-5-5",
|
|
39
|
-
agentModelOverride: () => undefined,
|
|
40
|
-
contextWindowForModel: (model) => (model === "claude-opus-5-5" ? 1_000_000 : null),
|
|
41
|
-
autoCompactWindowForModel: (model) => model === "claude-opus-5-5" ? 1_000_000 : undefined,
|
|
42
|
-
betasForModel: (model) => model === "claude-haiku-4-5" ? undefined : ["context-1m-2025-08-07"],
|
|
43
|
-
}));
|
|
44
|
-
vi.mock("./session-store.ts", () => ({
|
|
45
|
-
loadSessionBoundary: vi.fn(async () => undefined),
|
|
46
|
-
saveSessionBoundary: vi.fn(async () => undefined),
|
|
47
|
-
clearSessionBoundary: vi.fn(async () => undefined),
|
|
48
|
-
inFlightTurnStore: {
|
|
49
|
-
load: vi.fn(async () => undefined),
|
|
50
|
-
save: vi.fn(async () => undefined),
|
|
51
|
-
clear: vi.fn(async () => undefined),
|
|
52
|
-
},
|
|
53
|
-
}));
|
|
54
65
|
vi.mock("./convex.ts", () => ({
|
|
55
66
|
clearStreamBuffer: vi.fn(),
|
|
56
67
|
enqueueStreamingTools: vi.fn(),
|
|
@@ -76,9 +87,11 @@ import { abortSession, buildRehydratedPrompt, getSlashCommands, isResumeSessionE
|
|
|
76
87
|
import { processAsync } from "./callback.js";
|
|
77
88
|
import { recordContextSource, signalComplete, waitForTerminalCompletionLifecycle } from "./convex.js";
|
|
78
89
|
import { recoverStalledPublish, waitForStalledPublishRecovery } from "./publish-recovery.js";
|
|
79
|
-
import {
|
|
90
|
+
import { loadSessionBoundary, saveSessionBoundary } from "./session-store.js";
|
|
80
91
|
beforeEach(() => {
|
|
81
92
|
vi.clearAllMocks();
|
|
93
|
+
// Every turn here runs on the default model; a developer's own override stays out of it.
|
|
94
|
+
vi.stubEnv("BAKER_AGENT_MODEL", "");
|
|
82
95
|
});
|
|
83
96
|
// Two tests install fake timers and restore them in a `finally`. A test that
|
|
84
97
|
// times out never reaches its `finally` — vitest fails it but leaves the body
|
|
@@ -87,6 +100,7 @@ beforeEach(() => {
|
|
|
87
100
|
// dozen. Hooks still run after a timed-out test, so restore the clock here.
|
|
88
101
|
afterEach(() => {
|
|
89
102
|
vi.useRealTimers();
|
|
103
|
+
vi.unstubAllEnvs();
|
|
90
104
|
});
|
|
91
105
|
function history(entries, renderedContext) {
|
|
92
106
|
return {
|
|
@@ -105,11 +119,14 @@ function history(entries, renderedContext) {
|
|
|
105
119
|
].join("\n")),
|
|
106
120
|
};
|
|
107
121
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
/** A clean boundary a thread's last turn left on disk, to resume from. */
|
|
123
|
+
async function savedCleanBoundary(threadId, sessionId) {
|
|
124
|
+
await saveSessionBoundary(threadId, { version: 2, sessionId, resumeSessionAt: "assistant_saved", updatedAtMs: 100 });
|
|
125
|
+
}
|
|
126
|
+
/** The session the thread's next turn would resume, as the bridge left it on disk. */
|
|
127
|
+
async function persistedSessionId(threadId) {
|
|
128
|
+
const loaded = await loadSessionBoundary(threadId);
|
|
129
|
+
return loaded?.kind === "clean" ? loaded.boundary.sessionId : undefined;
|
|
113
130
|
}
|
|
114
131
|
function deferred() {
|
|
115
132
|
let resolve;
|
|
@@ -373,7 +390,7 @@ describe("processAsync rehydration flow", () => {
|
|
|
373
390
|
});
|
|
374
391
|
expect(signalComplete).toHaveBeenCalledWith("thread_flow_missing_session", "turn_flow", expect.objectContaining({ kind: "completed", costUsd: 0, model: "claude-opus-5-5" }));
|
|
375
392
|
expect(vi.mocked(signalComplete).mock.lastCall?.[2]).not.toMatchObject({ completeChat: true });
|
|
376
|
-
expect(
|
|
393
|
+
expect(await persistedSessionId("thread_flow_missing_session")).toBe("session_next");
|
|
377
394
|
});
|
|
378
395
|
it("sends the preview-pane context as its own system-reminder block, leaving the marketer's words alone", async () => {
|
|
379
396
|
const queryMock = vi.mocked(query);
|
|
@@ -447,44 +464,9 @@ describe("processAsync rehydration flow", () => {
|
|
|
447
464
|
expect(reminders.join("\n")).toContain("Baker: this chat's last publish failed.");
|
|
448
465
|
expect(reminders.join("\n")).toContain("Verify failed (exit 1)");
|
|
449
466
|
});
|
|
450
|
-
it("clears an invalid saved SDK session and retries once with rehydrated history", async () => {
|
|
451
|
-
const queryMock = vi.mocked(query);
|
|
452
|
-
vi.mocked(loadSessionBoundary).mockResolvedValueOnce(cleanLoadedBoundary("session_stale"));
|
|
453
|
-
queryMock
|
|
454
|
-
.mockReturnValueOnce({
|
|
455
|
-
async *[Symbol.asyncIterator]() {
|
|
456
|
-
yield await Promise.reject(new Error("Cannot resume: session not found"));
|
|
457
|
-
},
|
|
458
|
-
})
|
|
459
|
-
.mockReturnValueOnce({
|
|
460
|
-
async *[Symbol.asyncIterator]() {
|
|
461
|
-
await Promise.resolve();
|
|
462
|
-
yield { type: "result", total_cost_usd: 0.5, session_id: "session_next" };
|
|
463
|
-
},
|
|
464
|
-
});
|
|
465
|
-
await processAsync({
|
|
466
|
-
threadId: "thread_flow_invalid_resume",
|
|
467
|
-
prompt: "Continue from context",
|
|
468
|
-
history: history([{ role: "user", text: "Persisted fact", createdAt: 1 }]),
|
|
469
|
-
turnId: "turn_invalid_resume",
|
|
470
|
-
});
|
|
471
|
-
expect(queryMock).toHaveBeenCalledTimes(2);
|
|
472
|
-
expect(queryMock.mock.calls[0]?.[0].options).toMatchObject({
|
|
473
|
-
resume: "session_stale",
|
|
474
|
-
forkSession: true,
|
|
475
|
-
resumeSessionAt: "assistant_saved",
|
|
476
|
-
});
|
|
477
|
-
expect(await promptText(queryMock.mock.calls[0]?.[0].prompt)).toBe("Continue from context");
|
|
478
|
-
expect(queryMock.mock.calls[1]?.[0].options).not.toHaveProperty("resume");
|
|
479
|
-
const retryPrompt = await promptText(queryMock.mock.calls[1]?.[0].prompt);
|
|
480
|
-
expect(retryPrompt).toContain("[user] Persisted fact");
|
|
481
|
-
expect(retryPrompt).toContain("Current user request\nContinue from context");
|
|
482
|
-
expect(clearSessionBoundary).toHaveBeenCalledWith("thread_flow_invalid_resume");
|
|
483
|
-
expect(recordContextSource).toHaveBeenCalledWith("thread_flow_invalid_resume", "rehydrated_invalid_resume", expect.objectContaining({ historyEntryCount: 1, reason: "invalid_resume" }), "turn_invalid_resume");
|
|
484
|
-
});
|
|
485
467
|
it("treats tool-use concurrency SDK errors as failed dirty continuity instead of string-match repair", async () => {
|
|
486
468
|
const queryMock = vi.mocked(query);
|
|
487
|
-
|
|
469
|
+
await savedCleanBoundary("thread_flow_tool_use_error", "session_broken_tool_state");
|
|
488
470
|
queryMock.mockReturnValueOnce({
|
|
489
471
|
async *[Symbol.asyncIterator]() {
|
|
490
472
|
yield await Promise.reject(new Error("Claude Code returned an error result: API Error: 400 due to tool use concurrency issues."));
|
|
@@ -502,7 +484,7 @@ describe("processAsync rehydration flow", () => {
|
|
|
502
484
|
forkSession: true,
|
|
503
485
|
resumeSessionAt: "assistant_saved",
|
|
504
486
|
});
|
|
505
|
-
expect(
|
|
487
|
+
expect(await loadSessionBoundary("thread_flow_tool_use_error")).toBeUndefined();
|
|
506
488
|
expect(recordContextSource).not.toHaveBeenCalledWith("thread_flow_tool_use_error", "rehydrated_repaired_tool_state", expect.anything(), "turn_tool_use_error");
|
|
507
489
|
expect(signalComplete).toHaveBeenCalledWith("thread_flow_tool_use_error", "turn_tool_use_error", expect.objectContaining({
|
|
508
490
|
kind: "errored",
|
|
@@ -511,65 +493,6 @@ describe("processAsync rehydration flow", () => {
|
|
|
511
493
|
errors: [expect.stringContaining("tool use concurrency issues")],
|
|
512
494
|
}));
|
|
513
495
|
});
|
|
514
|
-
it("treats tool-use concurrency result errors as failed dirty continuity instead of retrying", async () => {
|
|
515
|
-
const queryMock = vi.mocked(query);
|
|
516
|
-
vi.mocked(loadSessionBoundary).mockResolvedValueOnce(cleanLoadedBoundary("session_broken_tool_state_result"));
|
|
517
|
-
queryMock.mockReturnValueOnce({
|
|
518
|
-
async *[Symbol.asyncIterator]() {
|
|
519
|
-
await Promise.resolve();
|
|
520
|
-
yield {
|
|
521
|
-
type: "result",
|
|
522
|
-
subtype: "error_during_execution",
|
|
523
|
-
is_error: true,
|
|
524
|
-
errors: ["API Error: 400 due to tool use concurrency issues"],
|
|
525
|
-
total_cost_usd: 0.3,
|
|
526
|
-
session_id: "session_broken_tool_state_result",
|
|
527
|
-
};
|
|
528
|
-
},
|
|
529
|
-
});
|
|
530
|
-
await processAsync({
|
|
531
|
-
threadId: "thread_flow_tool_use_result_error",
|
|
532
|
-
prompt: "Continue from persisted state",
|
|
533
|
-
history: history([{ role: "assistant", text: "I was about to run a tool", createdAt: 1 }]),
|
|
534
|
-
turnId: "turn_tool_use_result_error",
|
|
535
|
-
});
|
|
536
|
-
expect(queryMock).toHaveBeenCalledTimes(1);
|
|
537
|
-
expect(clearSessionBoundary).toHaveBeenCalledWith("thread_flow_tool_use_result_error");
|
|
538
|
-
expect(signalComplete).toHaveBeenCalledWith("thread_flow_tool_use_result_error", "turn_tool_use_result_error", expect.objectContaining({
|
|
539
|
-
kind: "errored",
|
|
540
|
-
costUsd: 0.3,
|
|
541
|
-
model: "claude-opus-5-5",
|
|
542
|
-
errors: ["Claude Code returned an error result: API Error: 400 due to tool use concurrency issues"],
|
|
543
|
-
}));
|
|
544
|
-
});
|
|
545
|
-
it("does not retry invalid resume after any user-visible SDK event has been observed", async () => {
|
|
546
|
-
const queryMock = vi.mocked(query);
|
|
547
|
-
vi.mocked(loadSessionBoundary).mockResolvedValueOnce(cleanLoadedBoundary("session_stale_after_event"));
|
|
548
|
-
queryMock.mockReturnValueOnce({
|
|
549
|
-
async *[Symbol.asyncIterator]() {
|
|
550
|
-
yield { type: "stream_event", event: { type: "message_start" } };
|
|
551
|
-
yield {
|
|
552
|
-
type: "stream_event",
|
|
553
|
-
event: { type: "content_block_delta", delta: { type: "text_delta", text: "Visible" } },
|
|
554
|
-
};
|
|
555
|
-
yield await Promise.reject(new Error("Cannot resume: session not found"));
|
|
556
|
-
},
|
|
557
|
-
});
|
|
558
|
-
await processAsync({
|
|
559
|
-
threadId: "thread_flow_invalid_resume_after_event",
|
|
560
|
-
prompt: "Continue from context",
|
|
561
|
-
history: history([{ role: "user", text: "Persisted fact", createdAt: 1 }]),
|
|
562
|
-
turnId: "turn_invalid_resume_after_event",
|
|
563
|
-
});
|
|
564
|
-
expect(queryMock).toHaveBeenCalledTimes(1);
|
|
565
|
-
expect(clearSessionBoundary).toHaveBeenCalledWith("thread_flow_invalid_resume_after_event");
|
|
566
|
-
expect(signalComplete).toHaveBeenCalledWith("thread_flow_invalid_resume_after_event", "turn_invalid_resume_after_event", expect.objectContaining({
|
|
567
|
-
kind: "errored",
|
|
568
|
-
costUsd: 0,
|
|
569
|
-
model: "claude-opus-5-5",
|
|
570
|
-
errors: [expect.stringContaining("Cannot resume: session not found")],
|
|
571
|
-
}));
|
|
572
|
-
});
|
|
573
496
|
it("does not resume from a clean SDK result that is replaced before completion publishes", async () => {
|
|
574
497
|
vi.useFakeTimers();
|
|
575
498
|
try {
|
|
@@ -600,7 +523,7 @@ describe("processAsync rehydration flow", () => {
|
|
|
600
523
|
turnId: "turn_completion_clean",
|
|
601
524
|
});
|
|
602
525
|
await completionStarted.promise;
|
|
603
|
-
expect(
|
|
526
|
+
expect(await persistedSessionId("thread_flow_replace_during_completion")).not.toBe("session_unpublished_clean");
|
|
604
527
|
const second = processAsync({
|
|
605
528
|
threadId: "thread_flow_replace_during_completion",
|
|
606
529
|
prompt: "Replace before publish finishes",
|
|
@@ -611,10 +534,10 @@ describe("processAsync rehydration flow", () => {
|
|
|
611
534
|
await second;
|
|
612
535
|
expect(queryMock).toHaveBeenCalledTimes(2);
|
|
613
536
|
expect(queryMock.mock.calls[1]?.[0].options).not.toHaveProperty("resume", "session_unpublished_clean");
|
|
614
|
-
expect(
|
|
537
|
+
expect(await persistedSessionId("thread_flow_replace_during_completion")).toBe("session_replacement_clean");
|
|
615
538
|
releaseCompletion.resolve(true);
|
|
616
539
|
await first;
|
|
617
|
-
expect(
|
|
540
|
+
expect(await persistedSessionId("thread_flow_replace_during_completion")).not.toBe("session_unpublished_clean");
|
|
618
541
|
}
|
|
619
542
|
finally {
|
|
620
543
|
vi.useRealTimers();
|
|
@@ -641,9 +564,9 @@ describe("processAsync rehydration flow", () => {
|
|
|
641
564
|
history: history([]),
|
|
642
565
|
turnId: "turn_idle_clean_1",
|
|
643
566
|
});
|
|
644
|
-
expect(
|
|
567
|
+
expect(await persistedSessionId("thread_flow_stale_abort_after_clean")).toBe("session_idle_clean");
|
|
645
568
|
expect(abortSession("thread_flow_stale_abort_after_clean")).toBe(false);
|
|
646
|
-
expect(
|
|
569
|
+
expect(await persistedSessionId("thread_flow_stale_abort_after_clean")).toBe("session_idle_clean");
|
|
647
570
|
await processAsync({
|
|
648
571
|
threadId: "thread_flow_stale_abort_after_clean",
|
|
649
572
|
prompt: "Continue after stale abort",
|
|
@@ -657,70 +580,63 @@ describe("processAsync rehydration flow", () => {
|
|
|
657
580
|
});
|
|
658
581
|
it("repairs a stale dirty clear that finishes after a replacement committed a clean boundary", async () => {
|
|
659
582
|
vi.useFakeTimers();
|
|
583
|
+
const queryMock = vi.mocked(query);
|
|
584
|
+
await savedCleanBoundary("thread_flow_stale_clear_race", "session_prior_race");
|
|
585
|
+
// The failing turn's clear deletes the boundary file; hold that delete open
|
|
586
|
+
// until the replacement has committed its own boundary.
|
|
587
|
+
const clearStarted = deferred();
|
|
588
|
+
const staleClear = deferred();
|
|
589
|
+
sessionFileDeletes.hold = (path) => {
|
|
590
|
+
if (!path.endsWith("thread_flow_stale_clear_race.json"))
|
|
591
|
+
return undefined;
|
|
592
|
+
sessionFileDeletes.hold = undefined;
|
|
593
|
+
clearStarted.resolve();
|
|
594
|
+
return staleClear.promise;
|
|
595
|
+
};
|
|
596
|
+
queryMock
|
|
597
|
+
.mockReturnValueOnce({
|
|
598
|
+
async *[Symbol.asyncIterator]() {
|
|
599
|
+
yield await Promise.reject(new Error("Claude Code returned an error result: API Error: 400 due to tool use concurrency issues."));
|
|
600
|
+
},
|
|
601
|
+
})
|
|
602
|
+
.mockReturnValueOnce({
|
|
603
|
+
async *[Symbol.asyncIterator]() {
|
|
604
|
+
await Promise.resolve();
|
|
605
|
+
yield {
|
|
606
|
+
type: "assistant",
|
|
607
|
+
uuid: "assistant_replacement_race",
|
|
608
|
+
session_id: "session_replacement_race",
|
|
609
|
+
message: { role: "assistant", content: [{ type: "text", text: "Replacement" }] },
|
|
610
|
+
};
|
|
611
|
+
yield { type: "result", total_cost_usd: 0.3, session_id: "session_replacement_race" };
|
|
612
|
+
},
|
|
613
|
+
});
|
|
660
614
|
try {
|
|
661
|
-
const queryMock = vi.mocked(query);
|
|
662
|
-
vi.mocked(loadSessionBoundary).mockResolvedValueOnce(cleanLoadedBoundary("session_prior_race"));
|
|
663
|
-
const staleClear = deferred();
|
|
664
|
-
const dirtyBlocked = deferred();
|
|
665
|
-
const releaseDirty = deferred();
|
|
666
|
-
let clearCalls = 0;
|
|
667
|
-
let persistedBoundary = cleanLoadedBoundary("session_prior_race").boundary;
|
|
668
|
-
vi.mocked(clearSessionBoundary).mockImplementation(async () => {
|
|
669
|
-
clearCalls += 1;
|
|
670
|
-
if (clearCalls === 2) {
|
|
671
|
-
await staleClear.promise;
|
|
672
|
-
}
|
|
673
|
-
persistedBoundary = undefined;
|
|
674
|
-
});
|
|
675
|
-
vi.mocked(saveSessionBoundary).mockImplementation((_threadId, boundary) => {
|
|
676
|
-
persistedBoundary = boundary;
|
|
677
|
-
return Promise.resolve();
|
|
678
|
-
});
|
|
679
|
-
queryMock
|
|
680
|
-
.mockReturnValueOnce({
|
|
681
|
-
close: () => {
|
|
682
|
-
setTimeout(() => releaseDirty.resolve(), 0);
|
|
683
|
-
},
|
|
684
|
-
async *[Symbol.asyncIterator]() {
|
|
685
|
-
yield { type: "system", subtype: "init", session_id: "session_dirty_race" };
|
|
686
|
-
dirtyBlocked.resolve();
|
|
687
|
-
await releaseDirty.promise;
|
|
688
|
-
},
|
|
689
|
-
})
|
|
690
|
-
.mockReturnValueOnce({
|
|
691
|
-
async *[Symbol.asyncIterator]() {
|
|
692
|
-
await Promise.resolve();
|
|
693
|
-
yield {
|
|
694
|
-
type: "assistant",
|
|
695
|
-
uuid: "assistant_replacement_race",
|
|
696
|
-
session_id: "session_replacement_race",
|
|
697
|
-
message: { role: "assistant", content: [{ type: "text", text: "Replacement" }] },
|
|
698
|
-
};
|
|
699
|
-
yield { type: "result", total_cost_usd: 0.3, session_id: "session_replacement_race" };
|
|
700
|
-
},
|
|
701
|
-
});
|
|
702
615
|
const first = processAsync({
|
|
703
616
|
threadId: "thread_flow_stale_clear_race",
|
|
704
617
|
prompt: "Start dirty work",
|
|
705
618
|
history: history([]),
|
|
706
619
|
turnId: "turn_stale_clear_1",
|
|
707
620
|
});
|
|
708
|
-
await
|
|
621
|
+
await clearStarted.promise;
|
|
622
|
+
// The replacement waits out the stuck turn's takeover window before it runs.
|
|
709
623
|
const second = processAsync({
|
|
710
624
|
threadId: "thread_flow_stale_clear_race",
|
|
711
625
|
prompt: "Replace dirty work",
|
|
712
626
|
history: history([{ role: "user", text: "Start dirty work", createdAt: 1 }]),
|
|
713
627
|
turnId: "turn_stale_clear_2",
|
|
714
628
|
});
|
|
715
|
-
await vi.advanceTimersByTimeAsync(0);
|
|
716
629
|
await vi.advanceTimersByTimeAsync(30_000);
|
|
717
630
|
await second;
|
|
718
|
-
expect(
|
|
631
|
+
expect(await persistedSessionId("thread_flow_stale_clear_race")).toBe("session_replacement_race");
|
|
632
|
+
// The stale clear lands only now, after the replacement committed: it must not stick.
|
|
719
633
|
staleClear.resolve();
|
|
720
634
|
await first;
|
|
721
|
-
expect(
|
|
635
|
+
expect(await persistedSessionId("thread_flow_stale_clear_race")).toBe("session_replacement_race");
|
|
722
636
|
}
|
|
723
637
|
finally {
|
|
638
|
+
sessionFileDeletes.hold = undefined;
|
|
639
|
+
staleClear.resolve();
|
|
724
640
|
vi.useRealTimers();
|
|
725
641
|
}
|
|
726
642
|
});
|