mirror of
https://github.com/openai/codex.git
synced 2026-10-19 17:28:46 +00:00
Allow cached catalogs to satisfy MCP startup readiness (#47935)
## Why Required MCP servers can block startup while establishing a live connection even when a usable tool catalog is already cached. ## What changed - Add per-server `startup_readiness = "catalog"` to expose cached tools while the connection starts, retaining `"connection"` as the default. - Allow an eligible cached catalog to satisfy required-server startup validation and model binding capture. Explicit server or plugin requirements still wait for a live connection, and tool execution still requires the current connection. - Check tool filters and model visibility when accepting cached catalogs, and preserve cached catalog revisions for binding reuse. - Serialize the new setting, expose it in the configuration schema, and trace startup readiness at validation and model binding gates. GitOrigin-RevId: a1cbdf1757ebb5824cffe2cc56408be49711c422
This commit is contained in:
@@ -981,6 +981,7 @@ async fn load_plugins_loads_default_skills_and_mcp_servers() {
|
||||
environment_id: "local".to_string(),
|
||||
enabled: true,
|
||||
required: false,
|
||||
startup_readiness: Default::default(),
|
||||
supports_parallel_tool_calls: false,
|
||||
omit_tools_from: None,
|
||||
disabled_reason: None,
|
||||
@@ -1083,6 +1084,7 @@ enabled = true
|
||||
environment_id: "local".to_string(),
|
||||
enabled: true,
|
||||
required: false,
|
||||
startup_readiness: Default::default(),
|
||||
supports_parallel_tool_calls: false,
|
||||
omit_tools_from: None,
|
||||
disabled_reason: None,
|
||||
@@ -2186,6 +2188,7 @@ async fn load_plugins_uses_manifest_configured_component_paths() {
|
||||
environment_id: "local".to_string(),
|
||||
enabled: true,
|
||||
required: false,
|
||||
startup_readiness: Default::default(),
|
||||
supports_parallel_tool_calls: false,
|
||||
omit_tools_from: None,
|
||||
disabled_reason: None,
|
||||
@@ -2525,6 +2528,7 @@ async fn load_plugins_ignores_manifest_component_paths_without_dot_slash() {
|
||||
environment_id: "local".to_string(),
|
||||
enabled: true,
|
||||
required: false,
|
||||
startup_readiness: Default::default(),
|
||||
supports_parallel_tool_calls: false,
|
||||
omit_tools_from: None,
|
||||
disabled_reason: None,
|
||||
@@ -2780,6 +2784,7 @@ fn capability_index_filters_inactive_and_zero_capability_plugins() {
|
||||
environment_id: "local".to_string(),
|
||||
enabled: true,
|
||||
required: false,
|
||||
startup_readiness: Default::default(),
|
||||
supports_parallel_tool_calls: false,
|
||||
omit_tools_from: None,
|
||||
disabled_reason: None,
|
||||
|
||||
Reference in New Issue
Block a user