From 2e377ce5e5bc3da1ca2b133496cbccab3a3d2c01 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Wed, 10 Jun 2026 12:17:15 -0700 Subject: [PATCH] feat: make ThreadStore available on ThreadExtensionDependencies (#27439) Generally useful for extensions. --- codex-rs/app-server/src/extensions.rs | 4 ++++ codex-rs/app-server/src/mcp_refresh.rs | 1 + codex-rs/app-server/src/message_processor.rs | 1 + 3 files changed, 6 insertions(+) diff --git a/codex-rs/app-server/src/extensions.rs b/codex-rs/app-server/src/extensions.rs index 4916132c5..43c2035ce 100644 --- a/codex-rs/app-server/src/extensions.rs +++ b/codex-rs/app-server/src/extensions.rs @@ -21,6 +21,7 @@ use codex_protocol::error::CodexErr; use codex_protocol::protocol::Event; use codex_protocol::protocol::EventMsg; use codex_rollout::state_db::StateDbHandle; +use codex_thread_store::ThreadStore; use crate::outgoing_message::OutgoingMessageSender; use crate::thread_state::ThreadListenerCommand; @@ -34,6 +35,8 @@ pub(crate) struct ThreadExtensionDependencies { pub(crate) thread_manager: Weak, pub(crate) goal_service: Arc, pub(crate) executor_skill_provider: Arc, + /// Process-scoped persistence backend for extensions that need stored thread history. + pub(crate) thread_store: Arc, } pub(crate) fn thread_extensions( @@ -51,6 +54,7 @@ where thread_manager, goal_service, executor_skill_provider, + thread_store: _thread_store, } = dependencies; let mut builder = ExtensionRegistryBuilder::::with_event_sink(event_sink); if let Some(state_db) = state_db { diff --git a/codex-rs/app-server/src/mcp_refresh.rs b/codex-rs/app-server/src/mcp_refresh.rs index b5431228d..d11678ff5 100644 --- a/codex-rs/app-server/src/mcp_refresh.rs +++ b/codex-rs/app-server/src/mcp_refresh.rs @@ -202,6 +202,7 @@ mod tests { thread_manager: thread_manager.clone(), goal_service: Arc::new(codex_goal_extension::GoalService::new()), executor_skill_provider: Arc::clone(&executor_skill_provider), + thread_store: Arc::clone(&thread_store), }, ), /*analytics_events_client*/ None, diff --git a/codex-rs/app-server/src/message_processor.rs b/codex-rs/app-server/src/message_processor.rs index 30e57208e..6ba59e733 100644 --- a/codex-rs/app-server/src/message_processor.rs +++ b/codex-rs/app-server/src/message_processor.rs @@ -336,6 +336,7 @@ impl MessageProcessor { thread_manager: thread_manager.clone(), goal_service: Arc::clone(&goal_service), executor_skill_provider: Arc::clone(&executor_skill_provider), + thread_store: Arc::clone(&thread_store), }, ), Some(analytics_events_client.clone()),