Skip to content

Curate the model picker around frontier models - #123

Open
molefrog wants to merge 1 commit into
mainfrom
frontier-model-picker
Open

Curate the model picker around frontier models#123
molefrog wants to merge 1 commit into
mainfrom
frontier-model-picker

Conversation

@molefrog

Copy link
Copy Markdown
Owner

The model picker now features up to five frontier models per provider section and moves the rest behind a scrollable "More models" submenu, so Hermes's 59-model merged catalog no longer renders as one viewport-tall list. Curation is shared: a hand-ordered family table plus a committed models.dev release-date snapshot in lib/, usable by any harness. Sections where the submenu would hide fewer than three rows stay inline, so Claude Code, Codex, and local Ollama lists are unchanged.

Probed against the live app (all four harnesses), the Hermes Nous Portal section (39 models) now features:

anthropic/claude-fable-5, anthropic/claude-opus-5, openai/gpt-5.6-sol,
anthropic/claude-sonnet-5, x-ai/grok-4.6      · More models (34)

Ranking is layered because no dataset has a "flagship" flag: the family table owns prominence and tier slots (opus/sonnet/haiku are separate), a demotion rule keeps -mini/-flash/image/video variants from headlining, and release dates from the snapshot pick the newest variant within a family (Opus 4 < 4.8 < 5). An id the snapshot doesn't know ranks newest, so a freshly launched model surfaces before anyone reruns bun scripts/update-frontier-catalog.ts.

Worth a close look:

  • lib/frontier-models.ts — the demotion regex and slot rules encode judgment calls; two known effects: OpenClaw features GPT-5.6 Luna (not Sol — same-family, dates can't tell the flagship) and Nous Portal drops gemini from featured (it only serves -flash/-preview variants).
  • scripts/update-frontier-catalog.ts — dedupes disagreeing provider dates by most-common vote; models.dev data has junk (1970-01-01, an opus-4-8 dated before 4.7) this must keep out.
  • client/features/chat/composer/ModelPicker.tsx — radio items inside a Base UI submenu rely on the DropdownMenuRadioGroup context crossing the submenu portal.

Verified: bun test full suite (1417 pass, 0 fail; 14 new tests incl. real-snapshot Opus ranking), typecheck:client, lint, and live-app probes of claude-code, codex, hermes, and openclaw via /api/workspaces/:id/agent.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XXKdrgK1D9RQAFzeqBF5Uq

Large merged catalogs (Hermes lists 59 models) now show up to five
frontier models per provider section, with the rest behind a scrollable
"More models" submenu. Curation lives in lib/frontier-models.ts — a
hand-ordered family table plus a committed models.dev release-date
snapshot (lib/frontier-catalog.ts, regenerated by
scripts/update-frontier-catalog.ts) — so any harness can share it.

Within a family the newest full-strength variant wins its slot; demoted
tiers (mini/flash/fast/…, image/video models) only fill leftovers.
Groups where the submenu would hide fewer than three rows stay inline,
which keeps Claude Code, Codex, and local Ollama lists untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XXKdrgK1D9RQAFzeqBF5Uq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant