From 3f38c3f8fc2ad898f1433b044bd485d04ba774f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Catriel=20M=C3=BCller?= Date: Mon, 29 Jun 2026 17:00:36 -0300 Subject: [PATCH] refactor: fix kilo markers --- packages/opencode/src/cli/cmd/run.ts | 4 +++- packages/opencode/src/cli/cmd/run/footer.ts | 4 +++- packages/opencode/src/cli/cmd/run/session-data.ts | 6 +++--- packages/opencode/src/cli/cmd/tui/routes/session/index.tsx | 3 ++- packages/opencode/test/agent/agent.test.ts | 6 +++--- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index b59dd6ec8b0..e6ffede741e 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -412,11 +412,13 @@ export const RunCommand = effectCmd({ action: "deny", pattern: "*", }, + // kilocode_change start - non-interactive runs cannot take over a terminal { - permission: "interactive_terminal", // kilocode_change - non-interactive runs cannot take over a terminal + permission: "interactive_terminal", action: "deny", pattern: "*", }, + // kilocode_change end { permission: "plan_enter", action: "deny", diff --git a/packages/opencode/src/cli/cmd/run/footer.ts b/packages/opencode/src/cli/cmd/run/footer.ts index ec95fea7369..7385d3179d4 100644 --- a/packages/opencode/src/cli/cmd/run/footer.ts +++ b/packages/opencode/src/cli/cmd/run/footer.ts @@ -570,9 +570,11 @@ export class RunFooter implements FooterApi { ? this.base + PERMISSION_ROWS : type === "question" ? this.base + QUESTION_ROWS - : type === "interactive_terminal" // kilocode_change + // kilocode_change start + : type === "interactive_terminal" ? this.base + RUN_INTERACTIVE_TERMINAL_ROWS : this.promptRoute.type === "command" + // kilocode_change end ? 1 + COMMAND_ROWS : this.promptRoute.type === "model" ? 1 + MODEL_ROWS diff --git a/packages/opencode/src/cli/cmd/run/session-data.ts b/packages/opencode/src/cli/cmd/run/session-data.ts index 0ad692c5835..54748428f33 100644 --- a/packages/opencode/src/cli/cmd/run/session-data.ts +++ b/packages/opencode/src/cli/cmd/run/session-data.ts @@ -217,16 +217,16 @@ function out(data: SessionData, commits: SessionCommit[], footer?: FooterOutput) } } +// kilocode_change start export function pickBlockerView(input: { permission?: PermissionRequest question?: QuestionRequest - terminal?: RunInteractiveTerminalSnapshot // kilocode_change + terminal?: RunInteractiveTerminalSnapshot }): FooterView { - // kilocode_change start if (input.terminal) { return { type: "interactive_terminal", terminal: input.terminal } } - // kilocode_change end +// kilocode_change end if (input.permission) { return { type: "permission", request: input.permission } diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index f75c1d50a9b..0133674d7f3 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -1409,10 +1409,11 @@ export function Session() { - {/* kilocode_change - the terminal owns the input area while active */} + {/* kilocode_change start - the terminal owns the input area while active */} 0}> + {/* kilocode_change end */} {/* kilocode_change start */} {(value) => } diff --git a/packages/opencode/test/agent/agent.test.ts b/packages/opencode/test/agent/agent.test.ts index 6ac7fa73d93..4fa63fdcfd1 100644 --- a/packages/opencode/test/agent/agent.test.ts +++ b/packages/opencode/test/agent/agent.test.ts @@ -74,7 +74,7 @@ it.instance("build agent has correct default properties", () => expect(evalPerm(build, "bash")).toBe("ask") expect(evalPerm(build, "repo_clone")).toBe("deny") expect(evalPerm(build, "repo_overview")).toBe("deny") - expect(evalPerm(build, "interactive_terminal")).toBe("allow") + expect(evalPerm(build, "interactive_terminal")).toBe("allow") // kilocode_change }), ) @@ -84,7 +84,7 @@ it.instance("plan agent denies edits except .opencode/plans/*", () => expect(plan).toBeDefined() // Wildcard is denied expect(evalPerm(plan, "edit")).toBe("deny") - expect(evalPerm(plan, "interactive_terminal")).toBe("deny") + expect(evalPerm(plan, "interactive_terminal")).toBe("deny") // kilocode_change // But specific path is allowed expect(Permission.evaluate("edit", ".opencode/plans/foo.md", plan!.permission).action).toBe("allow") }), @@ -98,7 +98,7 @@ it.instance("explore agent denies edit and write", () => expect(evalPerm(explore, "edit")).toBe("deny") expect(evalPerm(explore, "write")).toBe("deny") expect(evalPerm(explore, "todowrite")).toBe("deny") - expect(evalPerm(explore, "interactive_terminal")).toBe("deny") + expect(evalPerm(explore, "interactive_terminal")).toBe("deny") // kilocode_change }), )