Files
GitManager/components/repo-menu/repo-menu.md
T
TBNilles e1999bcf21 Slice 9: git_checkout and create_branch (menu + MCP)
git boundary Checkout/CreateBranch; service GitCheckout/GitCreateBranch (activity detail names the branch; gitAction takes an ok-detail). HTTP /api/repo/git ops checkout + create-branch (branch field). MCP tools git_checkout and create_branch. <repo-menu> gains Switch branch… and New branch… (prompt for name). Service test covers create+switch and existing-branch failure. Checkout is not destructive - git refuses if it would overwrite changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-20 17:27:58 -04:00

1.9 KiB

repo-menu

Intent

The right-click command menu (AGENT.md §6) — the app's reason for being: run git in plain language ("Get latest", "Publish", "Save my work…") without a terminal. A self-contained overlay control (§1.1) that any list can summon via an event. Safe commands run on click; the destructive one confirms first (§1.4).

Public surface

  • Tag: <repo-menu> (place once, near the end of the page).
  • Listens: repo:contextmenu on documentdetail: { repo, x, y } (dispatched by <repo-list> on right-click). Shows the menu at (x, y).
  • Commands → endpoints:
    • Get latest / Publish / Check for updates / Save my work… / Switch branch… / New branch… / Discard all changes… → POST /api/repo/git {path, op, message?, branch?} (op: pull/push/fetch/commit/checkout/create-branch/ discard). "Save my work…" prompts for a message; "Switch branch…"/"New branch…" prompt for the branch; "Discard all changes…" confirms (destructive).
    • Set as active project → POST /api/active-project.
    • Ask Claude to switch here → POST /api/switch (the handoff request).
    • Copy path → clipboard.
  • Dismisses on outside click, Esc, or scroll.

History

  • 2026-09-20: created — slice 6; plain-language git commands + coordination actions, backed by the shared service layer (same ops Claude gets via MCP).
  • 2026-09-20: added "Switch branch…" (checkout) and "New branch…" (create-branch), both prompting for the branch name (slice 9).

Notes / gotchas

  • Results aren't shown inline; they appear in <activity-feed> (each op records a git-* event with ok/failed), and errors raise a browser alert.
  • Network ops (pull/push/fetch) need git credentials reachable from the server; inside Docker that means a mounted SSH agent / credential helper (§11) — until then they'll report an auth error. commit/discard are local and always work.