{"version":"2.1.234","anchor":"storage-backend-writes-are-now-pinned-behind-a-flag-and-pass","canonical_anchor":"storage-backend-writes-are-now-pinned-behind-a-flag-and-pass","heading":"Storage backend writes are now pinned behind a flag and pass explicit file modes","tier":"soon","area":"Storage Backend","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/storage-backend-writes-are-now-pinned-behind-a-flag-and-pass","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### Storage backend writes are now pinned behind a flag and pass explicit file modes\n\nSaved data can route through a new storage backend with explicit file permissions, but the flag is off.\n\n**What**\n\nDozens of places that save data now use the alternative storage backend only when the `tengu_hover_rest` flag is on, read once per process, and otherwise fall back to ordinary filesystem calls. Absent a server value the flag reads false, so this build writes to the filesystem as before. Files written through the new path get an explicit mode of `438 & ~process.umask()`, or 384 for secrets.\n\n**Details**\n\n- Affected save paths include job drafts and job deletion, daemon status, plugin config and marketplace manifests, PR status cache, org-memory discovery cache, facets, the paste store, agent metadata, workflow scripts, the closed-issue cache, forked-skill scoping, background dispatch, changelog migration, headless plugin installs, auth-required state, transcript history and REPL shutdown.\n- Writes gained a `publishDiscipline` option with values `\"inPlace\"`, `\"atomic\"` and `\"followAtomic\"`, replacing bare mode arguments in several places.\n- Plugin config reads gained an async backend variant alongside the existing synchronous one.\n\n**Evidence**\n\n`mode: 438 & ~process.umask()`, `publishDiscipline: \"inPlace\"`\n\n- Flag `tengu_hover_rest`: Off in both readings (read for one account on one subscription tier against v2.1.234; this account: off, anonymous baseline: off, compiled default: off)\n- Area: Storage Backend\n- Names: `tengu_hover_rest`\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 4\/5\n- Present in the build but not switched on"}