Make code mode session provider selection explicit

This commit is contained in:
Channing Conger
2026-06-01 15:38:53 -07:00
parent e19307bb11
commit e58037e2ce
7 changed files with 20 additions and 12 deletions

View File

@@ -308,7 +308,8 @@ impl ExternalAgentConfigRequestProcessor {
initial_history: InitialHistory::Forked(rollout_items),
session_source: None,
thread_source: None,
code_mode_session_provider_selection: Default::default(),
code_mode_session_provider_selection:
codex_code_mode::SessionProviderSelection::InProcess,
dynamic_tools: Vec::new(),
persist_extended_history: false,
metrics_service_name: None,

View File

@@ -1105,7 +1105,8 @@ impl ThreadRequestProcessor {
},
session_source: None,
thread_source,
code_mode_session_provider_selection: Default::default(),
code_mode_session_provider_selection:
codex_code_mode::SessionProviderSelection::InProcess,
dynamic_tools: core_dynamic_tools,
persist_extended_history: false,
metrics_service_name: service_name,

View File

@@ -157,9 +157,8 @@ pub trait CodeModeSessionProvider: Send + Sync {
}
/// Selects how a code-mode session is provisioned for a Codex session.
#[derive(Clone, Default)]
#[derive(Clone)]
pub enum SessionProviderSelection {
#[default]
InProcess,
Disabled,
Custom(Arc<dyn CodeModeSessionProvider>),
@@ -970,11 +969,11 @@ mod tests {
}
#[tokio::test]
async fn provider_selection_defaults_to_in_process_and_can_disable() {
async fn provider_selection_can_use_in_process_or_disable() {
let delegate = Arc::new(NoopCodeModeSessionDelegate);
assert!(
SessionProviderSelection::default()
SessionProviderSelection::InProcess
.create_session(delegate.clone())
.await
.unwrap()

View File

@@ -577,7 +577,8 @@ impl ThreadManager {
initial_history: InitialHistory::New,
session_source: None,
thread_source: None,
code_mode_session_provider_selection: Default::default(),
code_mode_session_provider_selection:
codex_code_mode::SessionProviderSelection::InProcess,
dynamic_tools,
persist_extended_history,
metrics_service_name: None,
@@ -948,7 +949,9 @@ impl ThreadManager {
}
pub(crate) fn agent_control(&self) -> AgentControl {
self.agent_control_with_code_mode_session_provider_selection(Default::default())
self.agent_control_with_code_mode_session_provider_selection(
codex_code_mode::SessionProviderSelection::InProcess,
)
}
fn agent_control_with_code_mode_session_provider_selection(

View File

@@ -348,7 +348,8 @@ async fn start_thread_rejects_explicit_local_environment_when_default_provider_i
initial_history: InitialHistory::New,
session_source: None,
thread_source: None,
code_mode_session_provider_selection: Default::default(),
code_mode_session_provider_selection:
codex_code_mode::SessionProviderSelection::InProcess,
dynamic_tools: Vec::new(),
persist_extended_history: false,
metrics_service_name: None,
@@ -532,7 +533,8 @@ async fn start_thread_keeps_internal_threads_hidden_from_normal_lookups() {
InternalSessionSource::MemoryConsolidation,
)),
thread_source: None,
code_mode_session_provider_selection: Default::default(),
code_mode_session_provider_selection:
codex_code_mode::SessionProviderSelection::InProcess,
dynamic_tools: Vec::new(),
persist_extended_history: false,
metrics_service_name: None,

View File

@@ -751,7 +751,8 @@ async fn subagent_stop_replaces_stop_and_skips_internal_subagents() -> Result<()
initial_history: InitialHistory::New,
session_source: Some(SessionSource::SubAgent(SubAgentSource::Review)),
thread_source: None,
code_mode_session_provider_selection: Default::default(),
code_mode_session_provider_selection:
codex_code_mode::SessionProviderSelection::InProcess,
dynamic_tools: Vec::new(),
persist_extended_history: false,
metrics_service_name: None,

View File

@@ -247,7 +247,8 @@ impl MemoryStartupContext {
InternalSessionSource::MemoryConsolidation,
)),
thread_source: Some(ThreadSource::MemoryConsolidation),
code_mode_session_provider_selection: Default::default(),
code_mode_session_provider_selection:
codex_code_mode::SessionProviderSelection::InProcess,
dynamic_tools: Vec::new(),
persist_extended_history: false,
metrics_service_name: None,