Settings: split into General / Work / Make repo / Advanced sub-tabs

Merged
TP
21d ago
+369-230

The Settings tab was 10 workflows stacked flat (API key, gateway, login, sharing, open repo, branches, create, promote, repo list, commit, raw git) — worst at the bottom on mobile.

This splits it into 4 sub-tabs by intent:

  • General — model setup (API key, gateway), GitHub account (login/out, token details collapsed behind disclosure), Sharing
  • Work — open repo + repo list in one card, branches (picker, switch, new proto branch), save (commit+push, pull, status, log)
  • Make repo — new repo from current files, and promote-branch-to-new-repo (keep history), as separate cards with labeled checkboxes
  • Advanced — delete branch + run raw git, behind a warning

Draft inputs persist across tab switches via ghDraft (previously every render wiped them). Token scopes collapsed; Refresh branches, Delete branch, Remote-only strings preserved.

Work / Make repo / Advanced show a login gate when logged out and unlock after GitHub login. Verified: tsc --noEmit clean, 352/352 tests pass.

settings-general

settings-mobile


Summary by cubic

Restructures the Settings tab from a flat 10-workflow stack into 4 sub-tabs grouped by intent — General (model setup, GitHub account, sharing), Work (open repo, branches, save), Make repo (create, promote), Advanced (delete branch, raw git) — so workflows are reachable without scrolling past everything else.

  • The active tab persists across reloads and defaults to Work once logged in.
  • Draft form inputs (repo names, commit message, branch name, checkboxes) survive tab switches via shared draft state; previously every re-render wiped them.
  • Token scopes and granted scopes are collapsed into a "token details" disclosure; the missing-workflow-scope and GitHub-App warnings remain visible.
  • Work, Make repo, and Advanced show a login gate when logged out and unlock after GitHub login.
  • Delete branch moved to Advanced with its input pre-filled from the last selected branch, and the direct Refresh branches button on the Work tab now refreshes the list without needing the picker.

settings-linked-work

settings-linked-make-repo

settings-linked-advanced

Linked-tab shots use representative fixture data (same components, no OAuth in the screenshot env).