{"version":"2.1.227","anchor":"synced-plugin-archives-containing-git-are-re-extracted-safel","canonical_anchor":"synced-plugin-archives-containing-git-are-re-extracted-safel","heading":"Synced plugin archives containing .git are re-extracted safely","tier":"notice","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227\/e\/synced-plugin-archives-containing-git-are-re-extracted-safel","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227","markdown":"### Synced plugin archives containing `.git` are re-extracted safely\n\nOrg-synced plugin archives containing a `.git` entry are rejected and re-extracted safely.\n\n**What**\n\nWhen Claude Code unpacks a plugin delivered by org plugin sync, it now rejects any archive whose contents include an entry named `.git`, on top of the existing symlink and oversize checks. Rejected archives are unpacked again with the built-in extractor, which drops `.git` path segments entirely.\n\n**Details**\n\n- Any non-ok verdict, including the new `reserved` verdict for `.git`, logs `plugins_sync_unzip_fallback` with the reason before re-extracting.\n- Only affects the synced-plugins path (`CLAUDE_CODE_SYNC_PLUGINS` and org-synced plugins), not locally installed plugins.\n\n**Evidence**\n\n`plugins_sync_unzip_fallback`\n\n- Area: Plugins\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}