A load that hit a sharing violation returned defaults, and the next save wrote them back over the stored themes, CSS, editors and recent files. Two processes over one data folder also erased each other's changes: each did load, modify, save with no lock and one shared temporary file name. AppSettingsStore applies one change to the latest stored settings under a lock file beside settings.json and replaces the file by rename. A file that cannot be read after bounded retries is never overwritten; only invalid content counts as corruption and is kept as settings.json.corrupt. A file over 16 MiB is not loaded, abandoned temporary files are removed, and faults are logged by kind, exception type and HRESULT only. Every save in the app now goes through Update. Tests use real exclusive handles and concurrent instances and count attempts instead of time. Closes #46 Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Signed-off-by: James Maes <james@kof22.com>