Cleanup asks the storage layer whether paths exist rather than touching the filesystem directly.
What's wrong with this entry?
Session, history, task, debug and file-history cleanup no longer inspect the filesystem directly when the newer storage layer is active; they ask it whether each path is absent, a link, a directory or something else, and fall back to a direct filesystem check only when it has no answer.
- The storage handle is now passed through cleanup, plugin caching, CLAUDE.md include checks, MCP client teardown and the resume picker.
- Whether the new branch runs is decided by the build-wide storage-v5 check; otherwise the previous filesystem path is used unchanged.
fileHistory
Strings lifted out of the shipped bundle, so the claim above can be checked against them.