98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
1.9 KiB
1.9 KiB
Codex Experiments
These scripts are focused protocol probes, not production code.
What Each Experiment Shows
experiments/codex.ts (legacy MCP path)
Shows that we can run codex mcp-server, receive permission elicitation, and
auto-approve requests while preserving Codex-specific fields in elicitation
payloads.
What this demonstrates:
- Why we needed a passthrough elicitation schema (
z4mini.looseObject) to keep fields likecodex_call_id - Why the elicitation response includes both MCP
actionand Codexdecision - How sandbox + approval policy combinations affect whether permission prompts appear
experiments/codex-reject.ts (legacy MCP path)
Shows the rejection/abort edge case: when permission is denied, Codex can emit
turn_aborted without completing the pending tool call response.
What this demonstrates:
- Why
turn_abortedmust abort the client-side controller - That aborting the controller unblocks
callToolpromptly after rejection - Regression signal for "permission reject hangs indefinitely"
experiments/test-codex-protocol.cjs (current app-server path)
Shows a minimal JSON-RPC conversation with codex app-server --listen stdio://
using initialize -> thread/start -> turn/start.
What this demonstrates:
- The wire-level request/notification flow for app-server
- That a turn completes (
task_complete/turn_aborted) end-to-end - A minimal smoke test for validating protocol assumptions without Happy CLI
Status
- Current production integration: app-server path
- Legacy reference/regression scripts:
codex.ts,codex-reject.ts - Current protocol probe:
test-codex-protocol.cjs
Running
# Legacy MCP exploration (auto-approve path)
npx tsx experiments/codex.ts
# Legacy MCP rejection/unblock exploration
npx tsx experiments/codex-reject.ts
# Current app-server protocol smoke test
node experiments/test-codex-protocol.cjs