fix(orchestrate): show the Fast switch for every model whose catalog offers fast mode - #326
Merged
Merged
Conversation
…offers fast mode
Claude: the built-in catalog declared fastMode on Opus 4.7/4.6/4.5, which
Claude Code no longer supports (fast mode is Opus 5 and Opus 4.8 only);
it is now declared on exactly those two.
Codex: model/list advertises the fast tier as serviceTiers
[{id: "priority", name: "Fast"}], so the catalog's serviceTier select
never had a choice whose value is literally "fast" and no Codex row ever
showed the switch. The capability check now also accepts a tier labelled
Fast. The Orchestrate panel also observes the Providers topic so rows
re-render once the catalogs finish loading.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
In Settings → Orchestrate the Fast switch appeared only on some rows.
Two causes:
built_in_modelsdeclaredfastModeon Opus 4.7, 4.6 and 4.5. Claude Code's fast mode is supported on Opus 5 and Opus 4.8 only (4.7 support was removed on 2026‑07‑24; Sonnet and Haiku never had it).model/listadvertises the fast tier asserviceTiers: [{id: "priority", name: "Fast", …}](plusadditionalSpeedTiers: ["fast"], which the catalog mapper drops whenserviceTiersis non-empty). The switch predicate only accepted a choice whose value is literallyfast, so gpt‑5.6‑sol and gpt‑6‑astra never showed it.Reproduced with a copy of the reporter's settings in a throwaway data dir and the raw
model/listoutput fromcodex app-server.Fix
crates/agent/src/claude.rs:fastModeon exactlyclaude-opus-5andclaude-opus-4-8; a test pins that list.crates/ui/src/orchestrate_settings.rs: capability check extracted to a puremodel_fast_supported, which also accepts aserviceTierchoice labelled "Fast"; the panel now re-renders on the Providers topic so rows update once catalogs finish loading. Test covers the realpriority/Fastdescriptor shape.docs/DESIGN.md: visual contract for the Fast switch.With the reporter's fleet the switch now shows on gpt‑5.6‑sol (both efforts), gpt‑6‑astra (both efforts), claude‑opus‑5 and claude‑opus‑4‑8, and not on claude‑sonnet‑5 or claude‑fable‑5.
cargo fmt --all --check,cargo clippy --workspace --all-targets -- -D warnings,cargo build,cargo test --workspacepass locally.