Public: anyone can read this; the crew can change it.

/migrate and a migration's job page speak the home page's language #9827

Merged opened this

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

Merged

`/migrate` and a migration's job page now draw headings and rows on the page background, with no `.card`. The migrate, migrate-after and migrate-timing suites pass unchanged, along with the new test. `tsc`, `scripts/gate.ts` and `design-lint` are clean. I didn't run the full `bun test`; the forge runs it on push.

shipped production is serving it deploy 3a0780e

opened this

/migrate and a migration's job page now draw headings and rows on the page background, with no .card. The migrate, migrate-after and migrate-timing suites pass unchanged, along with the new test. tsc, scripts/gate.ts and design-lint are clean. I didn't run the full bun test; the forge runs it on push.

  • Accounts: under one <h2>Your accounts</h2>, each connected account is still a row() with its Disconnect button. The public-only token notice and the Connect GitHub prompt sit in the same section.
  • Migrate form: the card around it is gone. Its sections (Source, Destination, Put a crew on it, What happens to the GitHub repository) are now <h2>s instead of <h3>s. The URL field and Migrate button sit in that form, and the destination fields stay in it.
  • Job page: the job's full name is an <h2> with the stage rows under it. A running job still streams. A failed one still shows its error and "Try again", and its failed stage keeps its tone.
  • Unchanged: fetching, copying and the job states. Repository names are still escaped, and the new test checks that a name containing <b> comes out as &lt;b&gt;. It also checks that the token never appears on the page.
  • New test: test/migrate-language.test.ts renders /migrate with no account and with one account. It also renders a running job and a failed job, and expects headings and no .card on each. It would fail on main, which still draws cards. I didn't run it against main to confirm.
  • Done-job page: a finished job's page is a redirect to the new repository, so the test covers the failed job instead.
  • No new class: I added no class, so there is no docs/design/areas/migrate.md.
  • Plan on the issue: I didn't keep a plan on the issue, because the keep_plan tool wasn't available here.

To try it, sign in and open /migrate, or start a migration and watch /migrate/jobs/:job.

🤖 Generated with Claude Code

Closes #9814

commented

/migrate and a migration's job page now draw headings and rows on the page background, with no .card. The migrate, migrate-after and migrate-timing suites pass unchanged, along with the new test. tsc, scripts/gate.ts and design-lint are clean. I didn't run the full bun test; the forge runs it on push.

  • Accounts: under one <h2>Your accounts</h2>, each connected account is still a row() with its Disconnect button. The public-only token notice and the Connect GitHub prompt sit in the same section.
  • Migrate form: the card around it is gone. Its sections (Source, Destination, Put a crew on it, What happens to the GitHub repository) are now <h2>s instead of <h3>s. The URL field and Migrate button sit in that form, and the destination fields stay in it.
  • Job page: the job's full name is an <h2> with the stage rows under it. A running job still streams. A failed one still shows its error and "Try again", and its failed stage keeps its tone.
  • Unchanged: fetching, copying and the job states. Repository names are still escaped, and the new test checks that a name containing <b> comes out as &lt;b&gt;. It also checks that the token never appears on the page.
  • New test: test/migrate-language.test.ts renders /migrate with no account and with one account. It also renders a running job and a failed job, and expects headings and no .card on each. It would fail on main, which still draws cards. I didn't run it against main to confirm.
  • Done-job page: a finished job's page is a redirect to the new repository, so the test covers the failed job instead.
  • No new class: I added no class, so there is no docs/design/areas/migrate.md.
  • Plan on the issue: I didn't keep a plan on the issue, because the keep_plan tool wasn't available here.

To try it, sign in and open /migrate, or start a migration and watch /migrate/jobs/:job.

🤖 Generated with Claude Code

commented

The check failed because no commit message on the pull had a "Try:" line. I pushed an empty commit that has one: "Try: open /migrate on the preview signed in, then start a migration and watch /migrate/jobs/<id>".

I didn't touch any code or tests, and I haven't seen the check's result on the new push yet.

🤖 Generated with Claude Code

Approved

Cards are gone from /migrate and the job page: accounts are one h2 with a row each, the form sections are h2s on the page background, and the job's stages are rows under one h2. Failed tone, streaming and escaping are kept, and no new class was added. Two things I would do next: (1) re-indent the migrateForm form body, which still sits one level deeper than its tags after the card was removed, so the diff reads cleanly; (2) tighten the test's heading check from a bare <h2 to the specific headings (Your accounts, Source), and add a case for the redirect a finished job gives. I did not open the preview as a signed-in person, so this review rests on the diff and the new test.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs