From 91b0591f46e6fc5148769bc7459b3566b0e90daa Mon Sep 17 00:00:00 2001 From: Aiden Cline Date: Tue, 15 Sep 2026 19:02:22 -0500 Subject: [PATCH 1/2] test(tui): spy on session.form.list in mini transport replacement test 12e53ee6d4 moved form.list under session.form and updated the fixture but left one assertion on the old path, so the replacement test failed. --- packages/tui/test/mini/stream-v2.transport.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tui/test/mini/stream-v2.transport.test.ts b/packages/tui/test/mini/stream-v2.transport.test.ts index a5c9c1d51588..04554b6399ab 100644 --- a/packages/tui/test/mini/stream-v2.transport.test.ts +++ b/packages/tui/test/mini/stream-v2.transport.test.ts @@ -1902,7 +1902,7 @@ describe("V2 mini transport", () => { expect(first.event.subscribe).toHaveBeenCalledTimes(1) expect(second.event.subscribe).toHaveBeenCalledTimes(1) expect(second.session.list).toHaveBeenCalled() - expect(second.form.list).toHaveBeenCalledWith({ sessionID: "ses_child" }, { signal: expect.any(AbortSignal) }) + expect(second.session.form.list).toHaveBeenCalledWith({ sessionID: "ses_child" }, { signal: expect.any(AbortSignal) }) expect(ui.commits.filter((commit) => commit.messageID === "msg_assistant").map((commit) => commit.text)).toEqual([ "partial", " replacement", From 66a454625cab93b18afb41dd58dade9472b295de Mon Sep 17 00:00:00 2001 From: Aiden Cline Date: Tue, 15 Sep 2026 21:19:50 -0500 Subject: [PATCH 2/2] test(cli): align ACP fixture with permission decision body and form DELETE 12e53ee6d4 renamed the permission reply body field to decision and moved form cancellation to DELETE /api/session/{id}/form/{formID}, but the ACP SSE fixture still read reply and only routed the old POST path. --- packages/cli/test/acp/permission-behavior.test.ts | 2 +- packages/cli/test/acp/sse-fixture.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cli/test/acp/permission-behavior.test.ts b/packages/cli/test/acp/permission-behavior.test.ts index 02c688cc0497..d14c69007ca7 100644 --- a/packages/cli/test/acp/permission-behavior.test.ts +++ b/packages/cli/test/acp/permission-behavior.test.ts @@ -574,7 +574,7 @@ function permissionReplies(fixture: Fixture) { return fixture.requests.flatMap((request): Array<[string, string]> => { const match = /^\/api\/session\/[^/]+\/permission\/([^/]+)\/reply$/.exec(request.path) if (!match?.[1] || !request.body || typeof request.body !== "object") return [] - const reply = "reply" in request.body ? request.body.reply : undefined + const reply = "decision" in request.body ? request.body.decision : undefined return typeof reply === "string" ? [[decodeURIComponent(match[1]), reply]] : [] }) } diff --git a/packages/cli/test/acp/sse-fixture.ts b/packages/cli/test/acp/sse-fixture.ts index 8ec7be8b5f10..1f6094326af3 100644 --- a/packages/cli/test/acp/sse-fixture.ts +++ b/packages/cli/test/acp/sse-fixture.ts @@ -128,7 +128,7 @@ export function createSseFixture(options: FixtureOptions = {}) { const permission = /^\/api\/session\/([^/]+)\/permission\/([^/]+)\/reply$/.exec(url.pathname) if (permission?.[1] && permission[2]) { - const reply = stringField(body, "reply") + const reply = stringField(body, "decision") if (!reply) return new Response(null, { status: 400 }) await options.onPermissionReply?.({ sessionID: decodeURIComponent(permission[1]), @@ -140,7 +140,7 @@ export function createSseFixture(options: FixtureOptions = {}) { return new Response(null, { status: 204 }) } - const form = /^\/api\/session\/([^/]+)\/form\/([^/]+)\/cancel$/.exec(url.pathname) + const form = request.method === "DELETE" ? /^\/api\/session\/([^/]+)\/form\/([^/]+)$/.exec(url.pathname) : null if (form?.[1] && form[2]) { await options.onFormCancel?.({ sessionID: decodeURIComponent(form[1]),