Generated and runtime notes

August 12, 2026 ยท View on GitHub

Do not edit or commit generated application/package state:

  • codex-app/, codex-app-next/, codex-app.backup-*, .codex-app.candidate-*
  • codex-*-app/, dist/, dist-next/, target/
  • linux-features/features.json, linux-features/local/
  • staged feature manifests and build/patch reports
  • updater config/state/cache/log directories under XDG paths

The local selection files are intentionally untracked:

linux-features/features.json
linux-features/local/<id>/

Do not replace them with committed defaults or include private local feature code in a pull request by accident.

The baseline staged tree is extracted from /usr/lib/chatgpt in the verified official package. Its runtime, native modules, commands, libraries, locales, and Owl metadata remain upstream-owned. start.sh and .codex-linux/ are generated from repository templates and feature manifests.

With no ASAR features, compare the staged and package resources/app.asar SHA-256 values. Any difference is a build bug. With features, consult the patch report and staged feature manifest.

Expected generated metadata under codex-app/.codex-linux/ includes build-info schema v2, the enabled feature snapshot, launcher hook directories, the community icon, and patch/build reports where applicable. These are regenerated from repository templates and manifests.

The official payload should continue to supply:

  • ChatGPT and its Electron libraries;
  • resources/app.asar;
  • Linux native modules;
  • bundled codex, rg, and code-mode host;
  • bundled official plugins, locales, assets, and Owl metadata.

A generated tree containing a downloaded replacement Electron, an external CLI bundle, rebuilt upstream native modules, or a local webview HTTP server signals that retired architecture has been reintroduced.

Updater candidates are siblings of the active tree and are promoted atomically. Do not manually rename an active/candidate pair or delete its recovery journal. An old root-owned codex-app.backup-* is disposable only after verifying it is not the active tree or the updater's recorded rollback artifact.

Package manager output under /opt/codex-desktop is installed state, not a development source tree. Fix templates in the repository, rebuild a package, and reinstall rather than modifying /opt in place.