feat(sessions): per-workspace shell toggle for integration work #15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "base-session"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Today each Nexus session is locked to its own per-session worktree at
/workspace/.nexus/worktrees/<name>on a fresh branch. That's great for parallel feature work, but it leaves no place inside Nexus to do the integration work — merging finished session branches back intomainand resolving the conflicts that fall out. The only way today isdocker execinto the container by hand and run git there, outside of any Nexus session.This PR closes that gap with the smallest viable surface: a single "Workspace shell" toggle on each workspace card.
What
boottmux window —tmux respawn-windows it on demand so claude only runs there when an operator asks for it, no extra windows accumulate, and the window goes back to its initial-idle state when closed.claude --remote-control "<workspace>"rooted at/workspace(the real main-branch worktree) — the canonical place to dogit merge, resolve conflicts, and push.openWorkspaceSessionleaves an in-flight claude untouched, andcloseWorkspaceSessionis a no-op when boot is already idle. The Close action is gated by aconfirm(); conversation state is persisted to JSONL on disk so a stray click is recoverable.workspaceShellRunningfield onworkerHealth(one extratmux display-messageper poll), which the UI uses to flip the button label/style.What this PR deliberately does NOT do
Test plan
pnpm test— 232/232 pass.svelte-check— 0 errors, 0 warnings across 723 files.docker compose up -d --build, click Workspace shell on a running workspace, attach via Remote Control as"<workspace>",git merge feat-x, resolve, push, click Close shell, verify the boot window is idle again.