{"version":"2.1.235","anchor":"plugin-version-cache-gains-a-staged-publish-path-with-concur","canonical_anchor":"plugin-version-cache-gains-a-staged-publish-path-with-concur","heading":"Plugin version cache gains a staged publish path with concurrency and debris handling","tier":"internal","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235\/e\/plugin-version-cache-gains-a-staged-publish-path-with-concur","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235","markdown":"### Plugin version cache gains a staged publish path with concurrency and debris handling\n\nPlugin version caching now stages a publish and handles concurrent writers and leftover debris\n\nCaching a plugin version now writes to a staged directory that gets atomically moved into place, with explicit handling for a stray symlink already at the cache path, leftover payload-free debris, another session recorded as using the same cache entry, and an archive write that fails after the copy already succeeded (in which case the completed directory is kept rather than discarded). Failure paths carry distinct diagnostic labels, such as \"plugin cache staged publish could not complete\".\n\nThis storage-backed behavior sits behind the `tengu_hover_rest` gate, which v2.1.234 compiled on by default; no reading of it has been taken under this release yet, and the flag server has returned off for both this site's account and the anonymous baseline.\n\n- Flag `tengu_hover_rest`: Off in both readings (read for one account on one subscription tier against v2.1.235; this account: off, anonymous baseline: off, compiled default: off)\n- Area: Plugins\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5\n- Present in the build but not switched on"}