From 2b0f595a17fa5bc7f4a5bf7fc64f079feeb31d7e Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Mon, 16 Mar 2026 10:49:55 -0400 Subject: [PATCH] fix(core): return 'opus' directly instead of mapping to 'inherit' (#1079) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit resolveModelInternal() was converting 'opus' to 'inherit', assuming the parent process runs on Opus. When the orchestrator runs on Sonnet (the default), 'inherit' resolves to Sonnet — silently downgrading quality profile subagents. Remove the opus→inherit conversion so the resolved model name is passed through directly. Claude Code's Task tool now supports model aliases like 'opus', 'sonnet', 'haiku'. Fixes #695 --- get-shit-done/bin/lib/core.cjs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/get-shit-done/bin/lib/core.cjs b/get-shit-done/bin/lib/core.cjs index 9ac791498..5b089a35c 100644 --- a/get-shit-done/bin/lib/core.cjs +++ b/get-shit-done/bin/lib/core.cjs @@ -374,7 +374,7 @@ function resolveModelInternal(cwd, agentType) { // Check per-agent override first const override = config.model_overrides?.[agentType]; if (override) { - return override === 'opus' ? 'inherit' : override; + return override; } // Fall back to profile lookup @@ -382,8 +382,7 @@ function resolveModelInternal(cwd, agentType) { const agentModels = MODEL_PROFILES[agentType]; if (!agentModels) return 'sonnet'; if (profile === 'inherit') return 'inherit'; - const resolved = agentModels[profile] || agentModels['balanced'] || 'sonnet'; - return resolved === 'opus' ? 'inherit' : resolved; + return agentModels[profile] || agentModels['balanced'] || 'sonnet'; } // ─── Misc utilities ───────────────────────────────────────────────────────────