Skip to content

bc-dgx7.85: B7e-suitemap — The inside of an existing suite — its fixtures - #768

Open
mordam wants to merge 8 commits into
mainfrom
worktree-b7e-suitemap-dgx785
Open

bc-dgx7.85: B7e-suitemap — The inside of an existing suite — its fixtures#768
mordam wants to merge 8 commits into
mainfrom
worktree-b7e-suitemap-dgx785

Conversation

@mordam

@mordam mordam commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Adds b7e-suitemap (bin/b7e-suitemap, lib/suitemap.js, test/suitemap.mjs): given an
existing test suite, print what it imports from the module under test, its file-local
fixture/loader helpers (with signature and, for a loader that returns an object, the
keys it hands back), and every named check in source order under its section divider.
--for <file> resolves the suite through lib/affected.js first. This is bc-dgx7.85's
own session-audit finding: five sessions each added a check to a suite that already
existed and each read several hundred lines of it by hand — sed slices, greps for
anchor strings, Reads at guessed line numbers — to learn the same three things.

The parse is a real acorn AST walk (matching lib/already.js and lib/imports.js's own
reasoning: a name is a binding and a call is a call, not a string a regex might also
match inside a comment), not a regex over the source text.

One thing worth flagging: lib/affected.js's own text-based matching cannot see the
fs.readFileSync(PUBLIC('report.js')) helper-call convention a suite uses to vm-load
the module it tests — the literal is split across two calls, so test/reporter.mjs
reaches findAffected's candidate list only as a weak directory-walker. --for
resolution parses every candidate with the same acorn walk and lets an actual
vm-source/dynamic/static import of the target override that ranking; this is
new logic in lib/suitemap.js, not a change to lib/affected.js itself, so it doesn't
touch b7e-affected's own behavior or its suite. Both concrete cases in the bead's
acceptance criteria (test/homing.mjs's anchor strings, and --for public/report.js
naming load/fire and the acceptance-criteria section of test/reporter.mjs) are
asserted against this repo's real suites, not just fabricated fixtures.

Registered per the five-file b7e checklist: package.json + package-lock.json bin maps
(alphabetical), lib/grants.js (read) and lib/toolbelt.js's DEFAULT_TOOL_LIST
(append), and a README section after b7e-harness's. Merged origin/main in
(bc-dgx7.82's b7e-propagated landed while this was in flight and touches the same five
files — resolved clean, additively, as that family always does) and re-ran the
affected suites and this suite's own 28 checks afterward.

Tests: node test/suitemap.mjs (28/28); node bin/b7e-affected against the diff → 59 narrowed suites all green via node, plus scripts/land-check.mjs (timed out at 120s in a batch runner but passes at 0 exit on its own); node scripts/checks.mjs — 55/58 browser checks green, 3 pre-existing failures (advocatespane-check, historypane-check, phone-check) not in the affected-suite list and unrelated to this diff (pane/phone rendering, one needs a live daemon with beads); node test/lockfile.mjs green before and after merging origin/main

Files changed — 8 files · +1131 −0 · against `main`
lib/suitemap.js    +450 −0
test/suitemap.mjs  +438 −0
bin/b7e-suitemap   +150 −0
README.md          +81 −0
lib/toolbelt.js    +9 −0
lib/grants.js      +1 −0
package-lock.json  +1 −0
package.json       +1 −0

Opened by a beadcause worker session on bc-dgx7.85 — b7e-suitemap — The inside of an existing suite — its fixtures, what it imports from the file under test, and where a new check goes. It merges itself once the checks report; merging is what closes the bead. If this is still open, something stopped that, and the reason is on bc-dgx7.85 and in Adam's inbox.

bead: bc-dgx7.85

NeanderthalMan and others added 2 commits August 26, 2026 09:29
Given a suite path (or --for <file>, resolved through lib/affected.js), prints its
imports from the module under test, its file-local fixture/loader helpers with
signatures and return shapes, and every named check in order under its section
divider — the three things five sessions each read several hundred lines by hand to
find before adding a check to a suite that already existed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@mordam

mordam commented Aug 26, 2026

Copy link
Copy Markdown
Owner Author

A beadcause worker opened this and does not merge its own work. It is on the merge queue as bc-qigvf.

@NeanderthalMan

Copy link
Copy Markdown
Contributor

beadcause-resolver: stood down — worktree-b7e-suitemap-dgx785 is locked by another resolver on this same PR (reason "resolver pid 71366 #768", pid live in ps). Did not touch the tree, did not unlock, took no lock of my own.

@mordam

mordam commented Aug 26, 2026

Copy link
Copy Markdown
Owner Author

The beadcause merge queue tried to merge this and could not: it has been tried 3 times and stopped at the same place each time. the branch still conflicts with main and no resolver is on it any more — the window that was opened on it ended without making it mergeable, so this one is yours to settle. Tried 3 times — that was the last. It is Adam's call now — see bc-qigvf.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants