Preserve the resolved multi-agent version when reverting threads (#43000)

## Why

Reverting a paginated thread can remove the turn context that records its resolved multi-agent version. Preserve that version so a model-selected V2 thread keeps its collaboration tools after reload or a server restart.

## What changed

Pass the live thread's `multi_agent_version` into the thread store and persist it in the replacement rollout's session metadata. When no live version is supplied, retain the existing metadata value. Document this guarantee for `thread/revert`.

## Testing

Add regression tests for model-selected V2 across live reload and cold resume, plus metadata preservation for `V1`, `V2`, and `Disabled` across repeated reverts.

GitOrigin-RevId: bd7d4d76a50d23da16caa2a0631acf10bfa49629
This commit is contained in:
jif authored and copyberry committed 2026-09-05 12:58:26 +00:00
1 parent 531f3836a1
commit a7a4321593
6 files changed
+186 -2

No files matched your search

@@ -2189,6 +2189,7 @@ impl ThreadRequestProcessor {
.revert_thread(codex_thread_store::RevertThreadParams {
thread_id,
before_turn_id,
multi_agent_version: thread.multi_agent_version(),
})
.await
.map_err(|err| thread_store_mutation_error("revert", err));