mirror of
https://github.com/openai/codex.git
synced 2026-10-30 19:18:49 +00:00
Distinguish turn-start thread persistence (#37926)
## What changed - Add `PersistContext` to the thread-store persistence contract so stores can identify persistence requested immediately before model sampling. A `TurnStart` request may be enqueued in the background when later flush and shutdown operations fence it and report any failure; all other persistence remains synchronous. - Use the turn-start context only for the initial input of a regular turn, while admission acknowledgments, steered input, and other persistence paths keep the standard durability behavior. - Flush pending metadata before turn-start persistence and ensure shutdown is still attempted if that metadata update fails. ## Testing - Verify that developer instructions and user input are persisted before the model request completes for a default paginated-history thread. GitOrigin-RevId: 162f0ec796a61aebe66ca0b909fbcccec3047b85
This commit is contained in:
@@ -39,6 +39,7 @@ use codex_protocol::protocol::ExecCommandSource;
|
||||
use codex_protocol::protocol::TurnStartedEvent;
|
||||
use codex_sandboxing::SandboxType;
|
||||
use codex_shell_command::parse_command::parse_command;
|
||||
use codex_thread_store::PersistContext;
|
||||
|
||||
use super::SessionTask;
|
||||
use super::SessionTaskResult;
|
||||
@@ -463,7 +464,9 @@ async fn persist_user_shell_output(
|
||||
.await;
|
||||
// Standalone shell turns can run before any regular user turn, so
|
||||
// explicitly materialize rollout persistence after recording output.
|
||||
session.ensure_rollout_materialized().await;
|
||||
session
|
||||
.ensure_rollout_materialized(PersistContext::Standard)
|
||||
.await;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user