doxa-maps/internal/lib
doxa-maps 2015378fcd
Some checks are pending
build-gate / build (push) Waiting to run
Add deepFindAll to the shared browser helper, so counting probes stop being hand-rolled
deepFind returns the FIRST match and stops. Every count-based assertion needs
all of them -- how many rows, anchors, hints, canvases -- and because this
file offered no such helper, each ad-hoc probe hand-rolled its own shadow
walker. Across one session of verification work those produced four false
results:

  a naive walker double-visited through nested roots: 48 cards for 24;
  a single-level querySelector found 0 anchors where there were 155;
  an .rd-row count included a detail panel sharing that class, so a correct
    filter read as broken;
  a bare "<script" prefix match counted the word scriptUrl in a comment and
    flagged a valid file.

Two of those nearly became bug reports against working code. A missing helper
does not stop anyone writing the check; it moves the check somewhere nobody
reviews.

The seen-Set dedupe is the load-bearing part: a node reachable through two
roots must count once, which is the first failure above.

Backward compatible by construction -- the third parameter is APPENDED, so
callbacks taking (deepFind, arg) are untouched. Verified rather than assumed:
a (deepFind, arg) callback still resolves; deepFindAll returns 24 cards with
returned === distinct; share-roundtrip-smoke (a real consumer) still passes;
check:a11y-button-names and check:parse both pass.
2026-09-22 06:19:13 +00:00
..
browser.mjs Add deepFindAll to the shared browser helper, so counting probes stop being hand-rolled 2026-09-22 06:19:13 +00:00