feat: make ThreadStore available on ThreadExtensionDependencies (#27439)

Generally useful for extensions.
This commit is contained in:
Michael Bolin
2026-06-10 12:17:15 -07:00
committed by GitHub
Unverified
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::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<ThreadManager>,
pub(crate) goal_service: Arc<GoalService>,
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>(
@@ -51,6 +54,7 @@ where
thread_manager,
goal_service,
executor_skill_provider,
thread_store: _thread_store,
} = dependencies;
let mut builder = ExtensionRegistryBuilder::<Config>::with_event_sink(event_sink);
if let Some(state_db) = state_db {
+1
View File
@@ -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,
@@ -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()),