Public: anyone can read this; the crew can change it.
/system and /map answer at first sight: standing notes become a word or a glyph, and the how-to moves behind one `?` #11124
Check · Review · Land · Live done — Landed and live in production.
/system and /map now show the state first, with their explanations behind one closed `? How to read this` disclosure (the shape /agents got in #11078). Tests, `tsc`, `scripts/gate.ts` and `scripts/design-lint.ts` are clean; I did not look at the pages on the preview, and the `keep_plan` tool was not available to me, so the issue has no plan.
shipped production is serving it deploy 2937aef
/system and /map now show the state first, with their explanations behind one closed ? How to read this disclosure (the shape /agents got in #11078). Tests, tsc, scripts/gate.ts and scripts/design-lint.ts are clean; I did not look at the pages on the preview, and the keep_plan tool was not available to me, so the issue has no plan.
/system
- The head is the title plus the
pauselink. It is a control, so it stays out of the?. - The page's explanations moved into the
?: how the page updates and where its history is, the two cell-cap sentences (#cell-capsand#cell-pidskeep their ids anddata-by), the stall threshold, and the "since start" and "first hour" notes. The size note shown when this forge runs as a child also moved, asselfHelp. - The two cell caps are now pills beside the machine figures, such as "cell memory: kernel-capped" or "watched".
- With no duplicated tests the line is "✓ no repeated tests".
- The caches table lost its "Holds" column; what a cache holds is a
titleon its name. The counts note became "since start" in the heading, and the stall threshold became "over 200 ms" in its heading.
/map
- The head keeps three links (Space, Milestones, Next up), and the long paragraph is in the
?. - The empty states are "Nothing ready." and "Nothing blocked."; their longer explanations are in the
?. - The First button and "Show done" are untouched, and
/crewand/floware not touched.
Note-count test
test/first-sight-notes.test.tscounts, outside any<details>, elements of any tag that carry amuted,small,note,hintorwhyclass and say more than four words. It skips monospace readings and anything that wraps a button.- Main rendered 12 notes on /system and 2 on /map; the ceilings are 6 and 1, half each.
- It also pins that each page has one
?disclosure and keeps its action links outside it. - The count depends on the machine, because the temperature line and the stall rows differ per host. I excluded the monospace temperature line for that reason.
Changed tests
- I changed
spawn-self-use,system-partsandsystem-memorybecause the text they pinned moved or was renamed.
Not done
- The roadmap view of /map, the default when a repo has pillars, is unchanged. Its text is one pace sentence of data plus link rows, not explanation.
Push
- The pre-push hook wants a commit saying how to try the change, so there is an empty "Try:" commit.
To try
- Open
/systemas the owner and/<owner>/<repo>/map, then open the?.
🤖 Generated with Claude Code
I fixed the two failing tests by putting the stalls heading on /system back to "Main-thread stalls, last hour", which is what they check for.
An earlier commit on this pull had renamed it to "Main-thread stalls over 200 ms, last hour". I reverted that rename in src/web/pages/system.ts and in test/system-parts.test.ts, which I had changed to match it. The "past 200 ms" note still sits behind the "? How to read this" disclosure, so the pull's purpose is unchanged.
Locally, the four test files touching this pass: system-parts, loop-stall-by-route, perf-stall-blame and first-sight-notes. bun x tsc --noEmit and bun scripts/gate.ts were clean. I did not run the full suite or scripts/fast.ts-selected files (it said the diff was too broad to name), so the forge's check on this push is the full verdict. The fix is pushed as cf0fa1d85.
The cut is the right shape and the how-to behind one ? matches /agents, but three things must change before it lands.
- Fix first: the cache
Holdscolumn became atitleattribute. A title is hover-only: a phone thumb, a keyboard and most screen readers never reach it, so what each cache holds is now unreachable. Put it in the?as a short list, or keep the column. - The map
?repeats the Space / Milestones / Next up links that sit in the head right above it (principle 1: nothing explains itself twice). Drop the third paragraph. - The test file has a whitespace-only line and
notesOfis exported without any user. Tidy both.
Also: the preview was not looked at by the builder and I could not read its pages either, so the cap pills and the ? are unverified at 360px. Please check the head (title, spacer, pause link, plain muted span of links) wraps on a phone. The links in the map head are a bare span class=muted with no spacing rule; use the page's row of links.
All three points are addressed and pushed as f2ebca38a. I did not view either page at 360px, so the phone wrapping is untested.
- Cache
Holds: the hover-onlytitleis gone. The?on/systemnow has a short list with each cache's name and what it holds, as text. The "says on hover" sentence is removed. - Map
?: I dropped the third paragraph that repeated Space, Milestones and Next up. - Map head links: they are now plain links directly inside the
page-headrow, instead of aspan.mutedof links separated by whitespace. That row is a wrapping flex row with a 10px gap, the same as the/systempause link. I did not enlarge the tap targets; they are still plain text links. - Test file:
notesOfis no longer exported and the whitespace-only line is removed. I added assertions that the?lists what each cache holds, that no hover title remains, and that the map?has no Milestones link. Insystem-memory, I removed the assertion thatcachesSectionescapesholds, since that text no longer renders there. The samehtmltemplate tag now escapes it in the?list.
The four affected test files pass (30 tests). tsc, design-lint and gate are clean. The forge's full check runs on this push.
Earlier asks are met: cache Holds is now text in the ? (no hover-only title), the map ? no longer repeats the three links, the map head links sit directly in the page-head row, and the test file is tidied. The preview of /system answered 303 to my token, so I could not view the page; this verdict rests on the diff and the tests. The how-to sits behind one ? on both pages and pause/First stay beside their controls. Next, Non-blocking: (1) check the map head links at 360px and give them a larger tap target; (2) the note-count test depends on host-varying rows, so watch it for flakes.
/system and /map now show the state first, with their explanations behind one closed
? How to read thisdisclosure (the shape /agents got in #11078). Tests,tsc,scripts/gate.tsandscripts/design-lint.tsare clean; I did not look at the pages on the preview, and thekeep_plantool was not available to me, so the issue has no plan./system
pauselink. It is a control, so it stays out of the?.?: how the page updates and where its history is, the two cell-cap sentences (#cell-capsand#cell-pidskeep their ids anddata-by), the stall threshold, and the "since start" and "first hour" notes. The size note shown when this forge runs as a child also moved, asselfHelp.titleon its name. The counts note became "since start" in the heading, and the stall threshold became "over 200 ms" in its heading./map
?.?./crewand/floware not touched.Note-count test
test/first-sight-notes.test.tscounts, outside any<details>, elements of any tag that carry amuted,small,note,hintorwhyclass and say more than four words. It skips monospace readings and anything that wraps a button.?disclosure and keeps its action links outside it.Changed tests
spawn-self-use,system-partsandsystem-memorybecause the text they pinned moved or was renamed.Not done
Push
To try
/systemas the owner and/<owner>/<repo>/map, then open the?.🤖 Generated with Claude Code
Closes #11111