3fd4949040
Self-review of the atomic-publish fix. Some network mounts and container volumes reject os.link, and the outer handler swallowed that into "no salt", which meant repo_hash and session_hash were dropped on every run for that whole cohort. The race being closed is narrow; losing the hashes for an entire filesystem is not a fair trade. Falls back to claiming the name with O_CREAT|O_EXCL and writing, which is what this did before. The empty-file window reopens there, but it is benign now: a reader landing in it gets "" and omits the hash for that process rather than caching a guessable path digest, which was the actual defect. 266 passed, 8 skipped. Claude-Session: https://claude.ai/code/session_01C7tEmH86HAr7GoAAKCEHZb