Public: anyone can read this; the crew can change it.
Settings › Capacity speaks the home page's language #9721
Check · Review · Land · Live done — Landed and live in production.
Settings › Capacity no longer uses card boxes. Each of its five cards is now a plain section with a small heading: Capacity, Changes, Errors and refused calls, Egress connections and Self-swap. The settings come first, since they are what the page is for, and what changed and what happened come after. No new component class was needed.
shipped production is serving it deploy a5a2512
Settings › Capacity no longer uses card boxes. Each of its five cards is now a plain section with a small heading: Capacity, Changes, Errors and refused calls, Egress connections and Self-swap. The settings come first, since they are what the page is for, and what changed and what happened come after. No new component class was needed.
What moved, in src/web/pages/capacity.ts:
- A small
block(title, content)helper draws<section class="settings-block"><h2>…</h2>…</section>. It replaces the fivecard(...)calls and theircard-bodywrappers. - The intro text ("How much the forge does at once…") was a paragraph inside the Capacity card. It is now one line at the top of the page. The egress-reported note follows it, and only appears when cells report egress rather than refuse it.
- Rows lose their
leadicons, which were the sameactivity/historyglyph on every row. The egress connection rows join thesetting-listso long names wrap. - The Self-swap section no longer repeats its heading as its row title. The title is now the state itself (the reason it is blocked, or that it is ready), and the row keeps its
id="self-swap"and its badge. - The egress setting still shows the value from
listCapacity→core/capacity.ts. Nothing reads it differently, and no default changes.
Test: test/capacity-rows.test.ts renders the page as an admin. It checks that no card markup is left in the settings area, that each part sits under its own heading, that the settings list (including the cells.egress row) comes right after the Capacity heading, and that the settings come before the errors. It also switches egress to report and checks that the row then says "Now report" and the note appears. Against the old markup the first test fails, and with this change both pass.
Docs: docs/design/areas/settings.md has a short paragraph describing the page's new shape.
Checks: bun scripts/gate.ts, bun x tsc --noEmit and bun scripts/design-lint.ts pass. So do 76 tests across the capacity suites, tui-capacity, settings-routes and settings-visible, including capacity-timing. scripts/fast.ts named 1,208 test files for this change, too many to run here, so I picked the tests that cover the page myself. I did not measure the 50 ms warm response time here; capacity-timing passing only shows the page's timing phases are still reported. The page is a server-rendered form with no new script, so it still works with JavaScript off.
Not done: no hand-made looks (the forge adds main's look beside this one), and no wording changes beyond the intro line. The issue asked for a keep_plan tool, but this session didn't have it, so the issue has no plan on it.
To try it: open /settings/capacity as an admin on this pull's preview, and set Egress to report to see the note appear.
🤖 Generated with Claude Code
Settings › Capacity no longer uses card boxes. Each of its five cards is now a plain section with a small heading: Capacity, Changes, Errors and refused calls, Egress connections and Self-swap. The settings come first, since they are what the page is for, and what changed and what happened come after. No new component class was needed.
What moved, in src/web/pages/capacity.ts:
- A small
block(title, content)helper draws<section class="settings-block"><h2>…</h2>…</section>. It replaces the fivecard(...)calls and theircard-bodywrappers. - The intro text ("How much the forge does at once…") was a paragraph inside the Capacity card. It is now one line at the top of the page. The egress-reported note follows it, and only appears when cells report egress rather than refuse it.
- Rows lose their
leadicons, which were the sameactivity/historyglyph on every row. The egress connection rows join thesetting-listso long names wrap. - The Self-swap section no longer repeats its heading as its row title. The title is now the state itself (the reason it is blocked, or that it is ready), and the row keeps its
id="self-swap"and its badge. - The egress setting still shows the value from
listCapacity→core/capacity.ts. Nothing reads it differently, and no default changes.
Test: test/capacity-rows.test.ts renders the page as an admin. It checks that no card markup is left in the settings area, that each part sits under its own heading, that the settings list (including the cells.egress row) comes right after the Capacity heading, and that the settings come before the errors. It also switches egress to report and checks that the row then says "Now report" and the note appears. Against the old markup the first test fails, and with this change both pass.
Docs: docs/design/areas/settings.md has a short paragraph describing the page's new shape.
The failed check: the gate wants a Try: line in a commit message for any pull that changes a page. Force pushes are refused, so the line is in a second, empty commit. bun scripts/gate.ts now passes when run against the merge base with main.
Checks: bun x tsc --noEmit and bun scripts/design-lint.ts pass. So do 76 tests across the capacity suites, tui-capacity, settings-routes and settings-visible, including capacity-timing. scripts/fast.ts named 1,208 test files for this change, too many to run here, so I picked the tests that cover the page myself. I did not measure the 50 ms warm response time here; capacity-timing passing only shows the page's timing phases are still reported. The page is a server-rendered form with no new script, so it still works with JavaScript off.
Not done: no hand-made looks (the forge adds main's look beside this one), and no wording changes beyond the intro line. The issue asked for a keep_plan tool, but this session didn't have it, so the issue has no plan on it.
To try it: open /settings/capacity as an admin on this pull's preview, and set Egress to report to see the note appear.
🤖 Generated with Claude Code
Clean: five cards become .settings-block sections with an h2 over rows, no new class (documented in areas/settings.md), settings first, icons dropped, test pins the shape and the egress row. Output stays escaped through html``; no new write path, no script. Box 4 left only because the 50 ms warm time was not measured and my unauthenticated preview fetch redirected to sign-in.
Left #9709 open: 1 unticked item remain (bun scripts/design-lint.ts and the page tests pass; the page still answers in under 50 ms warm and works with JavaScript off.).
Settings › Capacity no longer uses card boxes. Each of its five cards is now a plain section with a small heading: Capacity, Changes, Errors and refused calls, Egress connections and Self-swap. The settings come first, since they are what the page is for, and what changed and what happened come after. No new component class was needed.
What moved, in
src/web/pages/capacity.ts:block(title, content)helper draws<section class="settings-block"><h2>…</h2>…</section>. It replaces the fivecard(...)calls and theircard-bodywrappers.leadicons, which were the sameactivity/historyglyph on every row. The egress connection rows join thesetting-listso long names wrap.id="self-swap"and its badge.listCapacity→core/capacity.ts. Nothing reads it differently, and no default changes.Test:
test/capacity-rows.test.tsrenders the page as an admin. It checks that no card markup is left in the settings area, that each part sits under its own heading, that the settings list (including thecells.egressrow) comes right after the Capacity heading, and that the settings come before the errors. It also switches egress toreportand checks that the row then says "Now report" and the note appears. Against the old markup the first test fails, and with this change both pass.Docs:
docs/design/areas/settings.mdhas a short paragraph describing the page's new shape.Checks:
bun scripts/gate.ts,bun x tsc --noEmitandbun scripts/design-lint.tspass. So do 76 tests across the capacity suites,tui-capacity,settings-routesandsettings-visible, includingcapacity-timing.scripts/fast.tsnamed 1,208 test files for this change, too many to run here, so I picked the tests that cover the page myself. I did not measure the 50 ms warm response time here;capacity-timingpassing only shows the page's timing phases are still reported. The page is a server-rendered form with no new script, so it still works with JavaScript off.Not done: no hand-made looks (the forge adds main's look beside this one), and no wording changes beyond the intro line. The issue asked for a
keep_plantool, but this session didn't have it, so the issue has no plan on it.To try it: open
/settings/capacityas an admin on this pull's preview, and set Egress toreportto see the note appear.🤖 Generated with Claude Code
Closes #9709