-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Fetch and cache live Models.dev catalog into ProviderLake #4187
Copy link
Copy link
Closed
Labels
agent-readySelf-contained for a fresh-clone cloud agent; implement in a tested PR with no live credentialsSelf-contained for a fresh-clone cloud agent; implement in a tested PR with no live credentialsbugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestlane-catalogv0.9.0 delivery lane (retired)v0.9.0 delivery lane (retired)reliabilityReliability, flaky behavior, retries, fallbacks, and robustnessReliability, flaky behavior, retries, fallbacks, and robustnesstuiTerminal UI behavior, rendering, or interactionTerminal UI behavior, rendering, or interactionv0.9.0Targeting v0.9.0Targeting v0.9.0
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
agent-readySelf-contained for a fresh-clone cloud agent; implement in a tested PR with no live credentialsSelf-contained for a fresh-clone cloud agent; implement in a tested PR with no live credentialsbugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestlane-catalogv0.9.0 delivery lane (retired)v0.9.0 delivery lane (retired)reliabilityReliability, flaky behavior, retries, fallbacks, and robustnessReliability, flaky behavior, retries, fallbacks, and robustnesstuiTerminal UI behavior, rendering, or interactionTerminal UI behavior, rendering, or interactionv0.9.0Targeting v0.9.0Targeting v0.9.0
Projects
- StatusShow more project fieldsDone
Parent: #4184
Depends on: #4185 and #4186
Problem
CodeWhale already has lower-level Models.dev parsing and a
provider_lakelive overlay, but there is no OpenCode-style producer that fetches Models.dev, caches it, compiles it, and publishes the result into the TUI catalog path.OpenCode's pattern is the right rough model:
Browser/live verification
Checked live on 2026-07-07:
https://models.dev/catalog.jsonis available asapplication/jsonand about 3.13 MB.Likely files
crates/tui/src/, for examplemodels_dev_live.rsorcatalog_refresh/models_dev.rscrates/config/src/models_dev.rscrates/config/src/catalog.rscrates/tui/src/provider_lake.rscrates/tui/src/client.rscrates/tui/src/tui/model_picker.rscrates/tui/src/tui/provider_picker.rsProposed implementation
Add a secret-free live refresh layer that:
https://models.dev/catalog.json.ModelsDevCatalogintoCatalogOfferingrows.provider_lake::set_live_snapshot.Suggested cache policy
Acceptance
provider_lake.cargo test -p codewhale-config models_dev catalogand focused TUI picker/provider-lake tests pass.