Files
claude-plugins-official/external_plugins
Dickson Tsai f227eeb90c Add version field to 27 local-sourced plugins
Local-path plugins (source is a string like "./plugins/foo" in
marketplace.json) without a manifest version cache at
~/.claude/plugins/cache/{marketplace}/{plugin}/unknown/ forever.

The cache check in claude-cli's copyPluginToVersionedCache sees
pathExists(.../unknown/) → true → skips re-extraction, even after
the marketplace content updates. Users are stuck with stale plugin
files until they manually delete the cache.

Adding "version": "1.0.0" fixes this because calculatePluginVersion
reads the manifest from the freshly-synced marketplace tree (not the
stale cache), and manifest.version is priority #1 in version
resolution. New version → new cache path → cache miss → re-extract.

This is preferable to the GCS-SHA fallback approach
(anthropics/claude-cli-internal#24773) because:
- Per-plugin granularity: only bumped plugins re-extract, not all
  27 on every marketplace push
- No disk accumulation from unrelated marketplace churn
- Fixes both the runtime loader path AND the migration path
  (manifest.version is priority #1 in both)
- No claude-cli code change needed

Remote-sourced plugins (github/git/url) already get a git SHA as
their version and are unaffected.
2026-03-26 22:02:14 -07:00
..