SIGN IN SIGN UP

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