Skip to content

app-server: propagate nested experimental gating for AskForApproval::Reject - #14191

Merged
celia-oai merged 2 commits into
mainfrom
dh--app-server-reject-experimental
Mar 10, 2026
Merged

celia-oai merged 2 commits into
mainfrom
dh--app-server-reject-experimental

Conversation

@dylan-hurd-oai

@dylan-hurd-oai dylan-hurd-oai commented Mar 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This change makes AskForApproval::Reject gate correctly anywhere it appears inside otherwise-stable app-server protocol types.

Previously, experimental gating for approval_policy: Reject was handled with request-specific logic in ClientRequest detection. That covered a few request params types, but it did not generalize to other nested uses such as ProfileV2, Config, ConfigReadResponse, or ConfigRequirements.

This PR replaces that ad hoc handling with a generic nested experimental propagation mechanism.

Testing

seeing this when run app-server-test-client without experimental api enabled:

 initialize response: InitializeResponse { user_agent: "codex-toy-app-server/0.0.0 (Mac OS 26.3.1; arm64) vscode/2.4.36 (codex-toy-app-server; 0.0.0)" }
> {
>   "id": "50244f6a-270a-425d-ace0-e9e98205bde7",
>   "method": "thread/start",
>   "params": {
>     "approvalPolicy": {
>       "reject": {
>         "mcp_elicitations": false,
>         "request_permissions": true,
>         "rules": false,
>         "sandbox_approval": true
>       }
>     },
>     "baseInstructions": null,
>     "config": null,
>     "cwd": null,
>     "developerInstructions": null,
>     "dynamicTools": null,
>     "ephemeral": null,
>     "experimentalRawEvents": false,
>     "mockExperimentalField": null,
>     "model": null,
>     "modelProvider": null,
>     "persistExtendedHistory": false,
>     "personality": null,
>     "sandbox": null,
>     "serviceName": null
>   }
> }
< {
<   "error": {
<     "code": -32600,
<     "message": "askForApproval.reject requires experimentalApi capability"
<   },
<   "id": "50244f6a-270a-425d-ace0-e9e98205bde7"
< }
[verified] thread/start rejected approvalPolicy=Reject without experimentalApi

@celia-oai
celia-oai marked this pull request as ready for review March 10, 2026 21:29
@celia-oai
celia-oai force-pushed the dh--app-server-reject-experimental branch from 30799d4 to 04f0cd5 Compare March 10, 2026 21:57
@celia-oai celia-oai changed the title fix(app-server) mark approval_policy: reject as experimental app-server: propagate nested experimental gating for AskForApproval::Reject Mar 10, 2026
@celia-oai
celia-oai requested review from owenlin0 and removed request for celia-oai March 10, 2026 22:02
@celia-oai
celia-oai enabled auto-merge (squash) March 10, 2026 22:08
@celia-oai
celia-oai merged commit 1516305 into main Mar 10, 2026
31 checks passed
@celia-oai
celia-oai deleted the dh--app-server-reject-experimental branch March 10, 2026 22:21
@github-actions github-actions Bot locked and limited conversation to collaborators Mar 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants