Skip to content

fix: make the macro, PR review and graph e2e scripts pass - #34

Open
gitsad wants to merge 10 commits into
mainfrom
fix/e2e-specs-green
Open

gitsad wants to merge 10 commits into
mainfrom
fix/e2e-specs-green

Conversation

@gitsad

@gitsad gitsad commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

What this changes

test:graph:macro:e2e, test:pr-review:e2e and test:graph:e2e now exit zero on macOS (41, 10 and 42 tests, each run twice in a row). Of the 27 failing tests, 25 were stale specs (the UI had moved on) and are updated to the current behaviour; 1 was a real app bug (a right-click on a graph node selected it), fixed in the app; 2 were stale pixel baselines, regenerated because of a deliberate redesign. Nothing is skipped, fixme'd or retried, no fixed timeout was added.

Key files

  • src/renderer/lib/lantern-pixi/open-actions.ts, node-graphics.ts, relation-graphics.ts, index.ts — a new isPrimaryTap guards every Pixi pointertap handler (node, tile, block, relation area, background). A right or middle click used to select the node under the pointer and start the animated scroll, which fought the right-drag pan.
  • test/e2e/support/overview.ts — opens and closes the Macro Overview drawer, which is hidden by default and now holds the chips, legend and details the macro specs read.
  • test/e2e/graph-macro-*.spec.ts, pane-overflow.spec.ts, support/overflow.ts — read the drawer through that helper, and check it for clipped text.
  • test/e2e/pr-review-comments.spec.ts, pr-review-regions.spec.ts, graph-navigation.spec.ts, graph-pixi.spec.ts — scoped selectors and the tooltip attribute (see the table).
  • test/e2e/snapshots/darwin/pixi-overview.png, pixi-selected.png — regenerated with test:graph:visual:update.

Before / after

Baseline on untouched main (macro 28 pass / 13 fail, pr-review 5 / 5, graph 33 / 9), one line per failing test:

script test class why
macro areas: goes sideways to another area from the panel, back with Backspace and with the breadcrumb stale selector the chip and detail now live in the Overview drawer (hidden until opened); the hidden .lt-side match hung the click
macro foundation: lists what the infrastructure platform connects to and lights its partners stale selector same, chip click on the hidden drawer
macro foundation: lights the features where a platform has files stale selector same
macro foundation: shows the platforms of an area in the side panel stale selector same
macro legend: the areas map legend is short, fits the side panel, and its swatches are painted like the map stale selector legend is in the drawer, not .lt-side
macro legend: with a platform selected the uses style is in the legend stale selector same
macro legend: the legend of the flat Macro view shows the links it draws stale selector same
macro platform-uses: lists the places a platform has files in apart from the places its files use stale selector chips are in the drawer
macro platform-uses: lights the accounts area strongly for one bot and as uses for the other stale selector chips and legend are in the drawer
macro systems 1600x1000: clicking a system lights every area and foundation entry stale selector the detail is in the drawer; .first() hit its hidden twin
macro systems 1600x1000: picking an entry in the panel selects the feature in its area stale selector same
macro systems 1280x800: clicking a system lights every area and foundation entry stale selector same
macro systems 1280x800: picking an entry in the panel selects the feature in its area stale selector same
pr-review comments: comments on diff lines and on the whole file stale selector geometry read the first .lt-cm-card of .lt-review-body, which is the hidden body (rect 0); now scoped to the visible body
pr-review comments: shows the same card in the File view and the Diff view cascade shared harness, the first test died before saving its comment
pr-review comments: edits and deletes a card with the keyboard and folds it cascade same
pr-review comments: marks a comment as a question and copies a mixed set cascade same
pr-review regions: remembers the layout per project and forgets it on reset stale selector the hidden Overview aside also matches .lt-side (strict mode); now .lt-side:not(.lt-overview), the app's own selector
graph navigation: rubber-bands at every pan limit stale selector same strict-mode .lt-side match
graph navigation: right-drags to pan while preserving a plain right-click context menu real app bug (flaky as a test) a right-click on a node selected it and started a 240 ms scroll animation that fought the drag; fixed in the app, 15 of 15 repeat runs pass
graph pixi: matches all four relation edge styles and highlights the canvas node under the pointer stale expectation tooltips moved from title to data-tip (two assertions)
graph regression: @visual renders the deterministic Pixi overview stale baseline 97% of pixels differ: the PR strip was redesigned in 752fdf31 (2026-10-29, dropped the "Pull requests" label and the #id · state · files chip); the baseline dates from d34dd491 (2026-10-07)
graph regression: @visual renders selection, directional edges, badges and long Unicode labels stale baseline same, 752fdf31
graph pane-overflow 1280x800: saved comment card, file comment and open comment box stale expectation the composer (4a9f005) shows chips per intent; "Explain why this is needed." is under Explain, so the spec picks that intent first
graph pane-overflow 1280x800: system picked from the outside systems list and the side panel open stale selector the detail is in the drawer; the spec opens it for the clipped-text check, closes it before Fit
graph pane-overflow 1600x1000: saved comment card… stale expectation same as 1280x800
graph pane-overflow 1600x1000: system picked… stale selector same as 1280x800

No test was deleted. Missing baseline: none missing, two stale.

Verified with pnpm install --frozen-lockfile, pnpm run typecheck, pnpm run lint, pnpm test (7004 pass), and each of the three e2e scripts exit zero twice in a row. Unreviewed fixes: none after the reviewer (VERDICT merge-with-followups, BLOCKING 0; the map commit and the run-folder removal came after, chore: update the Lantern map). Decisions the brief left open: the snapshots were regenerated (the 752fdf31 evidence above). pnpm run test:graph:typecheck already fails on main and is untouched. Primitives: composed the test:*:e2e entries and the graph harness; no gap. Lantern: 16 files re-mapped.

Run cost

agent model effort calls cache-read cache-write+input
lantern-delegate-high sonnet 5.5 high 213 61381005 527213
└ reviewer ×1 opus 5.5 medium 20 1469865 98226
total 233 62850870 625439

🤖 Generated with Claude Code

This branch has not been deployed

No deployments
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.

1 participant