door.js seatOf sends every ref carrying a hashlet to index/perma.js follow, which strips the AMBIENT repo's root prefix and then asks door.js refSpellings for the spellings to try. A leading / there means POCKET PAGE (BEE-013 pagePaths), not a filesystem absolute path — so /abs/path/FILE.mkd:1_Y:mJpI is read as a pocket stem, nothing answers it, and the ref is refused with BEE-003's "no registered repo holds" words. The same path with a :line anchor resolves fine, because that one takes seatOf's fs branch instead. Found while round-tripping BEE-017's hunk band, which is exactly this shape.
Three refs at the same line of the same file, one of them refused. ///bee at bee see's landing, ///bee-journal registered:
/home/gritzko/src/bee-journal/todo/BEE/BEE-005.mkd:73 — RESOLVES. Absolute path, :line anchor: seatOf takes the fs branch (ref.path.charAt(0) === "/" and statOf answers).BEE-005:1_Y:mJpI — RESOLVES. Ticket code, permalink anchor: follow gets a stem, refSpellings gives the six ticket spellings, the fan-out finds it in ///bee-journal./home/gritzko/src/bee-journal/todo/BEE/BEE-005.mkd:1_Y:mJpI — REFUSED. Same file, same anchor, absolute path.index/perma.js follow strips only ctx.root + "/", the AMBIENT repo's root; a path under any OTHER registered repo keeps its leading slash and falls into pagePaths.foreignFollow repeats the mistake — it runs refSpellings(partial) over the same already-mangled string, so the fan-out cannot rescue it either.An absolute path is a path, whatever anchor it carries.
/abs/file:OFF:HASHLET lands wherever /abs/file:LINE lands, in whatever registered repo owns /abs/file./todo/BEE/BEE-005) keeps meaning a pocket page: the two are told apart by whether the path names a real file, not by the leading slash alone.index/mount.js deepest already answers "which registered repo owns this absolute path" — door.js posOf uses it. No new mount walk.test/perma, test/click, test/land and test/refline must stay unmoved.Nothing built — filed on discovery, per todo's rule that a bug found mid-fix becomes its own ticket.
follow, resolve an ABSOLUTE partial through mnt.deepest first — that names the owning repo and the repo-relative path — and only fall through to refSpellings when no mount owns it.follow strips ctx.root by hand, since deepest answers for the ambient repo like any other.test/perma legfollow: an absolute path resolves through mnt.deepest, not refSpellingsforeignFollow: the same, so the fan-out agrees with the local legtest/see/run.sh/ and always have been (BEE-013 chose that). Telling them apart on "does a mount own this path" is a guess in one direction: a pocket page whose spelling happens to match a real file under some registered repo would change meaning. Rare, but it is the one thing to rule on before building.