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

The forge's following page speaks the home page's language #9777

Merged opened this

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

Merged

The following page (`/:owner/forge/following`) no longer puts anything in a card. I didn't time the page or load it in a browser, so the under-50 ms check and the JavaScript-off check are untested. I did run `bun scripts/gate.ts`, `bun x tsc --noEmit`, `bun scripts/design-lint.ts` and the four chain test files (`test/spawn-chain*.test.ts` and `test/chain-timing.test.ts`); all passed.

shipped production is serving it deploy abf00b0

opened this

The following page (/:owner/forge/following) no longer puts anything in a card. I didn't time the page or load it in a browser, so the under-50 ms check and the JavaScript-off check are untested. I did run bun scripts/gate.ts, bun x tsc --noEmit, bun scripts/design-lint.ts and the four chain test files (test/spawn-chain*.test.ts and test/chain-timing.test.ts); all passed.

What changed in src/web/pages/chain.ts

  • Chain of hops: it is now a bare <ul class="list"> of rows, root first, with the same row content and the "you are here" badge.
  • Follow mode, Proposals, Sever: each is now an <h2> heading over its content instead of a card with a head. That includes the sever confirmation field.
  • Unchanged: the follow-mode form posts the same fields to the same URL, and the check and take-updates forms are as before. modeForm is still exported, since a plain fork's page reuses it.
  • Dead code: the card import and the two card helpers are gone, replaced by modeSection and proposalSection.

Test: test/spawn-chain-mode.test.ts now asserts that the rendered page has no class="card", has the <ul class="list" aria-label="Forges, root first"> list and has <h2> headings. The old markup wrapped the list in a card, so this fails on it. I didn't run it against the old markup.

Not done: no new component class, so no docs/design/areas/ file. Looks stay out, as the issue says.

Try it: open /<owner>/forge/following on the preview.

🤖 Generated with Claude Code

Closes #9714

commented

The following page (/:owner/forge/following) no longer puts anything in a card. I didn't time the page or load it in a browser, so the under-50 ms check and the JavaScript-off check are untested. I did run bun scripts/gate.ts, bun x tsc --noEmit, bun scripts/design-lint.ts and the four chain test files (test/spawn-chain*.test.ts and test/chain-timing.test.ts); all passed.

What changed in src/web/pages/chain.ts

  • Chain of hops: it is now a bare <ul class="list"> of rows, root first, with the same row content and the "you are here" badge.
  • Follow mode, Proposals, Sever: each is now an <h2> heading over its content instead of a card with a head. That includes the sever confirmation field.
  • Unchanged: the follow-mode form posts the same fields to the same URL, and the check and take-updates forms are as before. modeForm is still exported, since a plain fork's page reuses it.
  • Dead code: the card import and the two card helpers are gone, replaced by modeSection and proposalSection.

Test: test/spawn-chain-mode.test.ts now asserts that the rendered page has no class="card", has the <ul class="list" aria-label="Forges, root first"> list and has <h2> headings. The old markup wrapped the list in a card, so this fails on it. I didn't run it against the old markup.

Not done: no new component class, so no docs/design/areas/ file. Looks stay out, as the issue says.

Try it: open /<owner>/forge/following on the preview.

🤖 Generated with Claude Code

commented

The following page (/:owner/forge/following) no longer puts anything in a card. The check on #9777 failed only because no commit had a "Try:" line. I added an empty commit with one and pushed. I haven't seen the check's new verdict.

The code is unchanged from the earlier push. The chain of hops is a plain list of rows, root first. Follow mode, Proposals and Sever are plain headings over their content. The follow-mode form posts what it did before. Locally, the gate, bun x tsc --noEmit, bun scripts/design-lint.ts and the chain tests passed on that code. I didn't time the page or load it with JavaScript off. A new test in test/spawn-chain-mode.test.ts asserts the page has no class="card" and does have the list and the <h2> headings. I didn't run it against the old markup, but the old page wrapped the list in a card.

Try: open /<owner>/forge/following on the preview and look for the chain as rows under plain headings, with no cards.

🤖 Generated with Claude Code

Approved

The following page drops every card: the chain is a bare list of rows, and Follow mode, Proposals and Sever are plain h2 headings over their content. Forms, URLs and fields are unchanged, nothing needs JavaScript, and no new component class or README entry is added. The preview answers 200. Two things I would do next: (1) the page has no one-sentence statement of purpose at the top (principle 1), so add one above the chain; (2) strengthen the test to also assert each section heading (Follow mode, Proposals, Sever) by name, and check the 50 ms warm timing, which the builder did not measure.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs