summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-12-25 18:38:10 -0500
committerBen Sima <ben@bensima.com>2025-12-25 18:38:10 -0500
commite7c740be5fd5a4d9c505e451e6c12c7e03ec6e11 (patch)
treef71f56fcf68f8560977d87bdc45b959eff75c9c4
parent871b5cf992c6d2b00f2336c898e92943187bbc35 (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>
-rw-r--r--Omni/Agent/Subagent.hs11
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
}