From f1cd767f889a13aae9d16ccaa544896886360604 Mon Sep 17 00:00:00 2001 From: "Nacho F. Lizaur" Date: Mon, 23 Feb 2026 10:18:44 +0100 Subject: [PATCH 1/2] fix(tui): show reject message prompt in main agent session --- .../cli/cmd/tui/routes/session/permission.tsx | 9 +------ .../opencode/test/permission/next.test.ts | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx index 389fc2418cc..afba5c13cb1 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx @@ -439,14 +439,7 @@ export function PermissionPrompt(props: { request: PermissionRequest }) { return } if (option === "reject") { - if (session()?.parentID) { - setStore("stage", "reject") - return - } - sdk.client.permission.reply({ - reply: "reject", - requestID: props.request.id, - }) + setStore("stage", "reject") return } sdk.client.permission.reply({ diff --git a/packages/opencode/test/permission/next.test.ts b/packages/opencode/test/permission/next.test.ts index add3332048c..d8007823278 100644 --- a/packages/opencode/test/permission/next.test.ts +++ b/packages/opencode/test/permission/next.test.ts @@ -565,6 +565,32 @@ test("reply - reject throws RejectedError", async () => { }) }) +test("reply - reject with message throws CorrectedError", async () => { + await using tmp = await tmpdir({ git: true }) + await Instance.provide({ + directory: tmp.path, + fn: async () => { + const askPromise = PermissionNext.ask({ + id: "permission_test_corrected", + sessionID: "session_test", + permission: "bash", + patterns: ["ls"], + metadata: {}, + always: [], + ruleset: [], + }) + + await PermissionNext.reply({ + requestID: "permission_test_corrected", + reply: "reject", + message: "Use a different approach instead", + }) + + await expect(askPromise).rejects.toBeInstanceOf(PermissionNext.CorrectedError) + }, + }) +}) + test("reply - always persists approval and resolves", async () => { await using tmp = await tmpdir({ git: true }) await Instance.provide({ From 0ec82ff5c7ffa6c52e317815e62b4b8e0887e374 Mon Sep 17 00:00:00 2001 From: "Nacho F. Lizaur" Date: Mon, 23 Feb 2026 11:27:13 +0100 Subject: [PATCH 2/2] chore: retrigger CI