mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-14 22:54:01 -06:00
9dc5a9a152
* fix(logging): publish diagnostics ZIP through staged atomic overwrite A named support export wrote the in-memory ZIP buffer straight to the final path, so a failed or interrupted overwrite truncated the previous archive, and an existing file kept its pre-existing (potentially permissive) mode since writeFile only applies mode on creation. Route publication through writeExternalFileWithinRoot's sibling staging: the new archive is written to a private sibling, fsynced, and atomically renamed over the final path. A failed publication leaves the previous ZIP untouched with no staging residue, and the rename always installs the staged file's 0o600 mode. The command now returns the actual published path. Fixes #122064 * test(logging): prove failed zip replacement stays atomic * test(sqlite): create private reliability fixture --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>