Repository navigation
Conversation
This branch has not been deployed
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.
Why
The Claude backend pins exact model ids (
claude-opus-4-8,claude-sonnet-4-6,claude-haiku-4-5), so we can't use the newest model considered how fast it changes. Moreover,normalizeClaudeModelsilently replaces any id outside that list with Sonnet 4.6, so users can't work around it by editing their config.How
opus/sonnet/haiku) as the model ids. It will resolves to the latest model in that family, so the picker stays current without a Codiff release.normalizeClaudeModelmaps any legacyclaude-(opus|sonnet|haiku)…id to its alias before validating.config/defaults.json, the config JSON schema (default + description), and the README example. The schema keepsclaudeModelas a free string to support legacy values.Related issue: #177 fixed the same "unknown ids silently replaced" problem for Codex by reading the model catalog from the Codex app-server. Unfortunately, Claude CLI has no equivalent listing, so aliases should be the way to go.
Verification
vp check --fix: cleanvp test: new/updated cases inelectron/__tests__/claude.test.tspass (legacy ids → aliases, unknown →sonnet)vp run build: passesclaude -p --model sonnet --output-format jsonAI disclosure
Research, code, tests, and this PR description were drafted with Claude Code (Claude Opus). I reviewed the plan, references, code diff, manual tested to confirm by myself, and updated the PR details. Any AI-assisted replies to review comments will be noted.