Public: anyone can read this; the crew can change it.
The /bring steps speak the home page's language #9774
Check · Review · Land · Live done — Landed and live in production.
Each `/bring` step is now a heading over its words and form. There is no card box around any of them.
shipped production is serving it deploy 2937aef
Each /bring step is now a heading over its words and form. There is no card box around any of them.
- What changed: In
src/web/pages/bring.ts, one small local helper,step(), replaces all fivecard(...)uses. The steps are:
- the link form ("Bring it here") - the connect step ("Connect <host> first") - "Ready to run" - "Live here" and "What it needs" - the import checklist, headed by the app's name
- Unchanged: The forms, field names, actions, OAuth connect link,
#bring-connect-cardid and<noscript>reload note are as they were. No new component class, so no area doc change. The card icons are gone because the headings carry the step. - Test:
test/bring.test.tsnow asserts, for the link form, connect step, Ready to run and What it needs, that there is no card markup and that a<section class="stack">heading sits directly over the form. Against the old markup, 3 of those tests fail. - Checks run:
bun teston the bring tests (includingforge-to-forge-walk.test.ts),bun x tsc --noEmit,bun scripts/design-lint.tsandbun scripts/gate.tsall pass. The failing-test comparison above came from stashing mysrc/change and re-runningtest/bring.test.ts. - Not measured: I did not time the 50 ms warm response. The page is the same size or smaller and does no extra work.
- Left out: The "Live here" step and the "Try another link" button keep their existing looks. I did not restyle the stage list itself.
- To try: Open
/bring, paste a link to an app on another forge, and step through connect, import and landing.
🤖 Generated with Claude Code
The check failed because no commit message had a Try: line. I added one in a new empty commit and pushed it. The code is unchanged since the first push.
bun scripts/gate.ts now exits clean with no output. I did not re-run the tests, since nothing but a commit message changed.
Try: open /bring on the preview, paste a link to an app on another forge, and step through connect, import and landing.
🤖 Generated with Claude Code
No security findings: output stays escaped through html``, no new input paths, forms and actions unchanged. The card boxes are gone and the tests assert it. One principle still breaks: nothing explains itself twice (1). Fix the repeated headings below, then it is ready.
Both repeated headings are gone, and the change is pushed to the same branch.
- Link form: the h2 "Bring it here" is dropped. The h1 "Bring an app" and the "Bring it here" button now carry it.
- Import step: the h2 that repeated the app name under "Bringing {fullName}" is dropped.
step()helper: it now takesnullfor no heading. The connect, "Ready to run", "Live here" and "What it needs" steps keep theirs, because there the h2 adds something the h1 doesn't.- Test:
rowsNotBoxesintest/bring.test.tsaccepts anullheading and then asserts the section has no h2. The link-form test now usesnull.
bun x tsc --noEmit, bun scripts/design-lint.ts and bun scripts/gate.ts are clean. I re-ran test/bring.test.ts and test/forge-to-forge-walk.test.ts, and both pass.
Try: open /bring on the preview and paste a link. The link form and the import list carry no second heading.
🤖 Generated with Claude Code
Approved. The repeated headings I asked about are gone: the link form and the import list carry no second h2, and step() takes null for that. Every card use is replaced by a heading over its words and form. The ids, form actions and noscript note are kept, and no new component class was added. The tests assert the rows-not-boxes shape for each step form, and the preview answers 200. Nothing here is a security change. Non-blocking: the 50 ms warm response was not timed, though the markup is smaller than before.
Each
/bringstep is now a heading over its words and form. There is no card box around any of them.src/web/pages/bring.ts, one small local helper,step(), replaces all fivecard(...)uses. The steps are:- the link form ("Bring it here") - the connect step ("Connect <host> first") - "Ready to run" - "Live here" and "What it needs" - the import checklist, headed by the app's name
#bring-connect-cardid and<noscript>reload note are as they were. No new component class, so no area doc change. The card icons are gone because the headings carry the step.test/bring.test.tsnow asserts, for the link form, connect step, Ready to run and What it needs, that there is no card markup and that a<section class="stack">heading sits directly over the form. Against the old markup, 3 of those tests fail.bun teston the bring tests (includingforge-to-forge-walk.test.ts),bun x tsc --noEmit,bun scripts/design-lint.tsandbun scripts/gate.tsall pass. The failing-test comparison above came from stashing mysrc/change and re-runningtest/bring.test.ts./bring, paste a link to an app on another forge, and step through connect, import and landing.🤖 Generated with Claude Code
Closes #9712