check / check (push) Canceled after 0s
CI failed on a_file_swapped_after_the_check_is_never_read: its filesystem handed the deleted checked file's inode number to the file made in its place, so device and inode matched for another file. The opened file must now also match the checked file's size, modification time and change time. The test now models a real swap (the replacement exists before the original goes), the reused-inode case, an in-place rewrite, and that the unchanged file is read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj