Showing the changes to docs (2 of 18 files). Show all
Unified · Split
| @@ -327,6 +327,24 @@ Without `runId`, it selects the newest interruptible run. A terminal run is · 326 unmodified lines | ||
| 327 | 327 | returned unchanged, and a thread with no active provider turn returns |
| 328 | 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 | |
| 334 | +checks. The request names a stable source point and supplies an idempotency key; | |
| 335 | +the target thread ID and command ID are stable for that key. The response is | |
| 336 | +derived from the committed `thread.created` and `context-transfer.created` | |
| 337 | +events rather than an optional final projection read. | |
| 338 | + | |
| 339 | +Fork creation records lineage and a pending context transfer. Native eligibility | |
| 340 | +is reported from the source provider session and strong provider refs, but | |
| 341 | +resolution remains deferred to the first target turn. The existing provider | |
| 342 | +turn 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 | |
| 345 | +thread's durable context-transfer records. It is the read path for fork | |
| 346 | +provenance and later resolution or consumption. | |
| 347 | + | |
| 330 | 348 | ## Delegated Task Lifecycle |
| 331 | 349 | |
| 332 | 350 | The MCP server is a command ingress into V2. It does not call provider adapters |
| @@ -0,0 +1,11 @@ | ||
| 1 | +# Fork conversations with agents | |
| 2 | + | |
| 3 | +Agents 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 | + | |
| 7 | +The 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 | + | |
| 9 | +Use `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. | |