Problem
A 200 KB mode-000 file scans as {tokens: 0, category: "source", trim: false}: unreadable files are silently reported as clean, undercounting waste with no warning.
Where
src/scan.js (read catch returns zero tokens, no unreadable flag).
Acceptance
Add a failing test first scanning a directory with an unreadable large file, expecting it surfaced (counted/warned), not silent keep. Then fix.
Problem
A 200 KB mode-
000file scans as{tokens: 0, category: "source", trim: false}: unreadable files are silently reported as clean, undercounting waste with no warning.Where
src/scan.js(read catch returns zero tokens, no unreadable flag).Acceptance
Add a failing test first scanning a directory with an unreadable large file, expecting it surfaced (counted/warned), not silent keep. Then fix.