Implementation handoff
Date: 2026-08-21 (Europe/Budapest)
Delivered scope
- Node.js 24 ESM/strict TypeScript stdio MCP server
- Correlated Codex App Server WebSocket initialization and three-method read allowlist
- Paginated thread and loaded-thread reconciliation with stale/reconnect semantics
- Revisioned in-memory change ring and bounded refresh/wait behavior
- Exactly four MCP tools:
overview, list_threads, inspect_thread, and wait_for_change
- Configuration validation, documentation, isolated registration validation, and opt-in smoke workflow
Validation evidence
- Runtime: Node.js
v24.19.0, npm 11.17.0, Codex CLI 0.149.0
- Full repository suite before clean-checkout validation: 36 tests passed, 0 failed
- Live read-only smoke against
ws://127.0.0.1:4500: 668 threads synchronized, 6 loaded, one loaded thread inspected as active; emitted methods were only thread/list, thread/loaded/list, and thread/read
- Non-persistent
codex mcp list --json configuration validation: codex-chief-of-staff appeared enabled with stdio transport; personal configuration was not changed
- Index-backed clean checkout under
/private/tmp: npm ci --cache /private/tmp/codex-chief-of-staff-npm-cache, npm run typecheck, npm run build, and npm test all exited 0; 36 tests passed and 0 failed
- The task-specific npm cache was used because the existing user npm cache contains a root-owned file; no ownership or home-directory configuration was changed
- Final strict OpenSpec validation after all 27 task updates:
Change 'codex-chief-of-staff' is valid
Rollout order
- Keep the shared App Server on loopback (or use authenticated TLS remotely) and ensure it shares
CODEX_HOME with monitored clients.
- Build this repository.
- Add the documented personal MCP registration separately.
- Start a dedicated Chief-of-Staff thread and verify the four tools and coverage metadata.
- Roll back by removing the MCP registration; no thread history or monitor persistence requires cleanup.