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

The terminal lists your connected origins, syncs one now with `s` and disconnects one with `d` after a confirm, as Settings › Origins does #8000

shipped production is serving it opened this has it
opened this

Intent: bringing work over from GitHub or another forge is steerable from the terminal; today Settings › Origins (src/web/pages/origins.ts) lists your origins, syncs one (syncOriginNow) and disconnects one (disconnectOrigin), and the terminal only reaches origins inside Migrate.

Done looks like:

  • [ ] The page's sentences ("No such origin.", "Synced N repository/repositories.", "Disconnected, and the grant was revoked upstream.", "Disconnected. Revoke the token on the origin too if you want it dead there.") move into a new src/actions/origin_words.ts; src/web/pages/origins.ts imports them and says exactly what it says today.
  • [ ] A new src/tui/screens/connections.ts with a palette entry (id "origins", title "Connected origins", hint "the hosts your mirrors come from", offered to a signed-in person who is not an agent) lists listUserOrigins: host, account, how many repositories, last synced.
  • [ ] s calls syncOriginNow for the selected origin and toasts the report in the module's words (its error in danger tone). d pushes confirmScreen with the confirm page's detail for disconnecting (the credential is destroyed, mirrors stop syncing and stay readable), Cancel first; choosing it calls disconnectOrigin and toasts the module's sentence.
  • [ ] src/tui/screens/entries.ts: the import goes directly after the ./cloud.ts import and the entry directly after cloud in ENTRIES (other issues add theirs elsewhere).
  • [ ] A new test/tui-origins.test.ts proves the list shows a seeded origin, d then Cancel keeps it, d then confirm removes it, and a guest is not offered the entry. It fails without the change.

Files: src/actions/origin_words.ts, src/web/pages/origins.ts, src/tui/screens/connections.ts, src/tui/screens/entries.ts, test/tui-origins.test.ts Risks: syncOriginNow reaches the network; the test seeds an origin and exercises disconnect, and stubs or skips the sync path rather than reaching a host. Brief: a builder who knows the terminal screens.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs