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

Merged opened this

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

Merged

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

opened this

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 row whose 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-link gets the same markup.
  • Sent list: each client is a row inside card(...). The <ul> uses the existing setting-list class, which lets the title and meta wrap, so .forges-sent's wrapping rule isn't needed. Each row keeps its name link, the for/apps/running/sent/last-activity meta, the claimed pill, data-forge and data-claimed, and the "Send a fresh link" form posting to /forges/:name/claim-link.
  • Tests: added assertions in test/new-forge.test.ts and test/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.ts and docs/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

Closes #4172

commented

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 row whose 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-link gets the same markup.
  • Sent list: each client is a row inside card(...). The <ul> uses the existing setting-list class, which lets the title and meta wrap, so .forges-sent's wrapping rule isn't needed. Each row keeps its name link, the for/apps/running/sent/last-activity meta, the claimed pill, data-forge and data-claimed, and the "Send a fresh link" form posting to /forges/:name/claim-link.
  • Tests: added assertions in test/new-forge.test.ts and test/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.ts and docs/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

Approved — before the latest push

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.

commented

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.

Approved

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.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs