From 6c658773686d3739c633341f4e8947d320c6addc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 21:56:23 +0000 Subject: [PATCH 1/2] Initial plan From d961d135716e99db09e832e714b0f94cff7b758a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 22:00:46 +0000 Subject: [PATCH 2/2] docs: add panic contract doc comment to prepareClaudeToolsForAllowedList Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- pkg/workflow/claude_tools.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/workflow/claude_tools.go b/pkg/workflow/claude_tools.go index bdfcc56742c..dd73d7ca892 100644 --- a/pkg/workflow/claude_tools.go +++ b/pkg/workflow/claude_tools.go @@ -138,6 +138,9 @@ func (e *ClaudeEngine) computeAllowedClaudeToolsString(tools map[string]any, saf return strings.Join(allowedTools, ",") } +// prepareClaudeToolsForAllowedList expands neutral tool definitions into Claude-specific +// format. Panics if tools already contains a "claude" section key, since callers must only +// ever pass neutral tool definitions at this stage (an internal invariant violation). func (e *ClaudeEngine) prepareClaudeToolsForAllowedList(tools map[string]any) map[string]any { if tools == nil { tools = make(map[string]any)