You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
ArtifactsArea: what it touches
ImprovementsKind: in v2.1.234,
ImprovementsSection of the release
What
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.
Details
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_changed or source_unverified.
Reached whenever a tool-use id is present; the older direct read path remains for network-sourced pins.
Evidence
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.