From 2d583e877b60c76c231f57b67e4a880159f48c30 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 22 Jan 2026 03:57:17 +0000 Subject: [PATCH] fix: default exec approvals to main agent (#1417) (thanks @czekaj) --- CHANGELOG.md | 1 + src/infra/exec-approvals.ts | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7aa73616..51124675b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ Docs: https://docs.clawd.bot - Doctor: warn when gateway.mode is unset with configure/config guidance. - macOS: include Textual syntax highlighting resources in packaged app to prevent chat crashes. (#1362) - Cron: cap reminder context history to 10 messages and honor `contextMessages`. (#1103) Thanks @mkbehr. +- Exec approvals: treat main as the default agent + migrate legacy default allowlists. (#1417) Thanks @czekaj. - UI: refresh debug panel on route-driven tab changes. (#1373) Thanks @yazinsai. ## 2026.1.21 diff --git a/src/infra/exec-approvals.ts b/src/infra/exec-approvals.ts index 40e3d9c7d..616124765 100644 --- a/src/infra/exec-approvals.ts +++ b/src/infra/exec-approvals.ts @@ -91,7 +91,10 @@ function normalizeAllowlistPattern(value: string | undefined): string | null { return trimmed ? trimmed.toLowerCase() : null; } -function mergeLegacyAgent(current: ExecApprovalsAgent, legacy: ExecApprovalsAgent): ExecApprovalsAgent { +function mergeLegacyAgent( + current: ExecApprovalsAgent, + legacy: ExecApprovalsAgent, +): ExecApprovalsAgent { const allowlist: ExecAllowlistEntry[] = []; const seen = new Set(); const pushEntry = (entry: ExecAllowlistEntry) => { @@ -120,13 +123,11 @@ function ensureDir(filePath: string) { export function normalizeExecApprovals(file: ExecApprovalsFile): ExecApprovalsFile { const socketPath = file.socket?.path?.trim(); const token = file.socket?.token?.trim(); - const agents = { ...(file.agents ?? {}) }; + const agents = { ...file.agents }; const legacyDefault = agents.default; if (legacyDefault) { const main = agents[DEFAULT_AGENT_ID]; - agents[DEFAULT_AGENT_ID] = main - ? mergeLegacyAgent(main, legacyDefault) - : legacyDefault; + agents[DEFAULT_AGENT_ID] = main ? mergeLegacyAgent(main, legacyDefault) : legacyDefault; delete agents.default; } const normalized: ExecApprovalsFile = {