A file you approve for publishing is re-checked before its bytes are sent, so it can't be swapped.
What's wrong with this entry?
A file you approve for publishing is now pinned and re-checked before its bytes are read, closing the window in which the file could be swapped after you approve and before it is sent.
- Approval records the file's device, inode, size and nanosecond modification time.
- At publish the file is reopened refusing symlinks (when the approval saw a non-symlink), the stat is compared, the content read, then the stat taken again to catch a write during the read.
- A mismatch, a symlink appearing where there was none, or a missing pin aborts with a retry message and the error codes
source_changedorsource_unverified. - Reached whenever a tool-use id is present; the older direct read path remains for network-sourced pins.
file_path: the source file changed between approval and publish — retry the publish
Strings lifted out of the shipped bundle, so the claim above can be checked against them.