check / check (pull_request) Failing after 1s
The file backend streamed each object straight into its final key. An upload cut off mid-stream left a truncated object at the blob's key, and the next backup's Stat found it and recorded it as a complete blob, so the snapshot reported success but was unrestorable. Writes now go to a temp file in the destination directory, are fsynced, then renamed onto the key, which appears only once the whole object is durably written. Temp files carry a ".partial" suffix and are skipped by List and ListStream, so a leftover from an interrupted write is never listed or trusted as a blob and is otherwise harmless. S3 PutObject is already atomic, so this only concerns the file backend. model: claude-opus-4-8