Conversation
There was a problem hiding this comment.
Pull request overview
This is a patch release (v5.2.1) that hardens the plugin installation system. It fixes the plugin.source.startsWith is not a function crash by introducing resolvePluginSource() to normalize both legacy string and structured object source formats. It also improves GitHub tarball fetching with a multi-ref fallback strategy, adds fail-fast behavior when any plugin fetch fails, and fixes the install ordering so the local install directory reset no longer wipes the fetched plugin cache before OpenCode/Codex/Cursor installation.
Changes:
- Version bumped to 5.2.1 across all version stamp files and a CHANGELOG entry added
resolvePluginSource()added to handle both legacy string and structured{source, url/path}marketplace source formats;parseGitHubSource()extracted into its own testable function with improved ref fallback order- Install ordering in
main()fixed sofetchExternalPluginsruns after the local install directory is set up rather than before
Reviewed changes
Copilot reviewed 6 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
bin/cli.js |
Core logic: new resolvePluginSource, extracted parseGitHubSource, improved fetch retry loop, install ordering fix, fail-fast behavior, and new exports |
__tests__/cli-subcommands.test.js |
Regression tests for resolvePluginSource and parseGitHubSource |
CHANGELOG.md |
New 5.2.1 release entry documenting the three fixes |
package.json |
Version bump to 5.2.1 |
package-lock.json |
Version bump to 5.2.1 |
site/content.json |
Version bump to 5.2.1 |
.claude-plugin/plugin.json |
Version bump to 5.2.1 |
.claude-plugin/marketplace.json |
Version bump to 5.2.1 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
vX.Y.Z,X.Y.Z,main,master) and fail-fast behavior when any plugin fetch failsTest Plan