Repository navigation
Changed
-
Breaking: Migrated to the provider/model registries OpenCode 2.0.4
introduced in #48901, which
removed thecatalogplugin domain. Provider and model registration now runs
throughctx.provider.transform, and revalidation reloads via
ctx.provider.reload(). This release requires OpenCode 2.0.4 or newer; on
2.0.0–2.0.3 it fails to load with
undefined is not an object (evaluating 'ctx.provider.transform'). Stay on
0.2.xfor those versions. -
A startup with no cached catalog now waits for the first discovery before
handing control back to OpenCode, capped by the newcoldWaitMsoption
(default3000). Stale-while-revalidate previously returned immediately even
with nothing to serve, so OpenCode activated the plugin against an empty
catalog. Short-lived invocations such asopencode run -m cliproxyapi-.../...
failed withModel unavailableand exited before the discovery that would
have populated the cache ever completed, leaving every subsequent run equally
cold. A warm cache still registers immediately and revalidates in the
background, and discovery that outlives the cap still registers when it
lands. -
A model metadata outage can no longer degrade the cached catalog. With a
healthy CLIProxyAPI and an unreachable models.dev, every model fell back to
default names, limits, modalities, and protocol, and that reading was written
to the cache, so the loss survived a restart until metadata happened to come
back. Models that metadata did not describe now keep their last enriched
definition, matching how reasoning variants are already preserved. -
Discovery failures are now reported to OpenCode's logs when discovery starts
failing and again when it recovers. A failure is otherwise invisible by
design, since the cached catalog keeps serving, which left a stale catalog
with nothing explaining it. Only the transitions are logged, so a server that
stays down does not add an entry per poll. -
The plugin now builds against the published
@opencode/pluginpackage
(OpenCode 2's own plugin package) instead of the@opencode-ai/plugin
prerelease, so the V2 domains are properly typed.