Permission mode selector disabled in all local chats after Desktop 26.730.61639 update
Summary
After updating the stable ChatGPT Desktop app on macOS, the permission mode selector in the Codex composer is disabled in every local chat. The current mode, Ask for approval, is displayed but cannot be clicked or changed.
Environment
- ChatGPT Desktop:
26.730.61639(stable app build, bundle build6234) - Bundled Codex core reported in session metadata:
0.147.0-alpha.1.2 - macOS:
26.5.1(25F80) - Architecture: Apple Silicon (
arm64) - Task type: Local
Regression
The selector worked before the latest stable Desktop update. It is now disabled in all existing and newly created local chats.
For comparison, older local sessions used bundled core versions 0.146.0-alpha.3.1 and 0.146.0-alpha.9.2. The effective permission configuration is unchanged:
{
"approval_policy": "on-request",
"approvals_reviewer": "user",
"permission_profile_type": "managed",
"sandbox_type": "workspace-write"
}
There is no approval_policy, default_permissions, or sandbox_mode override in the user config.toml, and the affected repositories are trusted.
Steps to reproduce
- Open ChatGPT Desktop
26.730.61639on macOS. - Open any local Codex chat, or create a new local chat.
- Locate the permission mode control below the composer.
- Try to click
Ask for approval.
Expected behavior
The permission mode menu opens and allows selecting another available mode.
Actual behavior
The control is visibly disabled and does not respond to clicks. This occurs in every local chat after the update.
Additional notes
This does not appear to be a per-thread configuration issue: the same backend permission profile was present in older sessions where the selector was interactive. The regression appears limited to the Desktop UI or its handling of the permission profile.
2 Comments
Confirmed temporary workaround
Downgrading to the previous stable macOS build restores the permission mode selector and makes it interactive again.
Official OpenAI archive for Apple Silicon:
https://persistent.oaistatic.com/codex-app-prod/ChatGPT-darwin-arm64-26.727.51351.zip
Steps:
Cmd+Q./Applications/ChatGPT.appaside as a backup instead of deleting it.ChatGPT.appinto/Applications.26.727.51351(build6119).The downgrade does not remove local Codex tasks or configuration stored under
~/.codex.This is only a temporary workaround while the regression is being fixed. The built-in updater may offer or reinstall the newer build again; consumer installations do not currently have supported version pinning.
Root cause found and local workaround
The issue still reproduces after updating to:
26.810.41047(bundle6570)0.148.0-alpha.9I found what appears to be a persisted UI-state schema migration bug. In
~/.codex/.codex-global-state.json, underelectron-persisted-atom-state, the affected installation contained:The current Desktop frontend expects this value to be an object instead:
When the persisted value is the boolean
false, the frontend treats the optional modes as hidden. This leaves onlyAsk for approval, and the dropdown disables itself because it has only one visible option. The userconfig.toml, repository trust settings, and bundled core permission profiles were not restricting these modes.A working local workaround is:
Cmd+Q.~/.codex/.codex-global-state.json.If
Full accessshould remain hidden while keeping the approval selector enabled, this also works:It is important to quit the app before editing the file. If the file is changed while Desktop is running, the old boolean value is written back from memory. After changing the value while the app was closed and restarting, the permission selector became interactive again.
This suggests the update needs to migrate the old boolean value or reject non-object persisted values and fall back to the current defaults.