-
Notifications
You must be signed in to change notification settings - Fork 0
[Epic] Codex as a first-class structured engine (parity with Claude) #733
Copy link
Copy link
Open
Labels
P3: laterDesign, strategy, or deferred pending a decision or demandDesign, strategy, or deferred pending a decision or demandcoderThe Coder wedge agent (#68) — Engine, Pilot, Co-pilot, Loop, OverseerThe Coder wedge agent (#68) — Engine, Pilot, Co-pilot, Loop, OverseercoordinationAgent coordination / delegation primitivesAgent coordination / delegation primitivesenhancementNew feature or requestNew feature or requestrunnerpackages/browser-runner + packages/cli — ships only via an npm publishpackages/browser-runner + packages/cli — ships only via an npm publish
Description
Activity
Metadata
Metadata
Assignees
Labels
P3: laterDesign, strategy, or deferred pending a decision or demandDesign, strategy, or deferred pending a decision or demandcoderThe Coder wedge agent (#68) — Engine, Pilot, Co-pilot, Loop, OverseerThe Coder wedge agent (#68) — Engine, Pilot, Co-pilot, Loop, OverseercoordinationAgent coordination / delegation primitivesAgent coordination / delegation primitivesenhancementNew feature or requestNew feature or requestrunnerpackages/browser-runner + packages/cli — ships only via an npm publishpackages/browser-runner + packages/cli — ships only via an npm publish
Make Codex (and, later, other CLIs) a first-class coding engine on par with Claude: driven through its own structured event stream instead of scraped raw stdout, with the same clarity Claude already has about how it's invoked and who pays. Today Claude is the only structured engine (
mode = clientType === "claude" ? "stream-json" : "raw"inheadless.ts); every other engine is spawned raw, so its output is noisy/truncated, its spend is unmetered, and its acts are unattributed.The work
Dependency chain (runner):
codex exec --json(structured), not raw stdout capture #729 — Codex viacodex exec --json(structured) — fixture-spike first;--jsonis an unverified premise + unstable with active toolsIndependent (UX / config clarity):
Downstream — consequences fixed once the chain lands (not to be worked directly):
--jsontrack lives in [design] Structured engine adapters — parse each CLI's own JSON event stream, not a claude-or-raw switch #728/First-class Codex engine viacodex exec --json(structured), not raw stdout capture #729acts[].okabsent for raw engines), The handoff prompt a user answers is scraped from prose, because no structured field exists to prefer #621 (handoff scraped from prose) — all become tractable once raw engines emit structured usage/acts.Cross-cutting obligations (don't let these fall through)
docs/coding-engines.mdmust be updated by First-class Codex engine viacodex exec --json(structured), not raw stdout capture #729/[spike] Codex session continuity — verify resume-by-id is viable before building it #730 — its "why no shipped preset resumes" and "what one-shot costs" sections go stale for Codex.--json-equivalent investigation) — recorded here so "Codex only" is a decision, not a forgotten gap. File aP3: lateradapter issue if/when demand appears.Open strategic question
#730 (engine-side resume) vs #693 ("platform owns the conversation" — seed continuity from
coding_timeline, demote the engine's own memory). #730 is a deferred-#693 stopgap; if its spike fails, route Codex continuity through #693 instead. Resolve before scheduling #730's follow-up.Provenance: decomposition + this framing came out of an adversarial 3-lens review (technical accuracy, scope/duplication, UX) on 2026-08-22.