PR #161 review: removing ReadRegular's type check on the opened handle stayed green, because the race test's FIFOs had no writer and read EOF at once; with a writer holding the FIFO open, search hung after 16 iterations. The open-and-check step is split into readOpened, and TestReadOpenedRefusesAFIFOHeldOpenByAWriter reaches it past the Lstat with a writer open: it must return ErrNotRegular promptly (the flip is red). Also unit tests for ReadRegular (symlink, escape), Rel (inside incl. ..foo, escapes) and WalkRegular (regular files only), and the hard-link residual documented where it is accepted, as in api/rawroot.go. Refs #157 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>