feat: make ThreadStore available on ThreadExtensionDependencies (#27439)

Generally useful for extensions.
This commit is contained in:
Michael Bolin
2026-06-10 15:17:15 -04:00
committed by GitHub
parent 020bf49346
commit 2e377ce5e5
3 changed files with 6 additions and 0 deletions
+4
View File
@@ -21,6 +21,7 @@ use codex_protocol::error::CodexErr;
use codex_protocol::protocol::Event; use codex_protocol::protocol::Event;
use codex_protocol::protocol::EventMsg; use codex_protocol::protocol::EventMsg;
use codex_rollout::state_db::StateDbHandle; use codex_rollout::state_db::StateDbHandle;
use codex_thread_store::ThreadStore;
use crate::outgoing_message::OutgoingMessageSender; use crate::outgoing_message::OutgoingMessageSender;
use crate::thread_state::ThreadListenerCommand; use crate::thread_state::ThreadListenerCommand;
@@ -34,6 +35,8 @@ pub(crate) struct ThreadExtensionDependencies {
pub(crate) thread_manager: Weak<ThreadManager>, pub(crate) thread_manager: Weak<ThreadManager>,
pub(crate) goal_service: Arc<GoalService>, pub(crate) goal_service: Arc<GoalService>,
pub(crate) executor_skill_provider: Arc<dyn codex_skills_extension::SkillProvider>, pub(crate) executor_skill_provider: Arc<dyn codex_skills_extension::SkillProvider>,
/// Process-scoped persistence backend for extensions that need stored thread history.
pub(crate) thread_store: Arc<dyn ThreadStore>,
} }
pub(crate) fn thread_extensions<S>( pub(crate) fn thread_extensions<S>(
@@ -51,6 +54,7 @@ where
thread_manager, thread_manager,
goal_service, goal_service,
executor_skill_provider, executor_skill_provider,
thread_store: _thread_store,
} = dependencies; } = dependencies;
let mut builder = ExtensionRegistryBuilder::<Config>::with_event_sink(event_sink); let mut builder = ExtensionRegistryBuilder::<Config>::with_event_sink(event_sink);
if let Some(state_db) = state_db { if let Some(state_db) = state_db {
+1
View File
@@ -202,6 +202,7 @@ mod tests {
thread_manager: thread_manager.clone(), thread_manager: thread_manager.clone(),
goal_service: Arc::new(codex_goal_extension::GoalService::new()), goal_service: Arc::new(codex_goal_extension::GoalService::new()),
executor_skill_provider: Arc::clone(&executor_skill_provider), executor_skill_provider: Arc::clone(&executor_skill_provider),
thread_store: Arc::clone(&thread_store),
}, },
), ),
/*analytics_events_client*/ None, /*analytics_events_client*/ None,
@@ -336,6 +336,7 @@ impl MessageProcessor {
thread_manager: thread_manager.clone(), thread_manager: thread_manager.clone(),
goal_service: Arc::clone(&goal_service), goal_service: Arc::clone(&goal_service),
executor_skill_provider: Arc::clone(&executor_skill_provider), executor_skill_provider: Arc::clone(&executor_skill_provider),
thread_store: Arc::clone(&thread_store),
}, },
), ),
Some(analytics_events_client.clone()), Some(analytics_events_client.clone()),