Public: anyone can read this; the crew can change it.
The claim link and the client list draw §5's card and row, and .claim-link-box, .forges-sent leave the markup #4212
Check · Review · Land · Live done — Landed and live in production.
The claim link on `/forges/new`'s answer and the sent list on `/forges` are now drawn with §5's `row`, and neither `.claim-link-box` nor `.forges-sent` appears in their HTML. `bun x tsc --noEmit` is clean. `bun test` passes for `design-lint`, `new-forge`, `client-list`, `forges-timing` and `claim-link`; I did not run the rest of the suite.
shipped production is serving it deploy 5f89d5b
The claim link on /forges/new's answer and the sent list on /forges are now drawn with §5's row, and neither .claim-link-box nor .forges-sent appears in their HTML. bun x tsc --noEmit is clean. bun test passes for design-lint, new-forge, client-list, forges-timing and claim-link; I did not run the rest of the suite.
- Claim link: it is now a
rowwhose title is the link in<code id="claim-link">, inside a<ul class="list setting-list">. The "Copy the link" button, now the row's trail, is still one tap. The same intro text and the "Forges you sent" link are kept, and the reissue page at/forges/:name/claim-linkgets the same markup. - Sent list: each client is a
rowinsidecard(...). The<ul>uses the existingsetting-listclass, which lets the title and meta wrap, so.forges-sent's wrapping rule isn't needed. Each row keeps its name link, thefor/apps/running/sent/last-activity meta, the claimed pill,data-forgeanddata-claimed, and the "Send a fresh link" form posting to/forges/:name/claim-link. - Tests: added assertions in
test/new-forge.test.tsandtest/client-list.test.ts. They check that the old class names are gone, that the row, the copy button and the intro words are present, and that the fresh-link form is still there. - Left alone, as the issue says: the rules in
src/web/style/content.tsanddocs/DESIGN.md, which part two removes. - Visual changes (no browser here): the sent list's old mobile layout rules (
.forges-sent) no longer apply, and the claim link loses its tinted box, so both rows now follow the generic row styling. - Not run: screenshots, per the issue.
To try it, open /forges/new, spawn a forge, and look at the answer page. Then open /forges.
🤖 Generated with Claude Code
Both surfaces now use §5 row() inside a .list.setting-list, so the claim link and the sent list wrap on a 360px phone, the trail takes its own line under 640px, and the Copy and Send a fresh link controls stay real buttons or post forms. Everything works with JavaScript off. The claim link reissue page shares claimLinkBody, so it gets the same markup. Tests assert the old class names are gone and the copy, row and form pieces remain. I read the source and the diff only: the preview needs a signed-in admin, so I could not load /forges or the claim answer there. Next: (1) in part two, delete the orphaned .claim-link-box and .forges-sent rules in style/content.ts and the DESIGN.md mentions; (2) look at both pages on a phone once, since the claim link is now a long unbroken token inside row-title, which relies on overflow-wrap:anywhere.
I merged main into the branch and pushed it. bun x tsc --noEmit is clean, and design-lint, new-forge, client-list, forges-timing and claim-link pass (51 tests, 0 fail).
main had already redrawn the same two pages with §5's row and card. In src/web/pages/forges.ts and src/web/pages/new-forge.ts I took main's version in full, so my markup there is gone. That version already has no .forges-sent or .claim-link-box, and it uses badge for the claimed state in place of my pill.
In test/client-list.test.ts I kept both sides' assertions. The old-names-absent checks are still there. So are main's check for the "it did not answer just now" tooltip and my check for "Send a fresh link".
The assertions I added to test/new-forge.test.ts merged without conflict and still pass against main's markup.
I did not run the rest of the suite.
The diff is tests only: main already draws the claim link and the sent list with §5 row and card, and no claim-link-box or forges-sent remains in src. The new assertions pin that state (old names absent, row present, copy button, intro words, "Send a fresh link"). No security, terminal or dependency surface changes, and the preview answers 200. I read the diff and grepped src; I did not run bun test or load the /forges pages in the preview. Next: (1) remove the now-dead .claim-link-box/.forges-sent rules and DESIGN.md text in part two, as the issue says; (2) check /forges/new and /forges at 360px with a screenshot, since the row wrapping was never viewed.
The claim link on
/forges/new's answer and the sent list on/forgesare now drawn with §5'srow, and neither.claim-link-boxnor.forges-sentappears in their HTML.bun x tsc --noEmitis clean.bun testpasses fordesign-lint,new-forge,client-list,forges-timingandclaim-link; I did not run the rest of the suite.rowwhose title is the link in<code id="claim-link">, inside a<ul class="list setting-list">. The "Copy the link" button, now the row's trail, is still one tap. The same intro text and the "Forges you sent" link are kept, and the reissue page at/forges/:name/claim-linkgets the same markup.rowinsidecard(...). The<ul>uses the existingsetting-listclass, which lets the title and meta wrap, so.forges-sent's wrapping rule isn't needed. Each row keeps its name link, thefor/apps/running/sent/last-activity meta, the claimed pill,data-forgeanddata-claimed, and the "Send a fresh link" form posting to/forges/:name/claim-link.test/new-forge.test.tsandtest/client-list.test.ts. They check that the old class names are gone, that the row, the copy button and the intro words are present, and that the fresh-link form is still there.src/web/style/content.tsanddocs/DESIGN.md, which part two removes..forges-sent) no longer apply, and the claim link loses its tinted box, so both rows now follow the generic row styling.To try it, open
/forges/new, spawn a forge, and look at the answer page. Then open/forges.🤖 Generated with Claude Code
Closes #4172