mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
66533ddc61
## Why #17763 moved sandbox-state delivery for MCP tool calls to request `_meta` via the `codex/sandbox-state-meta` experimental capability. Keeping the older `codex/sandbox-state` capability meant Codex still maintained a second transport that pushed updates with the custom `codex/sandbox-state/update` request at server startup and when the session sandbox policy changed. That duplicate MCP path is redundant with the per-tool-call metadata path and makes the sandbox-state contract larger than needed. The existing managed network proxy refresh on sandbox-policy changes is still needed, so this keeps that behavior separate from the removed MCP notification. ## What Changed - Removed the exported `MCP_SANDBOX_STATE_CAPABILITY` and `MCP_SANDBOX_STATE_METHOD` constants. - Removed detection of `codex/sandbox-state` during MCP initialization and stopped sending `codex/sandbox-state/update` at server startup. - Removed the `McpConnectionManager::notify_sandbox_state_change` plumbing while preserving the managed network proxy refresh when a user turn changes sandbox policy. - Slimmed `McpConnectionManager::new` so startup paths pass only the initial `SandboxPolicy` needed for MCP elicitation state. - Kept `codex/sandbox-state-meta` support intact; servers that opt in still receive the current `SandboxState` on tool-call request `_meta` ([remaining call path](https://github.com/openai/codex/blob/ff2d3c1e72ff08ce13743b99605d19d338edd51c/codex-rs/core/src/mcp_tool_call.rs#L487-L526)). - Added regression coverage for refreshing the live managed network proxy on a per-turn sandbox-policy change. ## Verification - `cargo test -p codex-core new_turn_refreshes_managed_network_proxy_for_sandbox_change` - `cargo test -p codex-mcp`
46 lines
1.8 KiB
Rust
46 lines
1.8 KiB
Rust
pub(crate) mod mcp;
|
|
pub(crate) mod mcp_connection_manager;
|
|
pub(crate) mod mcp_tool_names;
|
|
|
|
pub use mcp::CODEX_APPS_MCP_SERVER_NAME;
|
|
pub use mcp::McpAuthStatusEntry;
|
|
pub use mcp::McpConfig;
|
|
pub use mcp::McpManager;
|
|
pub use mcp::McpOAuthLoginConfig;
|
|
pub use mcp::McpOAuthLoginSupport;
|
|
pub use mcp::McpOAuthScopesSource;
|
|
pub use mcp::McpServerStatusSnapshot;
|
|
pub use mcp::McpSnapshotDetail;
|
|
pub use mcp::ResolvedMcpOAuthScopes;
|
|
pub use mcp::ToolPluginProvenance;
|
|
pub use mcp::canonical_mcp_server_key;
|
|
pub use mcp::collect_mcp_server_status_snapshot;
|
|
pub use mcp::collect_mcp_server_status_snapshot_with_detail;
|
|
pub use mcp::collect_mcp_snapshot;
|
|
pub use mcp::collect_mcp_snapshot_from_manager;
|
|
pub use mcp::collect_mcp_snapshot_from_manager_with_detail;
|
|
pub use mcp::collect_mcp_snapshot_with_detail;
|
|
pub use mcp::collect_missing_mcp_dependencies;
|
|
pub use mcp::compute_auth_statuses;
|
|
pub use mcp::configured_mcp_servers;
|
|
pub use mcp::discover_supported_scopes;
|
|
pub use mcp::effective_mcp_servers;
|
|
pub use mcp::group_tools_by_server;
|
|
pub use mcp::mcp_permission_prompt_is_auto_approved;
|
|
pub use mcp::oauth_login_support;
|
|
pub use mcp::qualified_mcp_tool_name_prefix;
|
|
pub use mcp::resolve_oauth_scopes;
|
|
pub use mcp::should_retry_without_scopes;
|
|
pub use mcp::split_qualified_tool_name;
|
|
pub use mcp::tool_plugin_provenance;
|
|
pub use mcp::with_codex_apps_mcp;
|
|
pub use mcp_connection_manager::CodexAppsToolsCacheKey;
|
|
pub use mcp_connection_manager::DEFAULT_STARTUP_TIMEOUT;
|
|
pub use mcp_connection_manager::MCP_SANDBOX_STATE_META_CAPABILITY;
|
|
pub use mcp_connection_manager::McpConnectionManager;
|
|
pub use mcp_connection_manager::SandboxState;
|
|
pub use mcp_connection_manager::ToolInfo;
|
|
pub use mcp_connection_manager::codex_apps_tools_cache_key;
|
|
pub use mcp_connection_manager::declared_openai_file_input_param_names;
|
|
pub use mcp_connection_manager::filter_non_codex_apps_mcp_tools_only;
|