Codex Desktop create_thread does not inherit auto-approval mode for worktree tasks
What version of the Codex App are you using (From “About Codex” dialog)?
ChatGPT Desktop powered by Codex & OWL, version 26.707.71524.
Bundled Codex CLI/runtime reported by the child sessions: 0.144.2.
What subscription do you have?
Not relevant to the local permission inheritance behavior / not checked.
What platform is your computer?
Microsoft Windows NT 10.0.19045.0, AMD64.
What issue are you seeing?
Codex Desktop's official create_thread tool does not inherit the configured auto-approval mode when it creates a task in a managed worktree.
The Desktop host default is auto approval:
agent-mode-by-host-id.local = guardian-approvals
preferred-non-full-access-agent-mode-by-host-id.local = guardian-approvals
The parent task also had:
approval_policy = on-request
approvals_reviewer = auto_review
sandbox_policy = workspace-write
However, two independently created managed-worktree child tasks both started their first turn with:
approval_policy = on-request
approvals_reviewer = user
sandbox_policy = workspace-write
As a result, the children displayed manual approval dialogs for routine escalated operations that normally pass through the auto reviewer, including git fetch, git add, and GitHub CLI commands.
This is not a GitHub CLI installation or authentication issue. The commands work after manual approval, and the same host/default configuration uses auto review in the parent task.
Changing the child task to auto approval while its first turn is already running emits a later settings update, but the active turn continues using the original user reviewer snapshot. Every later escalation in that long-running turn still asks the user manually. The new setting only takes effect on a subsequent turn.
What steps can reproduce the bug?
- On Codex Desktop for Windows, select Auto approval as the default permission mode.
- Start a parent task and verify its turn context contains:
approvals_reviewer = auto_review.
- From that task, use the official
create_threadtool with:
- a saved local project;
environment: { type: "worktree" }.
- Let the child task begin its automatically started first turn.
- Inspect the child turn context.
- Observe that it contains:
approvals_reviewer = user.
- Have the child run a command that requires a normal scoped escalation, such as
git fetchorgit addin the managed worktree. - Observe a manual approval dialog instead of automatic review.
This reproduced twice in separate child tasks:
- Parent was
auto_reviewimmediately before the firstcreate_threadcall; the child started approximately one minute later asuser. - Parent was again
auto_reviewimmediately before the secondcreate_threadcall; the child started seconds later asuser.
Thread IDs, repository names, account names, and local paths are intentionally omitted.
What is the expected behavior?
A child task created through create_thread should inherit the effective approval reviewer from the Desktop host default or from its parent task.
With Auto approval selected, the child should start with:
approval_policy = on-request
approvals_reviewer = auto_review
If permission inheritance is intentionally unsupported, create_thread should expose an approval/permission parameter, or create the child in a paused state so the user can select its permission mode before the initial turn starts.
Changing a task's permission mode should also either affect subsequent tool calls in the active turn or clearly indicate that it will only apply to the next turn.
Additional information
Current workaround:
- Immediately stop the child task's first turn.
- Select Auto approval again inside the child task.
- Send a new “continue” message.
- The new turn then uses
auto_review.
A related Windows report, #32880, covers linked-worktree Git metadata writes and sandbox ACLs. This report is different: the commands here are deliberately escalated and succeed after approval; the defect is that the child task starts with approvals_reviewer=user despite both the host default and parent task being configured for auto review.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗