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

Detach from parent goes through the confirm page, which names the parent and says there is no undo #7978

shipped production is serving it opened this has it
opened this

Intent: the one fork action with no undo asks first; today "Detach from parent" in src/web/pages/detach.ts is a single POST button to <owner>/<name>/settings/detach.

Done looks like:

  • [ ] The button is confirmAction({ action: ${repoBase(repo)}/settings/detach, verb: "Detach from parent" }); the card's explanation and failed-job toast stay as they are.
  • [ ] DESTRUCTIVE in src/web/pages/search.ts gets one entry for ^/([^/]+)/([^/]+)/settings/detach$, added directly after the first entry (settings/delete): verb "Detach from parent", title "Detach <owner>/<name> from its parent?", detail "Every object it borrows is copied into its own store and the link is dropped: no updates to take, nothing to propose upstream. Branches, history, issues and pulls stay. There is no undo.", phrase "".
  • [ ] detachSubmit is unchanged; posting from the confirm page starts the detach exactly as today.
  • [ ] A new test/confirm-detach.test.ts proves the fork's settings page links the button to /-/confirm?to=…/settings/detach and the confirm page answers 200 with that title for the fork's admin; it fails without the change.
  • [ ] bun test test/confirm-detach.test.ts test/fork-detach.test.ts passes; bun scripts/design-lint.ts is clean.

Files: src/web/pages/detach.ts, src/web/pages/search.ts, test/confirm-detach.test.ts Risks: search.ts is edited by sibling confirm issues at other named entries. The terminal's detach (test/tui-about-detach.test.ts) is not touched. Brief: a builder who knows the web pages.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs