Skip to content

claude plugin update keeps a stale cache directory when the version number is unchanged #3681

Description

@kyle-sexton

Summary

claude plugin update -y <plugin>@<marketplace> re-points the plugin's gitCommitSha in installed_plugins.json without rewriting its cache directory when the manifest version number is unchanged. The directory keeps the older build while the metadata claims the new commit.

Impact

After delivering main to the cache on 2026-09-02, six plugins reported the new sha while their cache directories still held files from an earlier commit (guardrails: 12 stale files including the reviewed dispatcher; the three Write formatters; source-control and disk-hygiene hooks.json). Any measurement or behaviour test against the cache is then a test of the wrong build, and the version-and-sha check every delivery script relies on is not proof.

Evidence

.work/hook-performance-levers/cache-compare.sh (untracked helper; byte-compares every hook, script and lib file in a cache directory against a git ref) found the six; removing the version directories and running the update again recreated them from the clone. Recorded in the hook-performance program's DEVIATIONS log.

Ask

Decide between: (a) a repo-side rule that every plugin change bumps the version (already the CHANGELOG-parity gate's rule, so this only bites when a branch is delivered without a bump), (b) promoting the file-level compare into the delivery helper or the claude-ops plugin-fleet audit as a standing check, (c) an upstream report if the updater is meant to rewrite on a sha change. (b) is the cheap durable fix.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions