Marketplace refresh checks for the manifest through a storage handle instead of the raw filesystem.
What's wrong with this entry?
Both paths that clone or pull a plugin marketplace now pass a storage handle used for the checks that a .claude-plugin/marketplace.json exists after a failed pull or during rename recovery, instead of a bare filesystem check. The HTTPS path also passes the resolved HTTPS URL.
- The keep-the-old-copy-on-failure behaviour is still behind
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE.
.claude-plugin/marketplace.json
Strings lifted out of the shipped bundle, so the claim above can be checked against them.