Skip to content

Combine Every Code with the Codex Desktop app #377

@shiny-code-bot

Description

@shiny-code-bot

Finish Line

Users can run Every Code through the Codex Desktop app shell by making Every Code a Codex-compatible app-server backend for the desktop bundle, with a supported path for a copied/test app first and a clear packaging/distribution decision before touching the real installed app.

Current Status

State: Active, direction pivot validated and decomposed into child plans.

Copied-app result after #383:

  • Merged PR: feat(app-server): accept Codex Desktop startup calls #383 feat(app-server): accept Codex Desktop startup calls
  • Merge commit: 4339c3743917725b3b685864b3384af259a35964
  • Copied app under test: /Users/cbusillo/Applications/Codex Every Code Test.app
  • Real installed app: /Applications/Codex.app was not modified.
  • The copied app reached the main Codex chat UI with the code project selected using the Every Code binary as Contents/Resources/codex.
  • The copied app spawned /Users/cbusillo/Applications/Codex Every Code Test.app/Contents/Resources/codex app-server --analytics-default-enabled; lsof confirmed that process is the replaced Every Code binary.
  • A filtered macOS log scan did not show a repeated Invalid request loop for the baseline desktop startup polling methods.

Codex-base port spike:

  • Branch/worktree: spike/codex-base-port at /Users/cbusillo/.code/worktrees/code/codex-base-port-spike
  • Local spike commit: d242e3f1c3 (spike: prove codex-base code workspace)
  • Imported current openai/main:codex-rs into code-rs as the candidate substrate.
  • Kept upstream crate/package names mostly codex-* internally, but exposed the CLI binary as code.
  • Patched CLI identity enough for code --version and top-level help to use code / Every Code CLI.
  • Patched home resolution in the upstream codex-utils-home-dir crate so CODE_HOME wins, CODEX_HOME remains compatibility fallback, and the no-env default is ~/.code.
  • cargo test -p codex-utils-home-dir passed.
  • ./build-fast.sh passed.
  • code app-server --analytics-default-enabled --listen stdio:// --help parses natively on the Codex-base app-server surface.

Agent review and planning result:

  • Claude review found the approach viable and the core patches clean.
  • Recommendation: branch-only spike, fix/plan before PR rather than opening this raw million-line workspace replacement for merge.
  • Feature-map review identified Auto Drive as the highest-risk must-port domain, remote inbox as the domain containing the Discord-specific UI, and auto-review/proof metrics, account/token accounting, TUI extensions, protocol/app-server additions, login/browser, exec/sandboxing, git/patch harness, model providers, config migrations, cloud tasks, observability, and utilities as explicit port domains.

Child plans created under #377:

Decision signal:

  • This strongly supports shifting Combine Every Code with the Codex Desktop app #377 from incremental compatibility shims toward a planned Codex-base migration: keep Codex app-server/session/protocol behavior native, then port Every Code identity and extensions back onto that substrate.
  • The raw spike proves feasibility but is too broad to merge directly. It should remain a reference branch and migration input, not the final PR shape.
  • Discord-specific remote inbox UI should not be ported by default if Codex Desktop becomes the primary GUI. Inventory and port Every Code features onto Codex base #386 owns the keep/drop/defer decision for remote inbox; likely outcome is preserve integration capability if useful, drop/replace Discord-specific presentation.

Next action:

Residual scope:

  • The spike currently leaves many upstream Codex user-facing strings intact; product copy is not migrated.
  • Every Code extensions are not ported in the spike; port them deliberately through Inventory and port Every Code features onto Codex base #386.
  • The copied-app chat-submit probe remains manual or requires deeper transport tracing because Chromium's prompt input was not directly accessible via AppleScript.

Acceptance Criteria

  • code app-server --analytics-default-enabled accepts the Codex Desktop launch contract or intentionally no-ops that flag.
  • The app-server initialize handshake reports a version/capability shape that the current Codex Desktop app accepts.
  • Desktop-requested read/list/status methods either return compatible real data or explicit harmless empty responses where the feature is intentionally unsupported.
  • Desktop startup with a copied app bundle produces no repeated Invalid request polling loop for baseline state methods.
  • Config compatibility for the desktop app-server path is documented and tested, including ~/.codex fallback and TOML/Every Code config parsing behavior.
  • A compatibility smoke test or reproduction script records the app-copy swap procedure without modifying /Applications/Codex.app.
  • A packaging decision is recorded for how Every Code should be combined with the desktop app beyond the copied-bundle experiment: wrapper, embedded binary replacement, forked app bundle, or upstream-aligned distribution path.

Relationships

Metadata

Metadata

Assignees

No one assigned

    Labels

    planDurable planning issueplan:waitingPlan is waiting on non-issue evidence or decision

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions