Public: anyone can read this; the crew can change it.
A repository's map draws only open issues by default, and a "Show done" link draws the rest: trevato/forge's /map under 400 KB #6266
Check · Review · Land · Live done — Landed and live in production.
`/:owner/:name/map` now lays out and draws only open issues by default. `?done=1` draws the closed ones too. The new test and the map suites I ran pass. `tsc` could not run here because the `bun` type definitions were missing, so the type check is unverified. The forge's check will cover it.
shipped production is serving it deploy d79f016
/:owner/:name/map now lays out and draws only open issues by default. ?done=1 draws the closed ones too. The new test and the map suites I ran pass. tsc could not run here because the bun type definitions were missing, so the type check is unverified. The forge's check will cover it.
What changed
- Page: the layout and SVG use an open-only copy of the graph (
openOnlyinsrc/web/pages/map.ts). Ready now, Blocked on, the critical path, marks, counts and pillar rows still use the whole graph, so a closed blocker still frees what it held. - Layout cache: the cache key is a hash of the issues and edges drawn, so each filter gets its own entry with no new key parameter.
- Toggle:
done Nstays a plain badge. Beside it is a separate.map-togglelink reading "Show done" (→?done=1) or "Open only" (→/map). It shows only when N > 0, including when no open issues remain, and is 44px tall underpointer: coarse. - Live region: it refetches the current URL, so
?done=1keeps its filter. I did not test this. - Docs:
.map-toggleis named indocs/design/areas/map.md.docs/PLANNING.mdand the README's Map entry describe the default and?done=1. - Tests: the new
test/map-page.test.tsbuilds 300 open and 2,000 closed issues. The closed ones are linked as blockers, because the graph only holds closed issues that are on an edge. It asserts no closed node on the default page, a body under 400 KB, both links, and that?done=1draws the closed nodes. - Design lint:
bun scripts/design-lint.tspasses. - Existing test changed:
test/map.test.tsexpected a done card and a done edge on the default page. That expectation was wrong under the new default, so it now fetches?done=1for those two assertions.
Not done
- The branch
scout/6121-…was not on the remote, so I wrote this from main rather than re-cutting it. /og/mapand the map API/JSON are untouched.- I did not re-measure the 3.6 MB page on production.
Try it: open /trevato/forge/map, then tap "Show done" and "Open only".
🤖 Generated with Claude Code
The check failure is fixed and pushed. This time tsc ran clean, and the map tests and bun scripts/design-lint.ts pass.
Cause: countsLine took a required toggle argument, but the global map's lane row (src/web/pages/map.ts:1738) still called it with only the counts.
Fix: the toggle is now optional. The repository map passes it and shows the "Show done" / "Open only" link. The global lanes pass nothing and keep their plain counts line.
Test change: test/map-page.test.ts matched the link's markup on one line, which the reformatted anchor no longer is. I loosened the regex to allow whitespace between attributes. The assertions are otherwise the same.
I did not rerun the forge's full check, so its verdict on this push is still to come.
The type-floor failure is fixed and pushed. test/ui-sweep.test.ts and test/map-page.test.ts now pass here (13 tests), and bun scripts/design-lint.ts is clean.
Cause: I had set .map-toggle to 11.5px to satisfy the design lint, but that is under the 12px floor that "type floor > no declared font-size is under 12px" enforces.
Fix: .map-toggle is now 12.5px. That size is on the design scale (11.5, 12.5, 13 and so on), so both checks agree. The change is one line in src/web/pages/map.ts.
I did not run the forge's full check. Shards 1, 2 and 5 in your log exited 143 with no test named. That looks like fail-fast killing them after shard 4 went red rather than separate failures, but I haven't confirmed it.
Approved. Default map draws open issues only, ?done=1 draws the rest, readiness and counts still use the whole graph (a closed blocker still frees its dependents), the toggle is a plain <a>, 44px under pointer: coarse, works with JS off, and .map-toggle is named in docs/design/areas/map.md. Tests cover the default, the 400 KB bound, the closed-blocker case and the done view. I could not view the preview as a guest (trevato/forge/map answers 404 unauthenticated), so the rendered page is judged from source and tests. Next: (1) test/map-page.test.ts has trailing whitespace after the Closed work 1999 expectation, and the README sentence about ?done=1 is a very long line, so wrap both; (2) add a test that the live-region refetch keeps ?done=1, since that is untested.
/:owner/:name/mapnow lays out and draws only open issues by default.?done=1draws the closed ones too. The new test and the map suites I ran pass.tsccould not run here because thebuntype definitions were missing, so the type check is unverified. The forge's check will cover it.What changed
openOnlyinsrc/web/pages/map.ts). Ready now, Blocked on, the critical path, marks, counts and pillar rows still use the whole graph, so a closed blocker still frees what it held.done Nstays a plain badge. Beside it is a separate.map-togglelink reading "Show done" (→?done=1) or "Open only" (→/map). It shows only when N > 0, including when no open issues remain, and is 44px tall underpointer: coarse.?done=1keeps its filter. I did not test this..map-toggleis named indocs/design/areas/map.md.docs/PLANNING.mdand the README's Map entry describe the default and?done=1.test/map-page.test.tsbuilds 300 open and 2,000 closed issues. The closed ones are linked as blockers, because the graph only holds closed issues that are on an edge. It asserts no closed node on the default page, a body under 400 KB, both links, and that?done=1draws the closed nodes.bun scripts/design-lint.tspasses.test/map.test.tsexpected a done card and a done edge on the default page. That expectation was wrong under the new default, so it now fetches?done=1for those two assertions.Not done
scout/6121-…was not on the remote, so I wrote this from main rather than re-cutting it./og/mapand the map API/JSON are untouched.Try it: open
/trevato/forge/map, then tap "Show done" and "Open only".🤖 Generated with Claude Code
Closes #6174