mirror of
https://github.com/openai/codex.git
synced 2026-10-22 17:58:46 +00:00
## Why Hosted Codex Apps shared the `mcp_2026_07_28` protocol setting with other MCP servers, preventing independent protocol selection. ## What changed - Add `features.codex_apps_mcp_2026_07_28`, disabled by default, for the host-owned HTTP `codex_apps` server. Enabling it attempts 2026-07-28 discovery with Legacy fallback. - Keep other servers, including third-party registrations with Apps-like names or URLs and local stdio servers, governed by `mcp_2026_07_28`. - Support the new flag through `experimentalFeature/enablement/set` and refresh protocol settings in existing sessions. Track protocol mode per server when deciding whether to reuse connections. ## Testing Add coverage for independent feature and protocol selection, hosted event-stream protocol selection, standalone Legacy defaults and discovery fallback, and runtime enablement refreshing an existing app-server thread. GitOrigin-RevId: 640e8e251f0c45e5f4829cc2b73c3082cf42f715
53 lines
2.8 KiB
Markdown
53 lines
2.8 KiB
Markdown
# User verification cancellation (experimental)
|
|
|
|
Local UI clients can cancel a native user-verification RPC by sending
|
|
`userVerification/cancel` with `{requestId}` and the `experimentalApi` opt-in.
|
|
The result is an empty acknowledgment (`{}`). This API does not enable desktop
|
|
verification capability advertisement.
|
|
|
|
`requestId` is the original status, enroll, delete, or verify RPC's string or
|
|
integer ID on the same connection, not the server elicitation ID. Use fresh IDs
|
|
for each operation and a distinct ID for the cancel RPC. Unknown, finished,
|
|
unrelated, and other-connection requests are no-ops.
|
|
|
|
The acknowledgment confirms the cancellation signal without waiting for the OS
|
|
prompt to close. The original RPC completes independently, with
|
|
`cancelled/interrupted` when cancellation prevents completion. Cancellation
|
|
cannot roll back completed effects. It remains effective while a proof waits for
|
|
outbound queue capacity, but cannot retract a response already enqueued.
|
|
|
|
Canceling or resolving an elicitation does not itself stop a separate
|
|
`userVerification/verify` RPC. Clients must cancel that RPC separately and discard
|
|
late proofs after the approval is canceled or resolved. Only one native worker
|
|
runs per app-server; if an OS call remains active after cancellation or timeout,
|
|
subsequent local operations return `failed/providerError` until that worker exits.
|
|
|
|
# Hosted Codex Apps MCP protocol
|
|
|
|
The host-owned HTTP `codex_apps` server uses Legacy by default in app-server and
|
|
standalone Codex. To discover the 2026-07-28 protocol, set
|
|
`codex_apps_mcp_2026_07_28 = true` under `[features]`, or send a true runtime
|
|
override via `experimentalFeature/enablement/set`. Discovery falls back to Legacy
|
|
when the server does not support it. Explicit config takes precedence.
|
|
The dedicated setting does not apply to third-party HTTP or local `codex_app`
|
|
stdio servers. The existing `mcp_2026_07_28` flag still governs eligible other
|
|
servers, regardless of whether their names or URLs resemble hosted Apps.
|
|
App-server does not persist this selection.
|
|
|
|
# Thread removal
|
|
|
|
`thread/archive` and `thread/delete` reject attempts to remove a live internal
|
|
worker with JSON-RPC error `-32600`. The worker's owner controls its shutdown.
|
|
For example, a Guardian reviewer remains available to its parent conversation
|
|
after a client tries to archive or delete it.
|
|
|
|
After the owner releases the worker, its saved conversation can be archived or
|
|
deleted normally. Ordinary client-controlled threads keep their existing behavior.
|
|
|
|
# Amazon Bedrock authentication
|
|
|
|
If `model_providers.amazon-bedrock.aws.credential_export` is configured, Bedrock setup and
|
|
Bedrock login return an error without changing configuration or saved credentials. Remove the
|
|
exporter configuration before selecting another credential source. `aws.credential_export` and
|
|
`aws.profile` cannot be configured together.
|