Plugin update doesn't pull marketplace repo — shallow clone stays stale
Bug Description
/plugin update reports "already at the latest version" even when a newer version has been published and pushed to the marketplace repository.
Root Cause
When Claude Code installs a third-party marketplace plugin, it creates a shallow clone (--depth 1) of the marketplace repo at ~/.claude/plugins/marketplaces/<marketplace>/. On subsequent /plugin update calls, it reads .claude-plugin/marketplace.json from that local clone to determine the "latest" version — but never runs git pull (or git fetch + git merge) to update the clone first.
Evidence from the stale clone:
$ cd ~/.claude/plugins/marketplaces/jeremydev87
$ git rev-parse --is-shallow-repository
true
$ git reflog -5
c6277a0 HEAD@{0}: clone: from https://github.com/JeremyDev87/codingbuddy.git
# ↑ Only one entry — no pull/fetch ever happened
$ git rev-list HEAD..origin/master --count
79
# ↑ 79 commits behind remote after manual fetch
The known_marketplaces.json lastUpdated timestamp gets refreshed, but no actual git operations occur on the clone.
Steps to Reproduce
- Install a third-party marketplace plugin (e.g.,
codingbuddyfromJeremyDev87/codingbuddy) - The plugin author publishes a new version (bumps
marketplace.jsonversion, pushes to GitHub) - Run
/plugin updatein Claude Code - Observe: "codingbuddy is already at the latest version (X.X.X)" — reports the OLD version
Expected Behavior
/plugin update should git fetch + update the local marketplace clone before comparing versions, so newly published versions are detected.
Workaround
Manually update the marketplace clone:
cd ~/.claude/plugins/marketplaces/<marketplace-name>
git fetch --unshallow origin # if shallow
git reset --hard origin/master
Then restart Claude Code and run /plugin update.
Environment
- Claude Code CLI (latest)
- macOS Darwin 24.6.0
- Plugin:
codingbuddy@jeremydev87(5.0.0 installed, 5.1.0 available)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗