{"version":"2.1.227","anchor":"plugin-sync-rejects-bare-repo-layouts-and-retries-directorie","canonical_anchor":"plugin-sync-rejects-bare-repo-layouts-and-retries-directorie","heading":"Plugin sync rejects bare-repo layouts and retries directories it could not delete","tier":"notice","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227\/e\/plugin-sync-rejects-bare-repo-layouts-and-retries-directorie","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227","markdown":"### Plugin sync rejects bare-repo layouts and retries directories it could not delete\n\nPlugin sync refuses bare-repo layouts, retries undeletable directories, and redownloads vanished plugins.\n\n**What**\n\nPlugin sync now skips any path component named `.git` during extraction and refuses a tree that looks like a bare git repository. Directories that could not be removed are recorded and retried on the next sync, and a previously synced plugin whose directory has disappeared is downloaded again.\n\n**Details**\n\n- Undeletable directories go into a new `staleDirs` list in the plugin manifest, so cleanup is retried rather than forgotten.\n- Removal of trashed directories is drained in a `finally` block, so a failure mid-sync no longer leaves the work half done.\n\n**Evidence**\n\n`extracted tree carries a bare-repo layout`\n\n- Area: Plugins\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 2\/5"}