Before submitting
Area
apps/server
Steps to reproduce
- Connect an OpenCode upstream provider such as GitHub, or install an OpenCode plugin that adds models.
- Start T3 Code and confirm those models appear.
- Log out of the provider or remove the plugin.
- Refresh or restart T3 Code.
Expected behavior
Models no longer reported by OpenCode should disappear from T3 Code.
Actual behavior
Removed models remain in the model picker and survive restarts. Clearing the OpenCode provider cache fixes it.
Root cause: OpenCode discovery correctly excludes disconnected or removed models, but mergeProviderModels in ProviderRegistry.ts always restores models missing from the refreshed snapshot. The merged result is then persisted to ~/.t3/caches/opencode.json, so the cache can never shrink.
Successful OpenCode inventory results should be authoritative. Previous models should only be retained during pending or failed probes. Cursor-specific merge behavior should remain unchanged.
Impact
Minor bug or occasional failure
Version or commit
main @ fdca154
Environment
OpenCode provider
Logs or stack traces
Screenshots, recordings, or supporting files
opencode-cli-kilo-plugin-uninstalled.png
opencode-cli-kilo-plugin-installed.png
t3-kilo-plugin-installed.png
t3-kilo-plugin-uninstalled.png
Workaround
Stop T3 Code, delete ~/.t3/caches/opencode.json, and restart. Custom OpenCode instances use their instance ID as the cache filename.
Before submitting
Area
apps/server
Steps to reproduce
Expected behavior
Models no longer reported by OpenCode should disappear from T3 Code.
Actual behavior
Removed models remain in the model picker and survive restarts. Clearing the OpenCode provider cache fixes it.
Root cause: OpenCode discovery correctly excludes disconnected or removed models, but
mergeProviderModelsinProviderRegistry.tsalways restores models missing from the refreshed snapshot. The merged result is then persisted to~/.t3/caches/opencode.json, so the cache can never shrink.Successful OpenCode inventory results should be authoritative. Previous models should only be retained during pending or failed probes. Cursor-specific merge behavior should remain unchanged.
Impact
Minor bug or occasional failure
Version or commit
main @ fdca154
Environment
OpenCode provider
Logs or stack traces
Screenshots, recordings, or supporting files
opencode-cli-kilo-plugin-uninstalled.png
opencode-cli-kilo-plugin-installed.png
t3-kilo-plugin-installed.png
t3-kilo-plugin-uninstalled.png
Workaround
Stop T3 Code, delete
~/.t3/caches/opencode.json, and restart. Custom OpenCode instances use their instance ID as the cache filename.