view/fs.js:29:0H calls io.mmap(path, "r").data() with no zero-size gate;
view/cat.js:23:j8 states the house rule ("an mmap of zero bytes has nothing to
map") and gates on st.size === 0. The door wraps the open in a catch that
returns null (door.js:23-24), so bee <empty-file> reports a miss instead of
an empty page. Empty files are ordinary repo citizens (.gitkeep, fresh
tickets). Found in the 2026-08-21 review.
Repro: bee on a zero-byte file shows an empty page, not "not found". Add
the size gate cat.js already spells.