feat: teleport a worktree, its tabs and agent sessions to another host
Right-click a linked worktree and choose Teleport... to move it to another connected host. Destinations are matched by normalized Git remote, then by repository name, and a review lists what each pane becomes before anything moves. Commits travel as a bundle of only what the destination lacks. Uncommitted work travels as two temporary commits built through a temporary index, so the source checkout, index and branch are never modified; read-tree restores the staged index and working tree exactly on the destination, whose own `herdr worktree create` checks out the same branch. Tabs, split ratios and labels are rebuilt, running commands start again in the matching directory, and agent sessions move in each agent's own format (Claude transcripts, Codex rollouts, opencode export/import, pi/omp session files) and resume. An agent the destination lacks writes a handoff note that travels with the changes. The source workspace closes only after the destination exists, and its checkout stays. The GUI connection's method allowlist exposes no layouts, process details or agent sessions, and Herdr is not modified, so each step runs as a background script calling Git and the `herdr` CLI on its host, locally or over SSH with the terminal's policy. herdr-client gains `run_script` for that: bounded output, idle deadline, cancellation, typed errors, and a private process group so stopping a script also stops its children. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013HFEaf7NpjuhKA2vjAPYpB
F
Fabien Penso committed
d56efd6e4f8f3c8bc47d07b7d035b46bfbc161a5
Parent: fe8281e