mirror of
https://github.com/openai/codex.git
synced 2026-11-13 22:47:20 +00:00
Support threadless MCP connections without event channels (#34408)
## What changed - Make the MCP connection manager's event sender optional. - Skip startup notifications when a caller has no session event stream. - Decline interactive MCP elicitations in that mode while allowing the underlying operation to continue. - Update threadless resource reads, status snapshots, and connector discovery to use the channel-free path. ## Testing - Extend the app-server MCP resource test to verify that a threadless resource read declines an elicitation and still returns the resource contents. GitOrigin-RevId: 65fea152adbc02a78e09a40cae4134b6dccffd34
This commit is contained in:
1 parent
b7e39aa316
commit
19940967bd
14 files changed
+185
-124
No files matched your search
@@ -181,9 +181,9 @@ impl CodexAppsStartupReconnect {
|
||||
mut self,
|
||||
submit_id: String,
|
||||
server_name: String,
|
||||
tx_event: Sender<Event>,
|
||||
tx_event: Option<Sender<Event>>,
|
||||
) -> Self {
|
||||
self.startup_status_context = Some(CodexAppsStartupStatusContext {
|
||||
self.startup_status_context = tx_event.map(|tx_event| CodexAppsStartupStatusContext {
|
||||
submit_id,
|
||||
server_name,
|
||||
tx_event,
|
||||
@@ -277,7 +277,7 @@ struct ManagedClientStartup {
|
||||
server: EffectiveMcpServer,
|
||||
store_mode: OAuthCredentialsStoreMode,
|
||||
keyring_backend_kind: AuthKeyringBackendKind,
|
||||
tx_event: Sender<Event>,
|
||||
tx_event: Option<Sender<Event>>,
|
||||
elicitation_requests: ElicitationRequestManager,
|
||||
codex_apps_tools_cache_context: Option<ConnectorRuntimeContext<ToolInfo>>,
|
||||
tool_catalog_cache_context: Option<McpToolCatalogCacheContext>,
|
||||
@@ -423,7 +423,7 @@ impl AsyncManagedClient {
|
||||
store_mode: OAuthCredentialsStoreMode,
|
||||
keyring_backend_kind: AuthKeyringBackendKind,
|
||||
cancel_token: CancellationToken,
|
||||
tx_event: Sender<Event>,
|
||||
tx_event: Option<Sender<Event>>,
|
||||
elicitation_requests: ElicitationRequestManager,
|
||||
codex_apps_tools_cache_context: Option<ConnectorRuntimeContext<ToolInfo>>,
|
||||
tool_catalog_cache_context: Option<McpToolCatalogCacheContext>,
|
||||
@@ -1003,7 +1003,7 @@ struct StartServerTaskParams {
|
||||
startup_timeout: Option<Duration>, // TODO: cancel_token should handle this.
|
||||
tool_timeout: Duration,
|
||||
tool_filter: ToolFilter,
|
||||
tx_event: Sender<Event>,
|
||||
tx_event: Option<Sender<Event>>,
|
||||
elicitation_requests: ElicitationRequestManager,
|
||||
codex_apps_tools_cache_context: Option<ConnectorRuntimeContext<ToolInfo>>,
|
||||
tool_catalog_cache_context: Option<McpToolCatalogCacheContext>,
|
||||
|
||||
Reference in new issue
Block a user