[Desktop][Projects] Environment Action OS tabs share one script value instead of persisting per-platform commands
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
Codex Desktop's Project/Local Environment Action editor exposes separate OS/platform tabs for an Action, but those tabs do not persist independent script values.
Entering a different command for Windows, macOS, and Linux results in the tabs converging to one shared value. Editing one platform effectively changes/overwrites the value shown for the others.
This makes the UI look like it supports per-platform Action commands while the underlying state behaves like a single shared script field.
Environment
- Product: Codex Desktop / Project Local Environment editor
- Codex Desktop: 26.908.40834
- Reproduced on Windows
- Observed: September 14, 2026
The affected Environment also exposes the documented worktree variables in the UI (CODEX_SOURCE_TREE_PATH and CODEX_WORKTREE_PATH) and contains an Action named Validate.
Reproduction
-
Open a Project in Codex Desktop.
-
Open the Project/Local Environment configuration and edit an Action.
-
Select the Windows platform tab and enter a unique value, for example:
echo windows -
Select the macOS platform tab and enter a different value:
echo macos -
Select the Linux platform tab and enter another value:
echo linux -
Switch back and forth between the platform tabs and/or save and reopen the Environment.
Actual behavior
The platform tabs do not retain the three distinct scripts. They all receive/show one and the same value; changing one tab propagates or overwrites the value represented by the other tabs.
Conceptually, the UI presents:
Action
├─ Windows -> windows script
├─ macOS -> macOS script
└─ Linux -> Linux script
but behaves like:
Action
└─ script -> one shared value
├─ Windows tab
├─ macOS tab
└─ Linux tab
Expected behavior
Each platform tab should own and persist an independent Action script, and the Action launcher should execute only the script for the active platform.
For the reproduction above, saving/reopening should preserve exactly:
Windows -> echo windows
macOS -> echo macos
Linux -> echo linux
Editing the Windows value must not mutate the macOS or Linux values, and vice versa.
Impact
Platform-specific Actions cannot be configured reliably. This blocks legitimate differences such as:
- PowerShell vs POSIX-shell syntax;
- Windows vs Unix path handling;
- platform-specific executable names/wrappers;
- different setup/validation commands or environment prefixes.
It is also misleading because the editor explicitly presents separate platform tabs while persisting them as though they were aliases for one field.
Validation notes
The issue reproduces at configuration time, before Action execution. It is therefore separate from the Action-terminal workspace-binding problem tracked in #42335.
For comparison, the real Environment used during validation has this current Validate command:
uv run --no-project python -B scripts/repository_quality_gate.py
That command happens to be portable, but the bug was exposed by entering distinct values into the platform tabs and observing that the values do not remain independent.
A screenshot of the Environment editor and its Validate Action was captured during validation. No repository files or Environment scripts were modified to work around the issue.
A limited duplicate search in openai/codex for Environment Action platform-tab/script persistence did not find an exact existing report.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Codex Desktop Project/Local Environment Action editor and the state used by its Windows, macOS, and Linux tabs. Reproduce the issue with three distinct commands, then verify that saving, reopening, editing one tab, and launching an Action preserve and use only the active platform's script.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100