[BUG] /reload-plugins doesn't re-resolve plugin version from remote — serves stale cache
Preflight Checklist
- [x] I have searched existing issues and found related but distinct reports (#17361, #29074, #29512)
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
/reload-plugins re-reads plugin files from the cached path in installed_plugins.json but never re-resolves the version/commit from the remote repository. When a plugin's remote main branch advances (even after git push --force), the new commit gets fetched into ~/.claude/plugins/cache/<repo>/<plugin>/<new-hash>/ but installed_plugins.json still points at the old hash. The plugin continues to serve stale content.
The only workaround is to either:
- Manually edit
installed_plugins.jsonto updateinstallPath,version, andgitCommitSha - Uninstall and reinstall the plugin
What Should Happen?
/reload-plugins (or at minimum /plugin update) should:
- Check the remote for the latest commit on the configured branch
- Update
installed_plugins.jsonwith the new hash - Serve content from the new cache directory
Steps to Reproduce
- Install a plugin from a GitHub repo:
/plugin install repo/plugins/my-plugin - Push a new commit to the plugin's repo (e.g., edit a SKILL.md)
- Run
/reload-plugins - Invoke a skill from the plugin — observe it still serves the old version
- Check
~/.claude/plugins/cache/— both old and new hash directories exist - Check
installed_plugins.json— still points at the old hash
Claude Model
Opus
Is this a regression?
I don't know
Claude Code Version
2.1.63
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2 / zsh
Additional Information
installed_plugins.json structure for reference:
{
"installPath": "...cache/repo/plugin/<OLD_HASH>",
"version": "<OLD_HASH>",
"gitCommitSha": "<OLD_FULL_SHA>"
}
The new hash directory exists in cache but is never referenced. Related issues: #17361, #29074, #26744, #29512 — all variations of the same underlying problem: the plugin version pointer is write-once at install time and never updated.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗