Fixed revision: c93d54e71359065b1c54acbe9ba26a78c06ce8f6 Environment: fs-07 Linux, UID1000 (unprivileged), umask0002; Chromium1280x800; no device emulation. Isolated home: /home/ubuntu/wt/issue-14967/.t3; copied stopped threads; no agents launched. Started worktree node_modules/.bin/vp run dev; server14339/web6299. chmod600 .t3/userdata/settings.json -> stat600. Browser Settings -> Providers, fs-07 environment -> Enable Claude switched off. Save completed: UI switch unchecked, settings.json persisted providerInstances.claudeAgent.enabled=false. stat after save:600 .t3/userdata/settings.json Before on3b95e7831b same operation changed600->664; fixed stays600->600. No render code changed; visual fixture matrix[]. No native Windows/macOS run or actual power-loss simulation. Durability proof is focused sync-order/error tests, not a hardware-crash claim. Integrated current main at e90726614bc3172a12354b305d621fa4b455b4fa (merge commit). Helper and test files identical to reviewed c93d54e713 (git diff empty). Copied database rejected by current main due unrelated divergent migration history (PeerLinks vs ShellStopRequestIndex), so started a fresh isolated home /tmp/triage-14967/final-home with --no-seed. Same UID1000/umask0002/browser/viewport, Settings -> Providers -> Enable Claude off. Before:600 final-home/userdata/settings.json After:600 final-home/userdata/settings.json Persisted:providerInstances.claudeAgent.enabled=false. Integrated focused test run:150 tests passed across8files; sharedtypecheckexit0; lintonepreexistingpollingwarning.