VS Code custom permission profile overrides on-request/auto_review with never/user
What version of the IDE extension are you using?
26.707.71524
What subscription do you have?
Plus
Which IDE are you using?
VS Code
What platform is your computer?
Linux 6.18.33.2-microsoft-standard-WSL2 x86_64 x86_64
What issue are you seeing?
Selecting a named custom permission profile in the VS Code extension overrides the configured approval policy and approval reviewer.
My ~/.codex/config.toml contains:
approval_policy = "on-request"
approvals_reviewer = "auto_review"
default_permissions = workspace-network
[permissions.workspace-network]
extends = ":workspace"
[permissions.workspace-network.network]
enabled = true
allow_upstream_proxy = true
[permissions.workspace-network.network.domains]
"*" = "allow"
When I create a new chat and select the built-in “Approve for me” mode, the extension correctly starts the turn with:
requestApprovalPolicy=on-request
requestApprovalsReviewer=auto_review
requestPermissionProfile=null
resolvedApprovalPolicy=on-request
resolvedApprovalsReviewer=auto_review
However, when I create another new chat and select the custom workspace-network profile, the extension sends:
requestApprovalPolicy=never
requestApprovalsReviewer=user
requestPermissionProfile=workspace-network
resolvedApprovalPolicy=never
resolvedApprovalsReviewer=user
Therefore, selecting the custom permission profile changes two independent settings:
- approval_policy: on-request → never
- approvals_reviewer: auto_review → user
This disables auto-review and prevents actions that require escalation from being reviewed.
This is a regression. With extension version 26.707.41301 (bundled codex-cli 0.144.0-alpha.4) on 2026-07-13, the same custom profile correctly produced:
requestApprovalPolicy=on-request
requestApprovalsReviewer=auto_review
requestPermissionProfile=workspace-network
resolvedApprovalPolicy=on-request
resolvedApprovalsReviewer=auto_review
What steps can reproduce the bug?
- Add the following configuration to
~/.codex/config.toml:
```toml
approval_policy = "on-request"
approvals_reviewer = "auto_review"
default_permissions = workspace-network
[permissions.workspace-network]
extends = ":workspace"
[permissions.workspace-network.network]
enabled = true
allow_upstream_proxy = true
[permissions.workspace-network.network.domains]
"*" = "allow"
```
- Reload VS Code.
- Open the Codex extension.
- Start a new chat.
- Select the custom permission profile workspace-network.
- Send any prompt.
- Inspect the Codex extension log.
The turn-start log reports:
requestApprovalPolicy=never
requestApprovalsReviewer=user
requestPermissionProfile=workspace-network
For comparison:
- Start another new chat.
- Select “Approve for me”.
- Send the same prompt.
The log then correctly reports:
requestApprovalPolicy=on-request
requestApprovalsReviewer=auto_review
requestPermissionProfile=null
What is the expected behavior?
Selecting a named permission profile should apply that profile’s filesystem and network permissions without silently
overriding the separately configured approval settings.
With the configuration above, the custom profile should start the turn with:
```text
requestApprovalPolicy=on-request
requestApprovalsReviewer=auto_review
requestPermissionProfile=工作区联网
This was the behavior of extension version 26.707.41301.
Additional information
- The problem reproduces in completely new chats; no context compaction, resume, or restart of an existing thread is involved.
- Standalone
codex-cli 0.144.4uses the sameconfig.tomlcorrectly. The issue appears specific to the VS Code extension’s turn-start request construction. - The regression appeared after updating from extension
26.707.41301/ bundled CLI0.144.0-alpha.4to extension26.707.71524/ bundled CLI0.144.2.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗