diff --git a/codex-rs/app-server/src/config_manager.rs b/codex-rs/app-server/src/config_manager.rs index 399c0c9fa8..ba11205b7a 100644 --- a/codex-rs/app-server/src/config_manager.rs +++ b/codex-rs/app-server/src/config_manager.rs @@ -33,7 +33,6 @@ pub(crate) struct ConfigManager { cloud_requirements: Arc>, arg0_paths: Arg0DispatchPaths, thread_config_loader: Arc>>, - host_name: Option, } impl ConfigManager { @@ -44,27 +43,6 @@ impl ConfigManager { cloud_requirements: CloudRequirementsLoader, arg0_paths: Arg0DispatchPaths, thread_config_loader: Arc, - ) -> Self { - Self::new_with_host_name( - codex_home, - cli_overrides, - loader_overrides, - cloud_requirements, - arg0_paths, - thread_config_loader, - codex_config::host_name(), - ) - } - - #[allow(clippy::too_many_arguments)] - fn new_with_host_name( - codex_home: PathBuf, - cli_overrides: Vec<(String, TomlValue)>, - loader_overrides: LoaderOverrides, - cloud_requirements: CloudRequirementsLoader, - arg0_paths: Arg0DispatchPaths, - thread_config_loader: Arc, - host_name: Option, ) -> Self { Self { codex_home, @@ -74,7 +52,6 @@ impl ConfigManager { cloud_requirements: Arc::new(RwLock::new(cloud_requirements)), arg0_paths, thread_config_loader: Arc::new(RwLock::new(thread_config_loader)), - host_name, } } @@ -229,7 +206,6 @@ impl ConfigManager { .fallback_cwd(fallback_cwd) .cloud_requirements(self.current_cloud_requirements()) .thread_config_loader(self.current_thread_config_loader()) - .host_name(self.host_name.clone()) .build() .await?; self.apply_runtime_feature_enablement(&mut config); @@ -257,7 +233,6 @@ impl ConfigManager { self.loader_overrides.clone(), self.current_cloud_requirements(), thread_config_loader.as_ref(), - self.host_name.as_deref(), ) .await } @@ -285,16 +260,14 @@ impl ConfigManager { cli_overrides: Vec<(String, TomlValue)>, loader_overrides: LoaderOverrides, cloud_requirements: CloudRequirementsLoader, - host_name: Option, ) -> Self { - Self::new_with_host_name( + Self::new( codex_home, cli_overrides, loader_overrides, cloud_requirements, Arg0DispatchPaths::default(), Arc::new(codex_config::NoopThreadConfigLoader), - host_name, ) } @@ -305,7 +278,6 @@ impl ConfigManager { Vec::new(), LoaderOverrides::without_managed_config_for_tests(), CloudRequirementsLoader::default(), - /*host_name*/ None, ) } } diff --git a/codex-rs/app-server/src/config_manager_service_tests.rs b/codex-rs/app-server/src/config_manager_service_tests.rs index 02c76e3b5e..108254859d 100644 --- a/codex-rs/app-server/src/config_manager_service_tests.rs +++ b/codex-rs/app-server/src/config_manager_service_tests.rs @@ -226,7 +226,6 @@ async fn read_includes_origins_and_layers() { vec![], LoaderOverrides::with_managed_config_path_for_tests(managed_path.clone()), CloudRequirementsLoader::default(), - /*host_name*/ None, ); let response = service @@ -305,7 +304,6 @@ writable_roots = ["~/code"] vec![], loader_overrides, CloudRequirementsLoader::default(), - /*host_name*/ None, ); let response = service @@ -346,7 +344,6 @@ async fn write_value_reports_override() { vec![], LoaderOverrides::with_managed_config_path_for_tests(managed_path.clone()), CloudRequirementsLoader::default(), - /*host_name*/ None, ); let result = service @@ -446,7 +443,6 @@ async fn invalid_user_value_rejected_even_if_overridden_by_managed() { vec![], LoaderOverrides::with_managed_config_path_for_tests(managed_path.clone()), CloudRequirementsLoader::default(), - /*host_name*/ None, ); let error = service @@ -514,7 +510,6 @@ async fn write_value_rejects_feature_requirement_conflict() { ..Default::default() })) }), - /*host_name*/ None, ); let error = service @@ -561,7 +556,6 @@ async fn write_value_rejects_profile_feature_requirement_conflict() { ..Default::default() })) }), - /*host_name*/ None, ); let error = service @@ -612,7 +606,6 @@ async fn read_reports_managed_overrides_user_and_session_flags() { cli_overrides, LoaderOverrides::with_managed_config_path_for_tests(managed_path.clone()), CloudRequirementsLoader::default(), - /*host_name*/ None, ); let response = service @@ -666,7 +659,6 @@ async fn write_value_reports_managed_override() { vec![], LoaderOverrides::with_managed_config_path_for_tests(managed_path.clone()), CloudRequirementsLoader::default(), - /*host_name*/ None, ); let result = service diff --git a/codex-rs/config/src/config_requirements.rs b/codex-rs/config/src/config_requirements.rs index ef0602ae24..52fb24f13e 100644 --- a/codex-rs/config/src/config_requirements.rs +++ b/codex-rs/config/src/config_requirements.rs @@ -842,10 +842,10 @@ pub enum ResidencyRequirement { impl ConfigRequirementsToml { pub fn apply_remote_sandbox_config(&mut self, hostname: Option<&str>) { - let Some(hostname) = hostname.and_then(normalize_hostname) else { + let Some(remote_sandbox_config) = self.remote_sandbox_config.as_ref() else { return; }; - let Some(remote_sandbox_config) = self.remote_sandbox_config.as_ref() else { + let Some(hostname) = hostname.and_then(normalize_hostname) else { return; }; let Some(matched_config) = remote_sandbox_config diff --git a/codex-rs/config/src/loader/README.md b/codex-rs/config/src/loader/README.md index 316027318f..28750c4929 100644 --- a/codex-rs/config/src/loader/README.md +++ b/codex-rs/config/src/loader/README.md @@ -10,7 +10,7 @@ This module is the canonical place to **load and describe Codex configuration la Exported from `codex_config::loader`: -- `load_config_layers_state(fs, codex_home, cwd_opt, cli_overrides, overrides, cloud_requirements, thread_config_loader, host_name) -> ConfigLayerStack` +- `load_config_layers_state(fs, codex_home, cwd_opt, cli_overrides, overrides, cloud_requirements, thread_config_loader) -> ConfigLayerStack` - `ConfigLayerStack` - `effective_config() -> toml::Value` - `origins() -> HashMap` @@ -59,7 +59,6 @@ let layers = load_config_layers_state( LoaderOverrides::default(), CloudRequirementsLoader::default(), &NoopThreadConfigLoader, - /*host_name*/ None, ).await?; let effective = layers.effective_config(); diff --git a/codex-rs/config/src/loader/macos.rs b/codex-rs/config/src/loader/macos.rs index 2525429720..3a9fc3a0ea 100644 --- a/codex-rs/config/src/loader/macos.rs +++ b/codex-rs/config/src/loader/macos.rs @@ -65,7 +65,6 @@ fn load_managed_admin_config() -> io::Result> { pub(crate) async fn load_managed_admin_requirements_toml( target: &mut ConfigRequirementsWithSources, override_base64: Option<&str>, - host_name: Option<&str>, ) -> io::Result<()> { if let Some(encoded) = override_base64 { let trimmed = encoded.trim(); @@ -77,7 +76,6 @@ pub(crate) async fn load_managed_admin_requirements_toml( target, managed_preferences_requirements_source(), parse_managed_requirements_base64(trimmed)?, - host_name, ); return Ok(()); } @@ -89,7 +87,6 @@ pub(crate) async fn load_managed_admin_requirements_toml( target, managed_preferences_requirements_source(), requirements, - host_name, ); } Ok(()) diff --git a/codex-rs/config/src/loader/mod.rs b/codex-rs/config/src/loader/mod.rs index e930e8b622..6375490354 100644 --- a/codex-rs/config/src/loader/mod.rs +++ b/codex-rs/config/src/loader/mod.rs @@ -91,7 +91,6 @@ pub async fn load_config_layers_state( overrides: LoaderOverrides, cloud_requirements: CloudRequirementsLoader, thread_config_loader: &dyn ThreadConfigLoader, - host_name: Option<&str>, ) -> io::Result { let ignore_user_config = overrides.ignore_user_config; let ignore_user_and_project_exec_policy_rules = @@ -103,7 +102,6 @@ pub async fn load_config_layers_state( &mut config_requirements_toml, RequirementSource::CloudRequirements, requirements, - host_name, ); } @@ -113,19 +111,12 @@ pub async fn load_config_layers_state( overrides .macos_managed_config_requirements_base64 .as_deref(), - host_name, ) .await?; // Honor the system requirements.toml location. let requirements_toml_file = system_requirements_toml_file_with_overrides(&overrides)?; - load_requirements_toml( - fs, - &mut config_requirements_toml, - &requirements_toml_file, - host_name, - ) - .await?; + load_requirements_toml(fs, &mut config_requirements_toml, &requirements_toml_file).await?; // Make a best-effort to support the legacy `managed_config.toml` as a // requirements specification. @@ -134,7 +125,6 @@ pub async fn load_config_layers_state( load_requirements_from_legacy_scheme( &mut config_requirements_toml, loaded_config_layers.clone(), - host_name, ) .await?; @@ -388,7 +378,6 @@ pub async fn load_requirements_toml( fs: &dyn ExecutorFileSystem, config_requirements_toml: &mut ConfigRequirementsWithSources, requirements_toml_file: &AbsolutePathBuf, - host_name: Option<&str>, ) -> io::Result<()> { match fs .read_file_text(requirements_toml_file, /*sandbox*/ None) @@ -421,7 +410,6 @@ pub async fn load_requirements_toml( file: requirements_toml_file.clone(), }, requirements_config, - host_name, ); } Err(e) => { @@ -554,7 +542,6 @@ fn windows_program_data_dir_from_known_folder() -> io::Result { async fn load_requirements_from_legacy_scheme( config_requirements_toml: &mut ConfigRequirementsWithSources, loaded_config_layers: LoadedConfigLayers, - host_name: Option<&str>, ) -> io::Result<()> { // In this implementation, earlier layers cannot be overwritten by later // layers, so list managed_config_from_mdm first because it has the highest @@ -591,7 +578,6 @@ async fn load_requirements_from_legacy_scheme( config_requirements_toml, source, ConfigRequirementsToml::from(legacy_config), - host_name, ); } @@ -602,9 +588,11 @@ pub(super) fn merge_requirements_with_remote_sandbox_config( target: &mut ConfigRequirementsWithSources, source: RequirementSource, mut requirements: ConfigRequirementsToml, - host_name: Option<&str>, ) { - requirements.apply_remote_sandbox_config(host_name); + if requirements.remote_sandbox_config.is_some() { + let host_name = crate::host_name(); + requirements.apply_remote_sandbox_config(host_name.as_deref()); + } target.merge_unset_fields(source, requirements); } diff --git a/codex-rs/core/src/config/config_loader_tests.rs b/codex-rs/core/src/config/config_loader_tests.rs index 00d67ae1e3..5505cf2baf 100644 --- a/codex-rs/core/src/config/config_loader_tests.rs +++ b/codex-rs/core/src/config/config_loader_tests.rs @@ -28,6 +28,7 @@ use codex_exec_server::LOCAL_FS; use codex_protocol::config_types::TrustLevel; use codex_protocol::config_types::WebSearchMode; use codex_protocol::protocol::AskForApproval; +#[cfg(target_os = "macos")] use codex_protocol::protocol::SandboxPolicy; use codex_utils_absolute_path::AbsolutePathBuf; use pretty_assertions::assert_eq; @@ -107,7 +108,6 @@ async fn returns_config_error_for_invalid_user_config_toml() { LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await .expect_err("expected error"); @@ -139,7 +139,6 @@ async fn ignore_user_config_keeps_empty_user_layer() -> std::io::Result<()> { }, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -171,7 +170,6 @@ async fn ignore_rules_marks_config_stack_for_exec_policy_rule_skip() -> std::io: }, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -197,7 +195,6 @@ async fn returns_config_error_for_invalid_managed_config_toml() { overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await .expect_err("expected error"); @@ -284,7 +281,6 @@ extra = true overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await .expect("load config"); @@ -319,7 +315,6 @@ async fn returns_empty_when_all_layers_missing() { overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await .expect("load layers"); @@ -395,7 +390,6 @@ async fn includes_thread_config_layers_in_stack() -> anyhow::Result<()> { features: BTreeMap::from([("plugins".to_string(), false)]), ..Default::default() })]), - /*host_name*/ None, ) .await?; @@ -472,7 +466,6 @@ flag = false overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await .expect("load config"); @@ -576,7 +569,6 @@ allowed_sandbox_modes = ["read-only"] loader_overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -639,7 +631,6 @@ allowed_approval_policies = ["never"] loader_overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -681,7 +672,6 @@ personality = true LOCAL_FS.as_ref(), &mut config_requirements_toml, &requirements_file, - /*host_name*/ None, ) .await?; @@ -797,7 +787,6 @@ allowed_approval_policies = ["on-request"] })) }), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -857,7 +846,6 @@ allowed_approval_policies = ["on-request"] LOCAL_FS.as_ref(), &mut config_requirements_toml, &AbsolutePathBuf::try_from(requirements_file)?, - /*host_name*/ None, ) .await?; @@ -879,54 +867,6 @@ allowed_approval_policies = ["on-request"] Ok(()) } -#[tokio::test(flavor = "current_thread")] -async fn system_remote_sandbox_config_keeps_cloud_sandbox_modes() -> anyhow::Result<()> { - let tmp = tempdir()?; - let requirements_file = tmp.path().join("requirements.toml"); - tokio::fs::write( - &requirements_file, - r#" -[[remote_sandbox_config]] -hostname_patterns = ["runner-*.ci.example.com"] -allowed_sandbox_modes = ["read-only", "workspace-write"] -"#, - ) - .await?; - - let cloud_source = RequirementSource::CloudRequirements; - let mut config_requirements_toml = ConfigRequirementsWithSources::default(); - config_requirements_toml.merge_unset_fields( - cloud_source.clone(), - toml::from_str( - r#" -allowed_sandbox_modes = ["read-only"] -"#, - )?, - ); - load_requirements_toml( - LOCAL_FS.as_ref(), - &mut config_requirements_toml, - &AbsolutePathBuf::try_from(requirements_file)?, - Some("runner-01.ci.example.com"), - ) - .await?; - let config_requirements: ConfigRequirements = config_requirements_toml.try_into()?; - - assert_eq!( - config_requirements - .sandbox_policy - .can_set(&SandboxPolicy::new_workspace_write_policy()), - Err(ConstraintError::InvalidValue { - field_name: "sandbox_mode", - candidate: "WorkspaceWrite".into(), - allowed: "[ReadOnly]".into(), - requirement_source: cloud_source, - }) - ); - - Ok(()) -} - #[tokio::test(flavor = "current_thread")] async fn load_requirements_toml_resolves_deny_read_against_parent() -> anyhow::Result<()> { let tmp = tempdir()?; @@ -948,7 +888,6 @@ deny_read = ["./sensitive", "../shared/secret.txt"] LOCAL_FS.as_ref(), &mut config_requirements_toml, &requirements_file, - /*host_name*/ None, ) .await?; @@ -1003,7 +942,6 @@ deny_read = ["./sensitive/**/*.txt"] LOCAL_FS.as_ref(), &mut config_requirements_toml, &requirements_file, - /*host_name*/ None, ) .await?; @@ -1072,7 +1010,6 @@ async fn load_config_layers_includes_cloud_requirements() -> anyhow::Result<()> LoaderOverrides::default(), cloud_requirements, &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1135,7 +1072,6 @@ async fn load_config_layers_includes_cloud_hook_requirements() -> anyhow::Result LoaderOverrides::default(), cloud_requirements, &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1152,53 +1088,6 @@ async fn load_config_layers_includes_cloud_hook_requirements() -> anyhow::Result Ok(()) } -#[tokio::test] -async fn load_config_layers_applies_matching_remote_sandbox_config() -> anyhow::Result<()> { - let tmp = tempdir()?; - let codex_home = tmp.path().join("home"); - tokio::fs::create_dir_all(&codex_home).await?; - let cwd = AbsolutePathBuf::from_absolute_path(tmp.path())?; - - let requirements: ConfigRequirementsToml = toml::from_str( - r#" - allowed_sandbox_modes = ["read-only"] - - [[remote_sandbox_config]] - hostname_patterns = ["runner-*.ci.example.com"] - allowed_sandbox_modes = ["read-only", "workspace-write"] - "#, - )?; - let cloud_requirements = CloudRequirementsLoader::new(async move { Ok(Some(requirements)) }); - let layers = load_config_layers_state( - LOCAL_FS.as_ref(), - &codex_home, - Some(cwd), - &[] as &[(String, TomlValue)], - LoaderOverrides::default(), - cloud_requirements, - &codex_config::NoopThreadConfigLoader, - Some("runner-01.ci.example.com"), - ) - .await?; - - assert_eq!( - layers.requirements_toml().allowed_sandbox_modes, - Some(vec![ - codex_config::SandboxModeRequirement::ReadOnly, - codex_config::SandboxModeRequirement::WorkspaceWrite, - ]) - ); - assert!( - layers - .requirements() - .sandbox_policy - .can_set(&SandboxPolicy::new_workspace_write_policy()) - .is_ok() - ); - - Ok(()) -} - #[tokio::test] async fn load_config_layers_fails_when_cloud_requirements_loader_fails() -> anyhow::Result<()> { let tmp = tempdir()?; @@ -1220,7 +1109,6 @@ async fn load_config_layers_fails_when_cloud_requirements_loader_fails() -> anyh )) }), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await .expect_err("cloud requirements failure should fail closed"); @@ -1269,7 +1157,6 @@ async fn project_layers_prefer_closest_cwd() -> std::io::Result<()> { LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1416,7 +1303,6 @@ async fn project_layer_is_added_when_dot_codex_exists_without_config_toml() -> s LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1458,7 +1344,6 @@ async fn codex_home_is_not_loaded_as_project_layer_from_home_dir() -> std::io::R LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1517,7 +1402,6 @@ async fn codex_home_within_project_tree_is_not_double_loaded() -> std::io::Resul LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1590,7 +1474,6 @@ async fn project_layers_disabled_when_untrusted_or_unknown() -> std::io::Result< LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; let project_layers_untrusted: Vec<_> = layers_untrusted @@ -1631,7 +1514,6 @@ async fn project_layers_disabled_when_untrusted_or_unknown() -> std::io::Result< LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; let project_layers_unknown: Vec<_> = layers_unknown @@ -1699,7 +1581,6 @@ async fn project_trust_does_not_match_configured_alias_for_canonical_cwd() -> st LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1854,7 +1735,6 @@ async fn invalid_project_config_ignored_when_untrusted_or_unknown() -> std::io:: LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; let project_layers: Vec<_> = layers @@ -1924,7 +1804,6 @@ async fn project_layer_without_config_toml_is_disabled_when_untrusted_or_unknown LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; let project_layers: Vec<_> = layers @@ -1986,7 +1865,6 @@ async fn cli_overrides_with_relative_paths_do_not_break_trust_check() -> std::io LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -2031,7 +1909,6 @@ async fn project_root_markers_supports_alternate_markers() -> std::io::Result<() LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; diff --git a/codex-rs/core/src/config/config_tests.rs b/codex-rs/core/src/config/config_tests.rs index ce6cf03125..c9a8b8818e 100644 --- a/codex-rs/core/src/config/config_tests.rs +++ b/codex-rs/core/src/config/config_tests.rs @@ -2538,7 +2538,6 @@ async fn managed_config_overrides_oauth_store_mode() -> anyhow::Result<()> { overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; let cfg = @@ -2674,7 +2673,6 @@ async fn managed_config_wins_over_cli_overrides() -> anyhow::Result<()> { overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; diff --git a/codex-rs/core/src/config/mod.rs b/codex-rs/core/src/config/mod.rs index ad88fbe0eb..3d0089da8b 100644 --- a/codex-rs/core/src/config/mod.rs +++ b/codex-rs/core/src/config/mod.rs @@ -759,7 +759,7 @@ impl AuthManagerConfig for Config { } } -#[derive(Clone)] +#[derive(Clone, Default)] pub struct ConfigBuilder { codex_home: Option, cli_overrides: Option>, @@ -768,22 +768,6 @@ pub struct ConfigBuilder { cloud_requirements: CloudRequirementsLoader, thread_config_loader: Option>, fallback_cwd: Option, - host_name: Option, -} - -impl Default for ConfigBuilder { - fn default() -> Self { - Self { - codex_home: None, - cli_overrides: None, - harness_overrides: None, - loader_overrides: None, - cloud_requirements: CloudRequirementsLoader::default(), - thread_config_loader: None, - fallback_cwd: None, - host_name: codex_config::host_name(), - } - } } impl ConfigBuilder { @@ -825,11 +809,6 @@ impl ConfigBuilder { self } - pub fn host_name(mut self, host_name: Option) -> Self { - self.host_name = host_name; - self - } - pub async fn build(self) -> std::io::Result { let Self { codex_home, @@ -839,7 +818,6 @@ impl ConfigBuilder { cloud_requirements, thread_config_loader, fallback_cwd, - host_name, } = self; let codex_home = match codex_home { Some(codex_home) => AbsolutePathBuf::from_absolute_path(codex_home)?, @@ -864,7 +842,6 @@ impl ConfigBuilder { thread_config_loader .as_deref() .unwrap_or(&codex_config::NoopThreadConfigLoader), - host_name.as_deref(), ) .await?; let merged_toml = config_layer_stack.effective_config(); @@ -1047,7 +1024,6 @@ pub async fn load_config_as_toml_with_cli_and_loader_overrides( loader_overrides, CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; @@ -1229,7 +1205,6 @@ pub async fn load_global_mcp_servers( LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await?; let merged_toml = config_layer_stack.effective_config(); diff --git a/codex-rs/core/src/network_proxy_loader.rs b/codex-rs/core/src/network_proxy_loader.rs index f168b79f45..41ef46e3fd 100644 --- a/codex-rs/core/src/network_proxy_loader.rs +++ b/codex-rs/core/src/network_proxy_loader.rs @@ -54,7 +54,6 @@ async fn build_config_state_with_mtimes() -> Result<(ConfigState, Vec, for LoaderOverrides::default(), CloudRequirementsLoader::default(), &codex_config::NoopThreadConfigLoader, - /*host_name*/ None, ) .await {