codex - 💡(How to fix) Fix Desktop app rewrites removed feature flag js_repl into config.toml on every startup

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

The Codex desktop app writes features.js_repl = false back into config.toml on every launch, even when the user has manually removed the line. js_repl is reported as a removed-stage feature flag by codex features list.

Error Message

After every desktop-app launch, features.js_repl = false is restored.

Root Cause

A user who deletes features.js_repl = false finds it restored on the next desktop-app launch, with no UI control to suppress the rewrite. This is confusing because the CLI reports the flag as removed.

Code Example

var Qn = [`features.js_repl`, /* ... */];

async function $n({ appServerConnection, desktopFeatureAvailability, ... }) {
  let d = await St({ ... });
  await appServerConnection.sendAppServerRequest(`config/batchWrite`, {
    edits: er(d), // Qn.map(t => ({ keyPath: t, mergeStrategy: `replace`, value: d?.[t] ?? null }))
    expectedVersion: null,
    filePath: null,
    reloadUserConfig: true,
  });
}

---

$ codex features list | grep js_repl
js_repl              removed   false
js_repl_tools_only   removed   false
RAW_BUFFERClick to expand / collapse

Summary

The Codex desktop app writes features.js_repl = false back into config.toml on every launch, even when the user has manually removed the line. js_repl is reported as a removed-stage feature flag by codex features list.

Environment

  • codex-cli 0.133.0
  • Codex desktop app 26.519.41501
  • macOS (Darwin 25.4.0, arm64)

Steps to reproduce

  1. Quit the Codex desktop app completely.
  2. Edit $CODEX_HOME/config.toml and remove the features.js_repl = false line.
  3. Confirm with grep js_repl $CODEX_HOME/config.toml that the line is gone.
  4. Run codex features list and codex doctor. The line stays absent; the CLI does not write it back.
  5. Launch the Codex desktop app.
  6. Re-check config.toml. features.js_repl = false is present again.

Observed behavior

After every desktop-app launch, features.js_repl = false is restored.

Code reference

In the desktop bundle at Codex.app/Contents/Resources/app.asar, file .vite/build/main-*.js:

var Qn = [`features.js_repl`, /* ... */];

async function $n({ appServerConnection, desktopFeatureAvailability, ... }) {
  let d = await St({ ... });
  await appServerConnection.sendAppServerRequest(`config/batchWrite`, {
    edits: er(d), // Qn.map(t => ({ keyPath: t, mergeStrategy: `replace`, value: d?.[t] ?? null }))
    expectedVersion: null,
    filePath: null,
    reloadUserConfig: true,
  });
}

$n is awaited during app startup. The features.js_repl keyPath is written with mergeStrategy: "replace" unconditionally.

CLI feature stage

$ codex features list | grep js_repl
js_repl              removed   false
js_repl_tools_only   removed   false

Impact

A user who deletes features.js_repl = false finds it restored on the next desktop-app launch, with no UI control to suppress the rewrite. This is confusing because the CLI reports the flag as removed.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING