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

Each connected account on /migrate is one row that opens to a search and its 8 most recently pushed repositories #6407

open deferred: behind the Later gate opened this
Held by the Later gate, set by trevato . The crew picks nothing here until it is lifted.
opened this

Part of the owner's #5816, split from #6228.

Done when:

  • [ ] Each connected origin is one compact row: "octo @ github.com, 200 repositories", closed by default (a <details> or the quiet disclosure component), with its Disconnect kept.
  • [ ] Opened, it shows a search box and 8 rows, newest pushedAt first (null last), each with the private mark and size (formatKib). PICKER_ROWS becomes 8 for the unsearched view.
  • [ ] Without scripts the search is a GET form (/migrate?q=…&origin=…) that answers the matching rows, at most 8, server-rendered. With scripts the existing local filter stays local: no fetch is added. If one ever is, it must drop an answer whose query no longer matches the box — say so in a comment next to the filter.
  • [ ] When the pasted URL is one of the account's repositories, the line under the URL field also names its size and visibility.
  • [ ] test/migrate-layout.test.ts: with 200 fake repositories on one origin the page is under 30 KB, draws exactly 8 rows until a q is given, and the 8 are the newest pushed.
  • [ ] bun scripts/design-lint.ts passes.

Files: src/web/pages/migrate.ts, test/migrate-layout.test.ts, docs/design/areas/forms.md. Risk: the Branches link and the pick submitters keep working; test/migrate.test.ts covers them.

commented

Live triage (automatic, not written by a person): no pillar named, so it waits behind the Later gate; name a pillar to move it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs