App stops using the configured beta permissions set after the first prompt

Open 💬 2 comments Opened Jul 6, 2026 by deg-hrisser

What version of the Codex App are you using (From “About Codex” dialog)?

Version 26.623.101652 • Released Jul 3, 2026

What subscription do you have?

Business

What platform is your computer?

Darwin 25.5.0 arm64 arm

What issue are you seeing?

I have tried to play around with the beta permissions.
Some really great concepts here.

However, I noticed that as of my second prompt in a new thread,
the app falls back to "Asking for approval". This happens for both of my beta permission profiles. This does not happen on the CLI.

What steps can reproduce the bug?

Use beta permission profiles.
Start a new thread with that profile.
Send a message with that profile selected.
Send another message with that profile selected.
-> Here, the profile-selector will switch to "Ask for approval".

What is the expected behavior?

Codex should keep the chosen permission profile for the entire thread.

Additional information

For context, these are all of my broadly permission-specific settings from config.toml:

default_permissions = "workspace-only"

[permissions.workspace-write-read-all]
extends = ":workspace"
[permissions.workspace-write-read-all.filesystem]
":tmpdir" = "deny"
":slash_tmp" = "deny"
"~/.codex-cache" = "write"
[permissions.workspace-write-read-all.network]
enabled = true
[permissions.workspace-write-read-all.network.domains]
"*" = "allow"

[permissions.workspace-only.filesystem]
#":root" = "deny"
":minimal" = "read"
":tmpdir" = "deny"
":slash_tmp" = "deny"
"~/.codex-cache" = "write"
"~/.codex" = "read"

"/opt/homebrew" = "read"
"~/.asdf" = "read"

"~/Development/ceres" = "read"
"~/.ceres" = "read"

"/Library/Developer/CommandLineTools" = "read"
"~/.gitconfig" = "read"
"~/.npmrc" = "read"

[permissions.workspace-only.filesystem.":workspace_roots"]
"." = "write"
".codex" = "read"
".git" = "read"
"module/**" = "read"
"system.sh" = "read"
# "frontend/src" = "write"
# "frontend/src/server" = "write"
# "api/generator-config" = "write"
# "api/specs" = "write"
# "api/openapi-spec.yml" = "write"
# "e2e-test/src" = "write"

[permissions.workspace-only.network]
enabled = true

[permissions.workspace-only.network.domains]
"redacted_internal_domain1" = "allow"
"redacted_internal_domain2" = "deny"

[shell_environment_policy]
set = {
  PATH = "/opt/homebrew/bin:/opt/homebrew/sbin:/Users/hrisser/.asdf/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
  TMPDIR = "/Users/hrisser/.codex-cache/tmp",
  TEMP = "/Users/hrisser/.codex-cache/tmp",
  TMP = "/Users/hrisser/.codex-cache/tmp",
  GRADLE_USER_HOME = "/Users/hrisser/.codex-cache/gradle",
  GRADLE_OPTS = "-Dorg.gradle.daemon=false",
  npm_config_cache = "/Users/hrisser/.codex-cache/npm-cache",
  YARN_CACHE_FOLDER = "/Users/hrisser/.codex-cache/yarn-cache",
  MAVEN_OPTS = "-Dmaven.repo.local=/Users/hrisser/.codex-cache/m2",
  JAVA_TOOL_OPTIONS = "-Duser.home=/Users/hrisser/.codex-cache/home -Dmaven.repo.local=/Users/hrisser/.codex-cache/m2"
}

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗