Skip to content

Desktop app rewrites removed feature flag js_repl into config.toml on every startup #24387

@liby

Description

@liby

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingconfigIssues involving config.toml, config keys, config merging, or config updates

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions