#618

Add persistent application-level Codex Home selection

OpenJoseffbwants to merge intofrom

Summary

Adds a persistent Codex Home setting independently of the Codex executable, so users can select the configuration and session environment CodexMonitor connects to.

My use case: I run the normal OpenAI Codex desktop app alongside a Codex CLI configured for DeepSeek. CodexMonitor connects to that DeepSeek CLI. I need CodexMonitor to use its separate home for configuration, global instructions, models, and sessions while the normal desktop app continues using its own environment.

Behavior

  • Adds Browse, Validate, Save, and Use default controls under Settings → Codex, with the effective canonical home displayed.
  • Resolves the home from the saved application setting, then inherited CODEX_HOME, then ~/.codex. Symlinked home directories work; an unavailable explicit home errors without silently selecting another environment.
  • Uses the selected home consistently for child app-servers, global editors, prompts, agents, local usage, and workspace/session operations. Switching homes stops existing runtimes and reloads the UI; active turns stop.
  • Verifies the app-server home when the initialization response reports it. Older app-servers may omit that field, so their executable must honor the supplied CODEX_HOME.
  • Retains the existing global AGENTS.md external-symlink exception from #297. Config and workspace file containment remain strict, and dangling links fail explicitly.
  • Keeps the local Home control disabled in remote mode; remote editors use the connected daemon's own persisted home.

This is an application-wide home selector, not a credential manager or a per-workspace account switcher. It does not copy credentials, provision provider access, or change the system launch environment. Related to #66, but does not implement that issue's full scope. Existing Queue/Steer defaults are preserved.

Validation

On macOS arm64, against contribution commit 811686c:

  • npm run typecheck — passed.
  • npm run test — 141 files / 1,015 tests passed.
  • npm run lint — no errors; five warnings in unchanged files.
  • npm run build — passed, with the existing large-chunk warning.
  • cargo check --locked — passed.
  • cargo test --locked — 458 tests passed across library and binary targets (239 + 189 + 29 + 1).
  • Targeted compatibility tests were observed failing before restoring Queue defaults and the upstream global AGENTS symlink exception, then passed.
  • Contribution secret scan and diff whitespace checks passed.

Native macOS checks on the separately installed candidate exercised selecting/editing the home, model and reasoning discovery, an actual provider-backed GUI request, quit/relaunch and session restoration, simultaneous operation with OpenAI Codex, and an unavailable-home error without fallback. That installed candidate shares the home feature but has local packaging and preference differences; it is not a native build of this exact PR commit. The contribution's compatibility corrections are covered by the tests above. Windows and Linux native behavior have not been exercised locally.

Activity

3
chatgpt-codex-connector[bot]12d ago

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

ReviewStatusCommitReview trigger
📝 Code Review✅ Completed 2026-10-18T03:19:58.182305Z811686cPR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

chatgpt-codex-connector[bot]reviewed12d ago
chatgpt-codex-connector[bot]12d ago

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 811686c4bb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".