Provider model catalogs are stale for OpenCode Go and OpenRouter #3957
Replies: 4 comments 1 reply
|
i have the same issue, opencode go models autofetch is stale, there are many more models on opencode go |
|
Your diagnosis matches what we see from the plugin side: One measured datapoint for the other mechanism, since it is easy to miss that it already exists: a provider package (as opposed to a static settings declaration) runs real code at mount, so it can query the authenticated So the trade-off today is: static route declarations = pinned catalogs (your finding), package-registered providers = catalog is whatever the code fetched at mount. That is refresh-on-restart, not live refresh — a package could re-poll and re-register (the bridge follows directory changes hot), but none of the providers we validated does that today, so I won't claim it. Scope note: this does not fix |
|
dsh-model-sync addresses the staleness for pi.dev-listed routes, which covers both routes in this thread:
model-sync:
managedRoutes: [opencode-go, openrouter]Writes go through the official npm i @aiwayds/dsh-model-sync
dsh plugin add @aiwayds/dsh-model-syncSame scope note as above: this is a plugin-side freshness layer, not the upstream active-refresh design @weijiafu14 is proposing in #3752 — the two are complementary. |
|
I had recently started using DeepSeek Harness. Had the same issue of the models not being picked up for OpenCode Go. I asked it in Creator mode for it to see the simplest way to fix it. It was able to self diagnose and add the models, it hardcoded them in the YAML file. This was the steps it followed. I tested it out, and I am happy for now with the way it did it. I just have two sections, so the defaults aren't disrupted. I tried it with the new models like GLM 5.3 Flash and it works. The write up below was what it gave me:
Making All OpenCode Go Models Appear in the DSH Model SelectorPrerequisites
Step 1 — Confirm how the model selector is populated
Step 2 — Fetch the live model roster from the endpoint
Step 3 — Diff live roster vs. installed catalog
Step 4 — Add the missing models to
|

Uh oh!
There was an error while loading. Please reload this page.
Tested with
@deepseek-ai/dsh 0.1.1-rc.2and the Open Design profile on Linux. The active DSH catalog exposed 16 OpenCode Go models while the authenticated provider/modelsendpoint returned 29. OpenRouter exposed 276 while its public/modelsendpoint returned 420; the static catalog also retained 11 IDs no longer returned live. Updating the nested compatible@earendil-works/pi-aidependency from 0.82.1 to 0.84.2 improved this only partially (19 and 346 respectively).The root behavior appears intentional but surprising:
dsh-llm-pi-aidocumentsregisterModelDiscoveryas UI-only candidate discovery, not an active catalog refresh, so routes with omittedmodelsremain pinned to the installed pi-ai snapshot.A validated local workaround is to materialize the live IDs into each provider profile and explicitly state transport metadata so unknown-to-catalog IDs resolve:
After applying the exact live snapshots,
dsh --profile open-design --modelsreports 29/29 OpenCode Go and 420/420 OpenRouter IDs, includinggpt-5.6-luna,qwen3.8-max,muse-spark-1.2-contributor,google/gemini-3.7-flash,stealth/ox-alpha, andz-ai/glm-5.3.Could DSH offer an opt-in live-catalog policy (with timeout/cache/stale fallback), or a supported refresh/adopt command, for OpenAI-compatible routes? That would retain configuration as the source of truth while avoiding silent catalog drift.
All reactions