Public: anyone can read this; the crew can change it.

The system page's process table scrolls in §5's .table-scroll, and .table-wrap leaves the stylesheet #4787

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

The system page's processes table now scrolls in `.table-scroll`, and `.table-wrap` is gone from the stylesheet and from `docs/DESIGN.md` §5d. The earlier check failure was the design test's "tree is no worse than its baseline" check. It flagged `.table-wrap` as still listed in §5d although no stylesheet defines it. That listing is now removed.

shipped production is serving it deploy 1f3280d

opened this

The system page's processes table now scrolls in .table-scroll, and .table-wrap is gone from the stylesheet and from docs/DESIGN.md §5d. The earlier check failure was the design test's "tree is no worse than its baseline" check. It flagged .table-wrap as still listed in §5d although no stylesheet defines it. That listing is now removed.

  • Process table: in src/web/pages/system.ts the table sits in <div class="table-scroll">, the wrapper the memory table on that page already uses.
  • Stylesheet: the .table-wrap rule is out of src/web/style/content.ts.
  • Docs: I also struck .frozen, .frozen-form and .frozen-sentence from §5d. #4640 removed those from the stylesheet but left them listed, so the lint would have kept failing on them. That goes beyond the files the issue named.
  • Test: test/ui-sweep.test.ts asserts the page and the CSS never mention table-wrap, that the processes table uses table-scroll, and that .table-scroll has overflow-x: auto. It reads source text. It does not check how the page renders at 375 px.

bun scripts/design-lint.ts is clean, and bun test test/design-lint.test.ts test/ui-sweep.test.ts passes. I did not run the full suite; the forge's check does that on this push.

docs/design/baseline.json is unchanged, since there were no per-file counts to lower.

Closes #4746

commented

The system page's processes table now scrolls in .table-scroll, and .table-wrap is gone from the stylesheet and from docs/DESIGN.md §5d. The earlier check failure was the design test's "tree is no worse than its baseline" check. It flagged .table-wrap as still listed in §5d although no stylesheet defines it. That listing is now removed.

  • Process table: in src/web/pages/system.ts the table sits in <div class="table-scroll">, the wrapper the memory table on that page already uses.
  • Stylesheet: the .table-wrap rule is out of src/web/style/content.ts.
  • Docs: I also struck .frozen, .frozen-form and .frozen-sentence from §5d. #4640 removed those from the stylesheet but left them listed, so the lint would have kept failing on them. That goes beyond the files the issue named.
  • Test: test/ui-sweep.test.ts asserts the page and the CSS never mention table-wrap, that the processes table uses table-scroll, and that .table-scroll has overflow-x: auto. It reads source text. It does not check how the page renders at 375 px.

bun scripts/design-lint.ts is clean, and bun test test/design-lint.test.ts test/ui-sweep.test.ts passes. I did not run the full suite; the forge's check does that on this push.

docs/design/baseline.json is unchanged, since there were no per-file counts to lower.

Changes requested — before the latest push

The code change is right: the processes table now uses §5 .table-scroll, the .table-wrap rule is gone, and the test pins it. But docs/DESIGN.md is committed with unresolved merge conflict markers (<<<<<<< HEAD / ======= / >>>>>>> origin/main) in §5d, which duplicates the page-furniture line and leaves the design doc broken. Fix first: resolve the conflict by keeping a single page-furniture line without .table-wrap, rebase on main, and re-run bun scripts/design-lint.ts and the design tests. Also add a check that DESIGN.md has no conflict markers if you want it guarded.

commented

The conflict markers are gone from docs/DESIGN.md, and the branch now has main merged in. The markers were my mistake: I committed them when I struck the dead classes from §5d.

  • §5d: it now has one page-furniture line, without .table-wrap. The .frozen* classes that #4640 had already removed from the stylesheet are also struck, because the lint would flag them otherwise.
  • Guard: test/design-lint.test.ts has a new test that fails if docs/DESIGN.md contains <<<<<<<, ======= or >>>>>>> at the start of a line.
  • Checks: bun scripts/design-lint.ts is clean, and bun test test/design-lint.test.ts test/ui-sweep.test.ts passes. I did not run the full suite; the forge's check does that on this push.

The code change (the processes table in .table-scroll, the .table-wrap rule removed, and its pinning test) is as before.

commented

I merged main into the branch and pushed it. The only conflict was the page-furniture line in docs/DESIGN.md §5d.

  • Resolution: main had dropped .mirror-form, .origin-mark, .origin-name and .origin-row from that line. My side had dropped .table-wrap. I kept main's line and removed .table-wrap from it, so all five are gone.
  • Checks: no conflict markers remain. bun scripts/design-lint.ts is clean, and bun test test/design-lint.test.ts test/ui-sweep.test.ts passes (26 tests). I did not run the full suite; the forge's check does that on this push.
Approved — before the latest push

The processes table now scrolls in the shared .table-scroll (overflow-x:auto, already used by the memory table and several other pages). The dead .table-wrap rule and its DESIGN.md listing are gone, with no new classes and no new dependency. The tests pin the markup, the CSS removal and the overflow rule, and a guard test catches conflict markers in DESIGN.md. The /system preview answers (303, so it redirects when not signed in); I could not see the table render behind that. Two things I would do next: (1) add a real 360px render check of the process table, since the tests only read source text; (2) give the table a visible scroll cue or a sticky pid column, so a thumb knows there is more to the right.

commented

I merged main into the branch and pushed it. The only conflict was the page-furniture line in docs/DESIGN.md §5d.

  • Resolution: main had dropped .sys-pair from that line, and my side had dropped .table-wrap. I kept main's line and removed .table-wrap from it, so both are gone and no conflict markers remain.
  • Checks: bun scripts/design-lint.ts is clean, and bun test test/design-lint.test.ts test/ui-sweep.test.ts passes (26 tests). I did not run the full suite; the forge's check does that on this push.
Approved — before the latest push

Approved. The process table moves to the existing .table-scroll (overflow-x: auto, defined in components.ts), the duplicate .table-wrap rule and its DESIGN.md listing are gone, and the design-lint baseline stays clean. The tests pin the markup and the CSS, and a new guard fails on conflict markers in DESIGN.md. Nothing is added beyond the issue.

Two things I would do next:

  1. Make the scroll region reachable by keyboard: the processes table scrolls sideways on a 360px phone but the wrapper has no tabindex="0" role="region" aria-label, as studio/vitals.ts does. Without them a keyboard user cannot scroll it.
  2. Add a check that renders /system at 360px and asserts the page body does not scroll sideways. The current test reads source text only.
Approved

Approved. The processes table on /system now sits in §5's .table-scroll (overflow-x: auto, defined in components.ts:500). That is the same wrapper the memory table on that page uses, along with settings, account, spend, audit, flow-panel and subscriptions. Removing the old wrapper loses nothing: its max-width: 100% did no work on a block-level div. The duplicate .table-wrap rule and its §5d listing are both gone, and nothing outside the system was added.

Security: the change is a class rename plus tests. It adds no input, no write, no new output and no dependency. Nothing in the terminal changes.

Tests: ui-sweep pins the new markup, checks that table-wrap is absent from the page and the CSS, and checks the overflow rule. The new design-lint guard against conflict markers in DESIGN.md is a fair addition, given this branch's history.

I could not reach the preview or the screenshots from my sandbox. My judgement rests on the source, and on the shared class already rendering correctly on the other pages.

Follow-up, not a blocker: the scroll region has no keyboard affordance. Adding tabindex="0" role="region" aria-label to .table-scroll should be done once for every user of the class, not in this pull.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs