fix(#2068): dynamic routing escalates the model per --attempt (#2334)

* fix(#2068): dynamic routing escalates the model per --attempt, not just effort

cmdResolveExecution resolved the model via resolveModelInternal (which ignores
dynamic_routing), so retries escalated effort but the model stayed pinned to the
default tier. Resolve the model via resolveModelForTier when --attempt is given,
gated identically to the effort resolution so model and effort stay symmetric —
an omitted --attempt keeps the classic profile model (unchanged for everyone,
incl. dynamic_routing users who don't pass --attempt). Escalation is capped at
max_escalations. Falls back to resolveModelInternal when dynamic_routing is off.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(#2068): backfill PR number 2334 into changeset

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-07-16 15:25:19 -04:00
committed by GitHub
parent 1794acb255
commit a30fb75b51
3 changed files with 185 additions and 2 deletions

View File

@@ -0,0 +1,5 @@
---
type: Fixed
pr: 2334
---
**Dynamic routing now escalates the model, not just effort** — with `dynamic_routing.enabled`, retry attempts advanced the reasoning effort but the model stayed pinned to the default tier because `resolve-execution` resolved the model without consulting `dynamic_routing`. `resolve-execution` now resolves the model per-attempt through the tier ladder (e.g. standard→heavy on attempt 1, capped at `max_escalations`); resolution is unchanged when dynamic routing is disabled. (#2068)