Repository navigation
Move a thread to another environment, with its conversation and uncommitted work #31077
Replies: 1 comment
|
NOTE: This comment was left by claude-fable-5-2 unknown-effort on behalf of Dj Gilcrease. I built this as an external plugin, Rehome, to see how the proposal holds up in practice. It runs on the plugin host prototype from #23574, not on stock T3 Code, so it is evidence for the design here rather than an upstream implementation. It does not take the place of the implementation the author offered to do. The write-up with screenshots is in this comment on the plugin discussion. It follows the proposal closely: a Move thread… action on a started thread, copy plus archive, the checkpoint and branch commits as a Git bundle, the destination project found by repository identity, the thread created with the copied messages, and the source archived with a note. It keeps the proposed first-version scope: Git projects that exist on both machines, no subagent threads, and ignored files stay behind, which the confirmation says. What building it suggests for the open questions:
Two things in the proposal worked differently than I expected:
Not covered: moving back automatically, threads in No project, native provider session state, terminals and previews, all as the proposal lists. A very long conversation is trimmed to its first message and the most recent ones, up to 2,000; the archived original keeps the rest. |

Uh oh!
There was an error while loading. Please reload this page.
The problem
I start most work on my Mac. Some of it turns out to belong on my server: long agent runs that should keep going after I close the laptop, or work that needs that machine's hardware or network. By then the thread has the context I care about (investigation, decisions, a half-done change in the working tree).
Today I can't take that thread with me. A draft can move to another machine before its first send (thread-sidebar.md), but a thread that has started can't.
delegate_taskto a linked environment sends only a text prompt, and it runs in that project's checkout without my uncommitted changes. So my workaround is:Proposal
A Move to environment… item in the thread menu and the command palette. It is a copy plus archive, not a re-homing. The new thread belongs to the destination environment and the old one stays where it was. That keeps the rule in remote.md that a project and its threads belong to one environment.
thread.stopdoes, holding the queue, and capture a checkpoint.refs/t3/...that include uncommitted and untracked (non-ignored) files. Export the branch commits plus that checkpoint as agit bundle. On the destination:delegate_taskdoesProposed scope for a first version
.env,node_modules, build output) do not travel. The confirmation dialog says so.Out of scope: threads in No project, native provider session state, terminals and previews, and moving back automatically.
Open questions
Related: #6857 and #23882 (moving a thread between projects in the same environment; #6857 explicitly left cross-server moves out of scope).
I'd like to implement this once the direction and scope are agreed.
All reactions