openai / openai/codex

[Desktop][Projects] Environment Action OS tabs share one script value instead of persisting per-platform commands

Open
#45,508 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug config windows-os
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

  1. Open a Project in Codex Desktop.

  2. Open the Project/Local Environment configuration and edit an Action.

  3. Select the Windows platform tab and enter a unique value, for example:

    echo windows
    
  4. Select the macOS platform tab and enter a different value:

    echo macos
    
  5. Select the Linux platform tab and enter another value:

    echo linux
    
  6. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.