
Aamer AkhterandSaqeb Akhter
70378315da
feat(codex): add Codex (OpenAI CLI) run-mode foundation
Add Codex as a first-class session mode alongside Claude/Shell/OpenCode.
- codex-cli-resolver: locate the `codex` binary and augment PATH (mirrors the
OpenCode resolver)
- SessionMode 'codex' + CodexConfig (model, resumeSessionId, dangerouslyBypass,
renderMode); persisted in SessionState and threaded through CreateSession/
RespawnPane options
- schema validation: CodexConfigSchema, CODEX_ env-var prefix allowlist, mode
enums on create/quick-start, codexDangerouslyBypassApprovals setting
- tmux launch: buildCodexCommand, setenv for OPENAI_API_KEY/CODEX_* (keeps
secrets out of ps), truecolor COLORTERM, codex PATH resolution
- session + routes: availability check (clear install hint), config passthrough,
tmux-required guard; Codex skips Claude-only parsers (Ralph/respawn/token)
- run-mode UI: "Run CX" selector option + dedicated Codex CLI settings tab with
the bypass-approvals toggle; GET /api/codex/status
Scope: foundation only. Codex terminal redraw handling and xterm snapshot/replay
are intentionally excluded and tracked separately.
Verification: tsc --noEmit, eslint, prettier --check, check:frontend-syntax all
clean; full test:ci suite green (2712 passed, 0 failed); server boot smoke OK.
Co-Authored-By: Saqeb Akhter <saqeb.akhter@gmail.com>
2026-06-10 09:34:52 -04:00
..
2026-06-08 15:41:46 +02:00
2026-04-23 11:57:00 +02:00
2026-02-26 16:44:34 +01:00
2026-06-10 09:34:52 -04:00
2026-06-10 09:34:52 -04:00
2026-06-10 09:34:52 -04:00
2026-03-27 01:43:59 +01:00
2026-04-23 11:57:00 +02:00
2026-05-31 05:17:07 +02:00
2026-04-23 11:57:00 +02:00
2026-06-08 11:01:34 -04:00
2026-06-09 20:02:17 +02:00
2026-04-24 09:49:52 +08:00
2026-04-23 11:57:00 +02:00
2026-03-01 13:19:16 +01:00
2026-02-18 12:51:35 +01:00
2026-06-10 09:34:52 -04:00
2026-04-23 11:57:00 +02:00
2026-03-21 07:20:18 +01:00
2026-03-27 01:43:59 +01:00
2026-04-23 11:57:00 +02:00
2026-06-06 03:53:54 +02:00
2026-04-23 11:57:00 +02:00
2026-03-01 04:04:35 +01:00
2026-04-23 11:57:00 +02:00
2026-03-01 04:04:35 +01:00
2026-03-07 07:33:44 +01:00
2026-03-26 22:50:25 +01:00
2026-04-23 11:57:00 +02:00
2026-03-01 17:26:31 +01:00
2026-05-31 05:17:07 +02:00
2026-03-01 04:04:35 +01:00
2026-03-01 04:04:35 +01:00
2026-03-01 04:04:35 +01:00
2026-03-07 07:33:44 +01:00
2026-04-23 11:57:00 +02:00
2026-06-07 04:33:11 +02:00
2026-06-06 03:53:54 +02:00
2026-04-24 09:49:52 +08:00
2026-03-01 04:04:35 +01:00
2026-06-10 09:34:52 -04:00
2026-06-06 04:06:29 +02:00
2026-04-23 11:57:00 +02:00
2026-04-23 11:57:00 +02:00
2026-04-23 11:57:00 +02:00
2026-01-24 04:36:18 +01:00
2026-03-12 15:50:40 +01:00
2026-06-10 09:34:52 -04:00
2026-04-23 11:57:00 +02:00
2026-04-23 11:57:00 +02:00
2026-03-03 22:40:18 +01:00