OpenSymphony 2.0.0 promotes Codex from prototype research into a supported local harness path.
The release adds a local Codex app-server integration so trusted local operators can route issue work through the installed Codex CLI while OpenSymphony keeps ownership of scheduling, workspace containment, run manifests, and operator-facing debugging.
What changed
codex_app_serveris now a supported local harness kind.- OpenSymphony launches the installed Codex CLI with
codex --dangerously-bypass-hook-trust app-server --stdioin the issue workspace. initialize,thread/start, andturn/startare validated against the schema generated by the installed Codex CLI.- Workflow and launcher routing can select Codex with
routing.harness: codex_app_serverorOPENSYMPHONY_HARNESS=codex_app_server. - Gateway model settings report Codex CLI, app-server, and ChatGPT-login readiness.
- Codex-backed runs record thread IDs so
opensymphony debug <issue-key>can resume the matching Codex thread. - Token usage, event summaries, run-detail metrics, and desktop run-detail refreshes are clearer for Codex runs.
Configuration
routing:
harness: codex_app_server
model: gpt-5-codex
model_profile: codex-chatgpt-local-keychain
OPENSYMPHONY_HARNESS=codex_app_server
OPENSYMPHONY_MODEL=gpt-5-codex
OPENSYMPHONY_MODEL_PROFILE=codex-chatgpt-local-keychain
Use opensymphony run --dry-run to preview routing before starting a model-backed worker.
Readiness and safety
OpenSymphony treats the local ChatGPT subscription as a Codex CLI login reference. Readiness is checked through safe operator commands: codex --version, codex app-server --help, and codex login status. Raw Codex OAuth material stays out of OpenSymphony workspaces, workflow files, logs, comments, and browser payloads.
This is a trusted local automation path. Hosted multi-tenant Codex worker pools remain out of scope, loopback WebSocket support remains experimental, and stdio JSON-RPC is the supported local transport.
Debugging Codex runs
When a Codex app-server worker starts a thread, OpenSymphony records the Codex thread ID in the issue workspace manifest. opensymphony debug <issue-key> resumes that thread with codex resume <thread-id> from the issue workspace, and opensymphony debug <issue-key> --app prints the matching codex://threads/<thread-id> deep link.
Read the implementation contract in the Codex app-server harness docs .