Activate selected executor plugin MCPs in app-server#27893
Conversation
…or-plugin-mcp # Conflicts: # codex-rs/app-server/BUILD.bazel # codex-rs/codex-mcp/src/catalog.rs # codex-rs/codex-mcp/src/connection_manager_tests.rs # codex-rs/core/src/mcp.rs # codex-rs/core/src/mcp_tool_call.rs # codex-rs/ext/mcp/src/executor_plugin/provider.rs
💡 Codex Reviewcodex/codex-rs/ext/mcp/Cargo.toml Line 17 in 06dc0ab Because this change adds Rust deps in Cargo.toml/Cargo.lock but leaves MODULE.bazel.lock untouched, Bazel lock checking can fail with drift. Please run ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d65890279
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| {EXECUTOR_ENV_NAME} = "{EXECUTOR_ENV_VALUE}" | ||
| "#, | ||
| toml::Value::String( | ||
| codex_utils_cargo_bin::cargo_bin("codex")? |
There was a problem hiding this comment.
Build sibling binaries for the new E2E under Cargo
On a clean non-Bazel just test -p codex-app-server run, this app-server integration test will not have CARGO_BIN_EXE_codex or CARGO_BIN_EXE_test_stdio_server because those binaries belong to sibling workspace packages, while the new extra_binaries_non_windows wiring only covers Bazel. That makes cargo_bin("codex")? fail before the test exercises the feature unless the developer already happened to build codex; please make these binaries available in the Cargo/nextest path as well or avoid resolving them from this test.
Useful? React with 👍 / 👎.
Why
#27870 teaches the MCP extension how to discover stdio MCP servers declared by a selected executor plugin, but app-server does not yet install that contributor or initialize its per-thread state. As a result,
thread/start.selectedCapabilityRootscan select the plugin while its MCP servers remain inactive.This PR closes that app-server wiring gap:
What changed
EnvironmentManager.thread/startincludes selected capability roots.The E2E verifies that:
Scope
selectedCapabilityRootsare unchanged.Verification
selected_executor_plugin_exposes_its_stdio_mcp_only_to_that_threadStack
Stacked on #27870.