You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Plugin deduplication incorrectly removes plugins with index.js entry points #11159
Bug Description
When multiple plugins have entry points named index.js or index.ts, only the last one is loaded. Earlier plugins are silently removed.
Root Cause getPluginName() returns only the filename for file:// URLs. Since most plugins use index.js/index.ts as entry points, they all return "index" and get deduplicated.
Reproduction
Config with two plugins:
"plugin": ["oh-my-opencode", "file:///path/to/my-plugin/src/index.ts"]
Result: oh-my-opencode is removed because both resolve to name "index".
Environment
These issues all describe the same root cause: plugin deduplication logic that doesn't properly account for multiple local plugins or plugins with identical entry point filenames.
Feel free to ignore if your specific case differs from these.
This is addressed by #15598 which adds node_modules-aware path parsing to getPluginName(). CI is green.
The root cause is that import.meta.resolve resolves npm plugins to file://…/node_modules/<pkg>/dist/index.js, and then getPluginName() extracts only the filename "index", causing false collisions with any project plugin that also has an index.ts entry point.
Activity
github-actions commentedon Jan 29, 2026
This issue might be a duplicate of existing issues. Please check:
These issues all describe the same root cause: plugin deduplication logic that doesn't properly account for multiple local plugins or plugins with identical entry point filenames.
Feel free to ignore if your specific case differs from these.
cyberprophet commentedon Mar 4, 2026
This is addressed by #15598 which adds node_modules-aware path parsing to
getPluginName(). CI is green.The root cause is that
import.meta.resolveresolves npm plugins tofile://…/node_modules/<pkg>/dist/index.js, and thengetPluginName()extracts only the filename"index", causing false collisions with any project plugin that also has anindex.tsentry point.Related issues: #8759, #10115, #11159, #12285, #14304, #15591
fix(config): use package.json name for file:// plugin identity
fix(opencode): prevent plugin deduplication collision for index.js en…
github-actions commentedon Jul 3, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.