diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index f38ec371c0f..61b64d1a789 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -48,6 +48,16 @@ import { initializeTUIDependencies } from "@kilocode/kilo-gateway/tui" // kiloco import { TuiConfigProvider } from "./context/tui-config" import { TuiConfig } from "@/config/tui" +// kilocode_change start +function isAllowEverything(permission: unknown): boolean { + if (typeof permission !== "object" || permission === null) return false + const wildcard = (permission as Record)["*"] + if (typeof wildcard === "string") return wildcard === "allow" + if (typeof wildcard === "object" && wildcard !== null) return (wildcard as Record)["*"] === "allow" + return false +} +// kilocode_change end + async function getTerminalBackgroundColor(): Promise<"dark" | "light"> { // can't set raw mode if not a TTY if (!process.stdin.isTTY) return "dark" @@ -711,21 +721,21 @@ function App() { }, // kilocode_change start { - title: kv.get("allow_everything_global") ? "Disable auto-approve mode" : "Enable auto-approve mode", + get title() { + return isAllowEverything(sync.data.config.permission) ? "Disable auto-approve mode" : "Enable auto-approve mode" + }, value: "permission.allow_everything", category: "System", onSelect: async (dialog) => { - const enabled = kv.get("allow_everything_global") - const next = !enabled - const result = await sdk.client.permission.allowEverything({ enable: next }) + const enabled = isAllowEverything(sync.data.config.permission) + const result = await sdk.client.permission.allowEverything({ enable: !enabled }) if (result.error) { toast.show({ variant: "error", - message: `Failed to ${next ? "enable" : "disable"} auto-approve mode`, + message: `Failed to ${!enabled ? "enable" : "disable"} auto-approve mode`, }) return } - kv.set("allow_everything_global", next) dialog.clear() }, }, diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx index e7049fcbe4e..985bc7a4d75 100644 --- a/packages/opencode/src/cli/cmd/tui/context/sync.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/sync.tsx @@ -390,6 +390,15 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ setStore("vcs", { branch: event.properties.branch }) break } + + // kilocode_change start + case "global.config.updated": { + sdk.client.config.get().then((x) => { + if (x.data) setStore("config", reconcile(x.data)) + }) + break + } + // kilocode_change end } })