chore: pin the built-in default model to deepseek/deepseek-v4-pro - #77
Merged
Merged
Conversation
The pinned fallback was deepseek-v3, which both PPIO and Novita still serve but which now sits four releases behind what they list. That value is not probe-only: resolveProviderModel and prepareInstallModel both fall back to it, so it is what lands in an Agent config when the user does not choose a model. v4 also removes a trap. PPIO spelled v3 with a hyphen and Novita with an underscore, so the two entries could never share a constant; both now publish deepseek/deepseek-v4-pro, verified present in each /v1/models listing. Chose the rolling v4-pro alias over v4-flash-0731: the dated snapshot goes stale the moment the next one ships. Chose pro over flash because this value is written into real configs, where coding capability matters more than the per-token saving. The manual-entry placeholder in ModelPicker keeps its neutral gpt-4.1 example; only the provider-specific hints move.
yujiezhang-ops
force-pushed
the
chore/default-model-deepseek-v4-pro
branch
from
August 6, 2026 09:39
e23f49a to
046ee75
Compare
This was referenced Aug 6, 2026
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.
Advances the pinned built-in default model from
deepseek/deepseek-v3todeepseek/deepseek-v4-pro. Groundwork for #76, which asks that a PPIO or Novita user only supply a key — pre-filling a model that is four releases behind would make the staleness visible to every new user on their first screen.Why this value is load-bearing
Despite the field name,
fallback_probe_modelis not probe-only.internal/app/provider.go:260(resolveProviderModel) andinternal/app/install.go:187both fall back to it, so it is the model written into a real Agent config whenever the user does not pick one.v4 removes a trap
PPIO published v3 as
deepseek/deepseek-v3and Novita asdeepseek/deepseek_v3— one hyphen versus one underscore, so the two entries could never share a constant. Both now publishdeepseek/deepseek-v4-pro. Verified present in each/v1/modelslisting (PPIO 108 models, Novita 145; both answer anonymously).This makes #76's acceptance criterion "assert the two defaults are distinct strings" obsolete; that issue has been updated.
Why
v4-prov4-flash-0731has the newestcreatedtimestamp but is a dated snapshot — pinning it means going stale the moment the next snapshot ships.v4-flashandv4-proare both rolling aliases from the same date.Chose pro over flash because this value reaches real configs, where coding capability outweighs the per-token saving. The gap is worth knowing: on PPIO pro costs 3× flash (30000/60000 vs 10000/20000 per M), on Novita 11× (16000/32000 vs 1400/2800). If first-run cost matters more than capability, switching to
v4-flashis three lines in the lock file.Scope
providers.lock.json—default_fallback_probe_modelplus both providers'fallback_probe_model.The i18n key
例如 deepseek/deepseek-v3and its three call sites (ProviderKeyPage.tsx:133,ProfilesPage.tsx:260,AgentProfilePage.tsx:214). i18n is Chinese-source, so the key itself moves.ModelPicker.tsx:52keeps its neutral例如 gpt-4.1— that is the free-text box, where a vendor-neutral example is more appropriate than promoting one provider's model.Verification
go test ./...— all packages pass. Noteinternal/catalog/catalog_test.go:68asserts the public provider projection contains no"deepseek"substring; that still holds becausePublicProviderszeroesfallbackModel.pnpm run test— 26 files, 205 tests pass.pnpm run build(which runstsc --noEmitfirst) succeeds.Also confirmed upstream that
deepseek/deepseek-v4-prois a live model id on both providers, not just newer-looking.🤖 Generated with Claude Code