feat(ios): current Claude model family in the picker via CLI-resolved aliases - #329
Open
kingbootoshi wants to merge 1 commit into
Open
feat(ios): current Claude model family in the picker via CLI-resolved aliases#329kingbootoshi wants to merge 1 commit into
kingbootoshi wants to merge 1 commit into
Conversation
The claude model list came from alleycat-claude-bridge's hand-curated handle_model_list (claude-opus-4-7 / claude-sonnet-4-6 / claude-haiku-4-5), which predates the Fable 5 generation, while codex lists stay current because the codex CLI answers model/list itself. Claude has no model introspection API, so the list rots wherever a point version is pinned. Replace claude wire models client-side with the four family aliases the claude CLI resolves natively (fable, opus, sonnet, haiku -> latest revision of each), mirroring the existing amp mode normalization in refresh_models. Aliases keep the picker current across future model generations without another code change, and the family still appears when the bridge's model/list call fails. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Brings the Claude model picker up to the current family - Fable, Opus, Sonnet (default), Haiku - and makes it structurally unable to go stale again.
Root cause
Codex and Claude both flow through the same
model/listRPC, but codex is answered dynamically by the installed CLI while claude's list is a hand-curated table in the alleycat claude bridge (pinned rev), written before the Fable 5 generation existed. The app could never show fable no matter how current the host CLI was.Fix
One layer, in this repo's existing precedent for deficient host lists (the amp mode normalization in
ffi/client.rs):fable,opus,sonnet(default),haiku- with claude's minimal/low/medium/high reasoning tiersclaudebinary on the host resolves each to its latest revision at spawn time. New model generations appear without any app change - this is the closest thing to dynamic discovery claude offersmodel/listcall fails, mirroring ampVerification
cargo test -p codex-mobile-client --lib: 784 passed, 0 failed (includes newclaude_wire_models_are_replaced_by_family_aliases)claude --model fableon the hostDemo
claude-model-family.mp4
🤖 Generated with Claude Code