M06: Codex adapter: CLI/App Server with Desktop and VS Code installations #91
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
P1
P2
P3
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#85 A0: Architecture, decisions, and contracts for the optional execution gateway
Creatidy/scarcity-router
#90 M05: Native worker, pairing, and execution transport
Creatidy/scarcity-router
Reference
Creatidy/scarcity-router#91
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Support users who have Codex through CLI, VS Code, or Codex Desktop — without automating the GUI and without falsely claiming OpenAI compatibility.
Module of the execution-gateway program; architecture and contracts come from A0 (#85).
User value
Subscription-included Codex capacity — where owner/instance policy allows unattended execution (cf. D-039's eligibility contract, issue #82) — becomes executable through the router from any OpenAI-compatible client.
Relationship to current code
providers/openai_codex*.py), the D-018 bounded auth-recovery exception, U-001 discovery evidence and the D-039 eligibility parser (providers/openai_eligibility.py,eligibility.py).Two-stage approach (within this issue)
Non-goals
Contracts / interfaces affected
Execution adapter contract (A0); OpenAI compatibility matrix (M03); D-018 recovery boundary (unchanged); worker dispatch (M05).
Dependencies
Acceptance criteria
Security considerations
The default CLI-backed execution mode must not automatically receive access to user projects, arbitrary filesystem paths, shell, global MCP configuration, plugins, browser integrations or unrelated conversation history. A read-only sandbox alone is not necessarily proof of sufficient isolation. Credentials stay provider-managed (the D-018 boundary is unchanged: Scarcity Router never receives, reads, stores or exposes tokens). No root execution; no uncontrolled subprocess flags/environment variables.
Risks
Evidence still required
Closeout (v0.1.0 release-readiness reconciliation, 2026-09-21). M06 Stage 1 (feasibility evidence) and Stage 2 (implementation) are complete; the recorded live-acceptance gate is preserved explicitly below rather than treated as unfinished implementation.
docs/codex-adapter-stage1-evidence.md(dated runtime/protocol/isolation evidence). Stage 2: the Codex worker-local adapter (worker_codex_adapter.py, allowlist idcodex, delivered through the M05worker_bridgedchannel per D-049) with reviewed evidence cells (codex_worker_evidence.py, dated 2026-09-20, adaptercodex-worker-local1.0.0, tested againstcodex-cli 0.154.0-alpha.6.2).platform_not_evidenced); missing official components produce a remediation step, never token extraction (controlledCODEX_HOMEadoption; the real-binary probe shows the unsigned-in home fails CLOSED withauth_unverified); compatibility is recorded as a dated PASS/PARTIAL/UNSUPPORTED/UNKNOWN matrix (streamingPARTIAL, toolsUNSUPPORTED), never inferred from text output; promotional eligibility is never inferred from execution success; a runtime contract change disables the adapter fail-closed (generation-aware parsing, D-019 pattern); isolation is end-to-end verified (controlled home 0o700, generated config withoutmcp_servers, scratch cwd,workspaceWrite+networkAccess: false+approvalPolicy: never, minimal child env, no user MCP/plugins/apps/connectors inheritance —tests/test_e2e_codex_acceptance.py::CodexStreamingExecutionTests::test_isolation_profile_end_to_end).--codex-model,gpt-5.6-sol), exact effort binding, structured output, pre-dispatch tool rejection, streaming and non-streaming, cancellation, usage honesty, mid-execution worker loss = ambiguous and never retried, resource→worker ownership, multiple Codex resources, leakage/audit asserts. All green in the 1868-test gate.EXTERNAL_ACCEPTANCE_GATE: LIVE_CODEX_SUBSCRIPTION— one live turn-level execution against a provider-managed login in a dedicated controlledCODEX_HOMErequires an interactive officialcodex loginby the owner; manual token extraction is forbidden by this issue's own acceptance criteria. Exact owner action and the deterministic evidence already complete are recorded indocs/m10-acceptance.md("External gate").Closing as complete subject to the recorded gate;
docs/roadmap.mdnow records M06 accordingly.