History

feat(mcp): fork existing conversations

Julius Marminge committed 2 months ago

Commit 970ea181 parent 415ed0f18 files · +1214 −7Browse files

Showing the changes to docs (2 of 18 files). Show all

Unified · Split

2 files
  1. docs/orchestration-v2/orchestrator-mcp-server.md +18 −0
  2. docs/user/conversation-forks.md +11 −0
docs/orchestration-v2/orchestrator-mcp-server.md+18−0
@@ -327,6 +327,24 @@ Without `runId`, it selects the newest interruptible run. A terminal run is · 326 unmodified lines
327returned unchanged, and a thread with no active provider turn returns327returned unchanged, and a thread with no active provider turn returns
328`no_active_run`.328`no_active_run`.
329 329
330### Conversation forks and transfer discovery
331
332`t3_thread_fork` dispatches the existing `thread.fork` command through
333`ThreadManagementService`, including its project admission and deleted-source
334checks. The request names a stable source point and supplies an idempotency key;
335the target thread ID and command ID are stable for that key. The response is
336derived from the committed `thread.created` and `context-transfer.created`
337events rather than an optional final projection read.
338
339Fork creation records lineage and a pending context transfer. Native eligibility
340is reported from the source provider session and strong provider refs, but
341resolution remains deferred to the first target turn. The existing provider
342turn planner then chooses native fork or checks portable-context capabilities.
343
344`t3_thread_transfers` exposes a bounded, newest-first view of one current-project
345thread's durable context-transfer records. It is the read path for fork
346provenance and later resolution or consumption.
347
330## Delegated Task Lifecycle348## Delegated Task Lifecycle
331 349
332The MCP server is a command ingress into V2. It does not call provider adapters350The MCP server is a command ingress into V2. It does not call provider adapters
docs/user/conversation-forks.md+11−0
@@ -0,0 +1,11 @@
1# Fork conversations with agents
2
3Agents connected through T3 Code's built-in MCP server can create a durable conversation fork without changing Git branches or workspaces.
4
5`t3_thread_fork` requires an explicit stable source point: the latest completed run, a specific completed run, or a checkpoint belonging to a completed run. Omitting `sourceThreadId` uses the current conversation. The new conversation stays in the same project and inherits the source conversation's provider selection and modes, limited by the calling agent's permission ceiling.
6
7The result identifies the source and new conversation, the requested and canonical source points, and the durable fork transfer. It also says whether a native provider fork is currently eligible. The transfer remains pending until the new conversation's first turn, when T3 Code chooses native fork or portable context using the active provider's capabilities. A pending result does not mean provider context has already moved.
8
9Use `t3_thread_transfers` to inspect fork and other context-transfer records on a conversation. Results are newest first and can be filtered by transfer type.
10
11`clientRequestId` is required for forks. Reusing it returns the original thread and command receipt instead of creating another fork.