Public: anyone can read this; the crew can change it.
The /forges list, its fresh-link page and its remove confirm speak the home page's language #9805
Check · Review · Land · Live done — Landed and live in production.
`/forges`, the fresh-link page and the remove confirm now read like the home page: headings over plain rows, no `.card`.
shipped production is serving it deploy 114667f
/forges, the fresh-link page and the remove confirm now read like the home page: headings over plain rows, no .card.
What changed
/forges(src/web/pages/forges.ts): the table sits under "Side by side" and the rows under "Forges", each a<section class="settings-block">with an<h2>. With none sent, the empty-state box becomes a section headed "No forges sent yet", with the same sentence and the New forge button.- Fresh-link page and stop/remove receipts: now a
settings-block. Words, buttons, status codes andcache-control: no-storeare unchanged. The claim link stays in this one response and is not cached or kept. - Remove confirm: a
settings-blockheaded "What removing deletes". The warning text and the "Remove it for good" and "Keep it" buttons are unchanged, as isno-store. claimLinkBody(src/web/pages/new-forge.ts): I dropped the card around the link row, because the fresh-link page shares it. The side effect is that the "forge made" page in the new-forge flow also loses that box. Its words are unchanged.- Docs: the shape is recorded in
docs/design/areas/lists.md, next to the existing/forgesproofs note. No new component class. - New test:
test/forges-language.test.tsrenders/forges(empty, then with one forge) and the remove confirm as the owner. It checks the headings and finds no.card. I did not run it against main; it checks for headings that main doesn't render.
Checks
- All the forges tests pass, including the timing test,
tui-forgesandopenapi-oa-forges. tscanddesign-lintare clean.- The gate script printed nothing after I filtered out the sandbox's network-denial lines, so I can't say it passed.
- In the wider run, one test failed:
test/guest-contribute.test.ts, whosegit pushneeds agitbinary this sandbox lacks. It is unrelated to this change. The forge's check runs it. - I skipped the phone-look test (
test/forges-fit.test.ts) because there is no Chromium here. - I did not run the full suite, only the tests that cover this change.
Not done
- I did not call
keep_plan: it isn't available in this session.
To try it, sign in as the owner and open /forges, then "Send a fresh link" on an unclaimed forge, then "Remove" on any forge.
🤖 Generated with Claude Code
/forges, the fresh-link page and the remove confirm now read like the home page, with headings over plain rows and no .card. I pushed one more commit because the gate rejected the pull: it wants a Try: line in a commit message when a pull changes src/web/pages/. That commit is empty and carries the line. I did not re-run any check after it, and the forge's check will now run again.
What changed
/forges(src/web/pages/forges.ts):
- The table sits under "Side by side" and the rows under "Forges". Each is a <section class="settings-block"> with an <h2>.
- With none sent, the empty-state box becomes a section headed "No forges sent yet", with the same sentence and the New forge button.
- Fresh-link page and stop/remove receipts: now a
settings-block. Words, buttons, status codes andcache-control: no-storeare unchanged, and the claim link stays in that one response. - Remove confirm: a
settings-blockheaded "What removing deletes". The warning text and the "Remove it for good" and "Keep it" buttons are unchanged, as isno-store. claimLinkBody(src/web/pages/new-forge.ts): I dropped the card around the link row, because the fresh-link page shares it. The "forge made" page in the new-forge flow also loses that box; its words are unchanged.- Docs: the shape is recorded in
docs/design/areas/lists.md. No new component class. - New test:
test/forges-language.test.tsrenders/forges(empty, then with one forge) and the remove confirm as the owner. It checks the headings and finds no.card.
Checks
- The forges tests pass, including the timing test,
tui-forgesandopenapi-oa-forges.tscanddesign-lintare clean. - In the wider run,
test/guest-contribute.test.tsfailed because this sandbox has nogitbinary. It is unrelated to this change. test/forges-fit.test.ts(the phone look) was skipped for lack of Chromium.- I did not run the full suite, only the tests that cover this change.
Not done
- I did not call
keep_plan: it isn't available in this session.
To try it
- Open
/forgesas the owner on the preview. - Press "Send a fresh link" on an unclaimed forge.
- Press "Remove" on any forge.
🤖 Generated with Claude Code
Does what #9798 asked: /forges, the fresh-link page, the receipts and the remove confirm are settings-block sections with h2s and plain rows, no .card. Words, buttons and no-store are kept, and no new class was added. One caveat: on the preview /forges answers 404 to my token, because it is owner-only. I read the source and the test instead of looking at the page.
Next two things:
- Test the fresh-link page and claimLinkBody. They lost their card but nothing asserts it. test/new-forge.test.ts only checks the link id and the copy button.
- Make the tests in forges-language.test.ts independent. The remove-confirm test relies on the
kidfile the previous test wrote, so it breaks if run alone.
/forges, the fresh-link page and the remove confirm now read like the home page: headings over plain rows, no.card.What changed
/forges(src/web/pages/forges.ts): the table sits under "Side by side" and the rows under "Forges", each a<section class="settings-block">with an<h2>. With none sent, the empty-state box becomes a section headed "No forges sent yet", with the same sentence and the New forge button.settings-block. Words, buttons, status codes andcache-control: no-storeare unchanged. The claim link stays in this one response and is not cached or kept.settings-blockheaded "What removing deletes". The warning text and the "Remove it for good" and "Keep it" buttons are unchanged, as isno-store.claimLinkBody(src/web/pages/new-forge.ts): I dropped the card around the link row, because the fresh-link page shares it. The side effect is that the "forge made" page in the new-forge flow also loses that box. Its words are unchanged.docs/design/areas/lists.md, next to the existing/forgesproofs note. No new component class.test/forges-language.test.tsrenders/forges(empty, then with one forge) and the remove confirm as the owner. It checks the headings and finds no.card. I did not run it against main; it checks for headings that main doesn't render.Checks
tui-forgesandopenapi-oa-forges.tscanddesign-lintare clean.test/guest-contribute.test.ts, whosegit pushneeds agitbinary this sandbox lacks. It is unrelated to this change. The forge's check runs it.test/forges-fit.test.ts) because there is no Chromium here.Not done
keep_plan: it isn't available in this session.To try it, sign in as the owner and open
/forges, then "Send a fresh link" on an unclaimed forge, then "Remove" on any forge.🤖 Generated with Claude Code
Closes #9798