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 | returned unchanged, and a thread with no active provider turn returns | 327 | returned 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 | ||
| 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 | ## Delegated Task Lifecycle | 348 | ## Delegated Task Lifecycle |
| 331 | 349 | ||
| 332 | The MCP server is a command ingress into V2. It does not call provider adapters | 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. | ||