Failed artifact file approvals now name the reason and the fix instead of generic denial text.
What's wrong with this entry?
When approving a file for an artifact fails, you now get a named reason and what to do about it instead of generic denial text.
- Reasons distinguish the file changing since approval, reaching the file through a symbolic link, a hard link, a read that would need permission, no identity, the path not being a regular file, and size.
- Each carries remediation, such as passing the resolved path or copying the file under the working directory.
- The symlink, hard-link and size checks now live in one shared helper rather than being repeated per action.
file_path reaches its file through a symbolic link that resolves somewhere this session may not read without asking
Strings lifted out of the shipped bundle, so the claim above can be checked against them.