Repository navigation
bug: contextbridge install claude fails on stale marketplace cache after plugin rename #61
Description
What happened?
After the Claude plugin id rename in #52 (closes #49), users whose machines already had the legacy cli@contextbridge plugin and the contextbridge marketplace configured cannot complete the migration with a single contextbridge install claude. The first invocation aborts because Claude's locally cached marketplace catalog is stale and still lists the old cli plugin id, not planbridge.
This affects every existing PlanBridge user upgrading across the rename — i.e., the exact population the migration code in ClaudeInstaller.runInstall is meant to serve.
contextbridge version
0.3.0-alpha.1
Operating system
macOS
Steps to reproduce
- Have the pre-rename Claude plugin already installed at user scope (
claude plugin list --jsonshowscli@contextbridge @ user,claude plugin marketplace list --jsonshowscontextbridge→contextbridge/claude-plugin). - Update to a
contextbridgebinary carrying feat!: rename Claude plugin to planbridge@contextbridge; refresh plugins on update #52 (e.g.0.3.0-alpha.1). - Run
contextbridge install claude --yes.
What did you expect to happen?
The migration to complete: planbridge@contextbridge installed at user scope, legacy cli@contextbridge removed, and the "renamed from cli@contextbridge to planbridge@contextbridge — migrated automatically" banner printed.
What actually happened?
The claude plugin install planbridge@contextbridge step fails because Claude's local copy of the contextbridge marketplace catalog is stale. The CLI exits non-zero and leaves the user on legacy state. Manually running claude plugin marketplace update contextbridge and then re-running contextbridge install claude succeeds — confirming the new plugin id is resolvable in the upstream catalog and the only blocker is the local cache.
Relevant logs or stack trace
$ contextbridge install claude --yes
{"level":50,"time":1778257218109,"pid":56365,"hostname":"...","msg":"✘ Failed to install plugin \"planbridge@contextbridge\": Plugin \"planbridge\" not found in marketplace \"contextbridge\". Your local copy may be out of date — try `claude plugin marketplace update contextbridge`."}
✘ Failed to install plugin "planbridge@contextbridge": Plugin "planbridge" not found in marketplace "contextbridge". Your local copy may be out of date — try `claude plugin marketplace update contextbridge`.
$ claude plugin marketplace update contextbridge
Updating marketplace: contextbridge...Refreshing marketplace cache (timeout: 120s)…
✔ Successfully updated marketplace: contextbridge
$ contextbridge install claude --yes
PlanBridge plugin renamed from cli@contextbridge to planbridge@contextbridge — migrated automatically.
✓ PlanBridge plugin installed for Claude Code (scope: user).
Restart Claude Code for the plugin to load.Anything else
- Related PR: feat!: rename Claude plugin to planbridge@contextbridge; refresh plugins on update #52 (the rename) — bug surfaced when validating the migration path on a machine in the pre-rename state.
- Closes-link from that PR: feat: move Claude Code plugin assets into this repo, rename to planbridge@contextbridge #49.
- Production telemetry: Sentry issue PLANBRIDGE-… — likely the same failure mode hitting real users.
uname -a:Darwin 25.4.0 Darwin Kernel Version 25.4.0: Thu Mar 19 19:26:07 PDT 2026; root:xnu-12377.101.15~1/RELEASE_ARM64_T6031 arm64- Workaround for affected users:
claude plugin marketplace update contextbridge && contextbridge install claude.
Activity
fix: refresh Claude marketplace cache during install (#62)