diff options
| author | Ben Sima <ben@bensima.com> | 2025-12-25 18:38:10 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-12-25 18:38:10 -0500 |
| commit | e7c740be5fd5a4d9c505e451e6c12c7e03ec6e11 (patch) | |
| tree | f71f56fcf68f8560977d87bdc45b959eff75c9c4 /Omni | |
| parent | 871b5cf992c6d2b00f2336c898e92943187bbc35 (diff) | |
Omni/Agent/Subagent: fix per-spawn guardrails for Coder
The Coder subagent was ignoring per-spawn guardrails from
subagentGuardrails and always using SubagentConfig defaults.
Now uses getGuardrail helper to check SpawnGuardrails first,
falling back to SubagentConfig defaults if not specified.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'Omni')
| -rw-r--r-- | Omni/Agent/Subagent.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Omni/Agent/Subagent.hs b/Omni/Agent/Subagent.hs index 597b361..3eeda3e 100644 --- a/Omni/Agent/Subagent.hs +++ b/Omni/Agent/Subagent.hs @@ -844,7 +844,10 @@ runCoderSubagentWrapper keys config callbacks = do else do onSubagentStart callbacks ("Starting Coder subagent for " <> namespace <> "...") - -- Build CoderConfig from SubagentConfig + -- Build CoderConfig from SubagentConfig, using per-spawn guardrails if provided + let getGuardrail field def = case subagentGuardrails config of + Just g -> fromMaybe def (field g) + Nothing -> def let coderCfg = Coder.CoderConfig { Coder.coderNamespace = namespace, @@ -852,9 +855,9 @@ runCoderSubagentWrapper keys config callbacks = do Coder.coderContext = subagentContext config, Coder.coderModel = fromMaybe "anthropic/claude-sonnet-4" (subagentModel config), Coder.coderTimeout = subagentTimeout config, - Coder.coderMaxCost = subagentMaxCost config, - Coder.coderMaxTokens = subagentMaxTokens config, - Coder.coderMaxIterations = subagentMaxIterations config, + Coder.coderMaxCost = getGuardrail spawnMaxCostCents (subagentMaxCost config), + Coder.coderMaxTokens = getGuardrail spawnMaxTokens (subagentMaxTokens config), + Coder.coderMaxIterations = getGuardrail spawnMaxIterations (subagentMaxIterations config), Coder.coderMaxVerifyRetries = 3 } |
