bug: out-of-tree file:// plugins never get @opencode-ai/plugin installed
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- bun, typescript
Research direction
Read packages/opencode/src/config/plugin.ts, starting at ConfigPlugin.needsDependencies, and trace how the dependency directory is selected for an out-of-tree file:// plugin. Compare that behavior with Bun's upward module lookup described in the issue. Done means the chosen dependency strategy is implemented or documented and @opencode-ai/plugin resolves for the example plugin.
Written by the indexing model from the issue text.
Description
Found during the v0.11.1 release review (End User persona). Deferred because: pre-existing behavior (v0.11.0's unconditional install had the same target-directory logic), not a regression, and the fix needs a decision on where dependencies for out-of-tree plugins should live.
A plugin declared as "plugin": ["file:///abs/path/outside/any/config/dir/plugin.ts"] never gets @opencode-ai/plugin installed anywhere: ConfigPlugin.needsDependencies (packages/opencode/src/config/plugin.ts) only installs into config directories that contain the plugin file, and Bun resolves the plugin's import "@opencode-ai/plugin" by walking up from the plugin file's own path, which nothing populates. The import fails unless the user happens to have the package on an ancestor path.
Options: install into the plugin file's own directory (or nearest package root), document that out-of-tree file plugins must provide their own node_modules, or resolve @opencode-ai/plugin from the CLI's bundled copy via an import map.
- Dominant language
- TypeScript
- Stars
- 813
- Forks
- 134
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 62
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AltimateAI/altimate-code
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
AltimateAI/altimate-code#1323 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
AltimateAI/altimate-code#1288 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
AltimateAI/altimate-code#1285 ·
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifier Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
AltimateAI/altimate-code#1284 ·
-
Difficulty 2/5 Under an hour Newbie friendliness 72/100
AltimateAI/altimate-code#1283 ·
All issues in AltimateAI/altimate-code
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
copse-dev/agent-pane#2953 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·