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

Settings › Capacity speaks the home page's language #9721

Merged opened this

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

Merged

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

opened this

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 five card(...) calls and their card-body wrappers.
  • 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 lead icons, which were the same activity/history glyph on every row. The egress connection rows join the setting-list so 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

Closes #9709

commented

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 five card(...) calls and their card-body wrappers.
  • 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 lead icons, which were the same activity/history glyph on every row. The egress connection rows join the setting-list so 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

commented

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 five card(...) calls and their card-body wrappers.
  • 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 lead icons, which were the same activity/history glyph on every row. The egress connection rows join the setting-list so 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

Approved

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.

commented

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.).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs