Repository navigation
fix(app): show free models alongside their paid twins by default - #55712
Conversation
There was a problem hiding this comment.
The fix works and the change looks sound. I ran the real visibility logic from models.tsx against the live models.dev opencode catalog in both checkouts. On the base, deepseek-v4.1-flash-free and cat-jam-free are hidden by default. With this PR both are visible, and nothing drops out of the default set (37 → 39 visible). Older free models in the same family, such as deepseek-v4-flash-free, stay hidden. bun run typecheck and the existing tests in src/providers/models pass. There's no TUI view of this and no browser was available here, so I couldn't take screenshots.
The public API is unchanged: this only touches the app's model picker, and isFreeModel is internal to packages/app.
I found nothing that should block a merge.
The model picker shows only the newest model per provider and family by default. Free OpenCode models share a family and release date with their paid twin (for example
deepseek-v4.1-flashanddeepseek-v4.1-flash-freeare bothdeepseek-flash, released 2026-09-10), so the tie went to the paid model and the free one stayed hidden until enabled in Models settings.This groups by family plus free/paid, using the same free check as the picker's Free badge (
opencodeprovider with zero input cost). That check now lives in one exportedisFreeModelhelper used by the visibility rule, the model select dialog, and the unpaid dialog.Against the current models.dev
opencodecatalog, the default-visible set gainsdeepseek-v4.1-flash-freeandcat-jam-freeand loses nothing. Explicit show/hide choices are unchanged.Verified with
bun run typecheckinpackages/app.Requested by: @Brendonovich (Brendan via Slack)