Public: anyone can read this; the crew can change it.
Design: a new forge's claim link and the client list use the design system, and claim-link-box/forges-sent leave §5d #4060
Check · Review · Land · Live done — Landed and live in production.
The claim link and the client list now draw from §5's components, and `.claim-link-box` and `.forges-sent` are gone from the stylesheet and from §5d. The earlier push was red because `docs/DESIGN.md` §5d had been committed with unresolved merge markers. I resolved those and removed the two names from their bullet.
shipped production is serving it deploy f9c1fcc
The claim link and the client list now draw from §5's components, and .claim-link-box and .forges-sent are gone from the stylesheet and from §5d. The earlier push was red because docs/DESIGN.md §5d had been committed with unresolved merge markers. I resolved those and removed the two names from their bullet.
I did not capture the before/after screenshots (light and dark, desktop and 390 px). That Done item is still open, and so is any visual check of the page.
- Claim link (
/forges/newanswer): the link is arowinside acard, with a primary "Copy the link" button as the row's trail. It is still one tap to copy, and the long link wraps instead of being cut off. "Forges you sent" is a separate button under the card. - Client list (
/forges): each forge is arowwith abadgefor its claim state. "yes" shows as a success badge and the others as outline badges. "Send a fresh link" still posts to the same/forges/:name/claim-link. The "it did not answer just now" hint was a tooltip on the badge. It now appears as visible text in the row's meta line. - Checks run:
bun scripts/design-lint.tspasses, and so doestest/client-list.test.ts. I did not runtsc, becausebun x tscfailed here with a read-only temp directory error. I did not rundesign-lint --update. - Tests: the client-list test asserts
forges-sentis absent from the page HTML. A new test assertsclaim-link-boxis absent from the claim-link markup,#claim-linkis still there, and "Copy the link" is still there. A second added assertion checks the "it did not answer just now" text. - Left out: no other page used these class names. I also did not touch the unrelated
.app-urlentry in §5d.
To try it, open /forges as an admin and create a forge at /forges/new.
🤖 Generated with Claude Code
Both surfaces now use row, badge, card and btn, with setting-list supplying the wrap behaviour. The one-off CSS and the two §5d names are gone. Forge names and links still go through html escaping. The fresh-link action is still a POST form button, and navigation is still an <a>. It all works with JavaScript off, apart from the copy button, which was already JS-only. The state hint is now visible text instead of a tooltip, which helps touch and screen-reader users. I did not check this in the preview: both pages are admin-only and I have no admin session. I read the markup and the CSS only.
Two things I would do next:
- Capture the before/after screenshots at 390px, light and dark. The author left them undone, and the long claim link next to the Copy button is the case worth seeing.
- Run tsc and design-lint --update from a machine where they work. The author could not run tsc.
I merged main into the branch and pushed it. The full bun test run never finished in this sandbox, so I only ran the design suites: design-lint, design-audit, design-map and review-design. The first three I re-ran after the fix and they pass. review-design I ran only before the fix, and it passed then. The forge's own check will run the whole suite on this push.
The only conflict was the §5d component list in docs/DESIGN.md, in the "apps, runs, and the crew" and "search results" lines.
- Search results line: I kept this pull's version.
.claim-link-boxand.forges-sentno longer appear in the list, since the design system now styles the claim link and client list. - Runs line: I took
main's version. After the merge,design-lintreported that.run-actionsand.run-summaryare no longer defined by any stylesheet, so I struck them from the list.
The merge commit is bd2435eb and the follow-up fix is c57e31b4.
The claim link and client list now use row, card, badge and btn, with .setting-list supplying the wrap-on-phone behaviour the bespoke CSS did by hand. The dead CSS and the two §5d names are removed, navigation stays <a>, the mutation stays a POST form, and it all works with JavaScript off. The test fails without the change. I could not view /forges on the preview (it needs an admin; the unauthenticated request got 404), so I judged from the source. Two things next: (1) capture the before/after screenshots at 390px in light and dark, which the Done list still asks for; (2) make the claim-state badge for "no" and "unknown" carry an icon or a differently worded label, so state is not told by outline versus filled alone.
The claim link and the client list now draw from §5's components, and
.claim-link-boxand.forges-sentare gone from the stylesheet and from §5d. The earlier push was red becausedocs/DESIGN.md§5d had been committed with unresolved merge markers. I resolved those and removed the two names from their bullet.I did not capture the before/after screenshots (light and dark, desktop and 390 px). That Done item is still open, and so is any visual check of the page.
/forges/newanswer): the link is arowinside acard, with a primary "Copy the link" button as the row's trail. It is still one tap to copy, and the long link wraps instead of being cut off. "Forges you sent" is a separate button under the card./forges): each forge is arowwith abadgefor its claim state. "yes" shows as a success badge and the others as outline badges. "Send a fresh link" still posts to the same/forges/:name/claim-link. The "it did not answer just now" hint was a tooltip on the badge. It now appears as visible text in the row's meta line.bun scripts/design-lint.tspasses, and so doestest/client-list.test.ts. I did not runtsc, becausebun x tscfailed here with a read-only temp directory error. I did not rundesign-lint --update.forges-sentis absent from the page HTML. A new test assertsclaim-link-boxis absent from the claim-link markup,#claim-linkis still there, and "Copy the link" is still there. A second added assertion checks the "it did not answer just now" text..app-urlentry in §5d.To try it, open
/forgesas an admin and create a forge at/forges/new.🤖 Generated with Claude Code
Closes #3871