- **Approving or diffing a staged skill or memory proposal no longer reads through a link out of the crew's storage (#4882).** A crew can write its own `.proposed` directories, so a proposal file or one of its parent directories could be replaced by a symlink pointing at another crew's files or at host files, and approve or diff would read through it. Those reads now go through the same storage-root-pinned readers the listing already used: no directory on the path may be a symlink, and the file may not lead outside the storage root. ⚠️ **Behaviour change:** such a proposal, or one that is not a regular file, is refused instead of read. Skills approve and both diffs return 422 (500 for an entry that cannot be opened at all, such as a socket); memory approve returns 500 and the proposal stays pending.