mirror of
https://github.com/openai/codex.git
synced 2026-11-13 06:45:07 +00:00
Support metadata staging for reserved thread IDs (#38819)
## Why Callers need to associate host-owned state with a thread before Core starts it. ## What changed - Add `ThreadManager::reserve_thread_id` and allow new threads to start with the reserved ID. Reject reserved IDs when resuming an existing thread. - Let thread stores stage metadata for a reserved ID. The local store merges staged values into the first successful metadata update and then removes them. - Clear staged metadata when an unmaterialized thread shuts down or is discarded, and require the state database for staging. ## Testing - Cover reserved ID generation and resume validation. - Cover metadata persistence, merging, rollout-compatible updates, cleanup, and invalid staging requests. GitOrigin-RevId: 3f9bc48f0f7764011cc90ea01349e497dda0a9e3
This commit is contained in:
1 parent
5ba12929f8
commit
fcdae21073
17 files changed
+650
-21
No files matched your search
@@ -422,6 +422,7 @@ pub(crate) struct SessionSpawnArgs {
|
||||
pub(crate) environment_selections: Vec<TurnEnvironmentSelection>,
|
||||
pub(crate) thread_extension_init: ExtensionDataInit,
|
||||
pub(crate) client_mcp_extensions: ClientMcpExtensions,
|
||||
pub(crate) reserved_thread_id: Option<ThreadId>,
|
||||
pub(crate) analytics_events_client: Option<AnalyticsEventsClient>,
|
||||
pub(crate) thread_store: Arc<dyn ThreadStore>,
|
||||
pub(crate) attestation_provider: Option<Arc<dyn AttestationProvider>>,
|
||||
@@ -514,6 +515,7 @@ impl Session {
|
||||
environment_selections,
|
||||
thread_extension_init,
|
||||
client_mcp_extensions,
|
||||
reserved_thread_id,
|
||||
analytics_events_client,
|
||||
thread_store,
|
||||
attestation_provider,
|
||||
@@ -742,6 +744,7 @@ impl Session {
|
||||
thread_extension_init,
|
||||
client_mcp_extensions,
|
||||
agent_control,
|
||||
reserved_thread_id,
|
||||
environment_manager,
|
||||
inherited_environments,
|
||||
analytics_events_client,
|
||||
|
||||
Reference in new issue
Block a user