Releases: anhnguyen0905/codex-mcp
Release list
fix: v0.21.1 — harden the fast-path gate
- Analysis lane exempt from the Codex health gate (no Codex session needed) - Mechanical scope trip-wire: extra changed files auto-escalate to full flow - Small-change lane gets its own known-red test baseline - Durable fastpath.log preserves session lineage and audit trail - Measure input sizes (du -h) before applying the ~50MB data-tooling rule - Guard tests lock the fast-path contract and data tooling rules
v0.20.0
v0.19.0 — context-persistence slices + goal-audit hardening
Added
- Budgeted context-persistence slices —
scripts/context-slice.mjsderives per-task
.codex-flow/CONTEXT-T<n>.md(≤ 4000 tokens) and resume.codex-flow/RESUME.md(≤ 8000 tokens)
views from PLAN.md and TASKS.md, preserves mandatory task text and statuses, and drops only whole
lower-priority items with restorable PLAN.md pointers. - Git-anchored decision read-back — Decision-log blocks record
Anchor:SHAs, and derived
slices stamp them[fresh]or[verify]; missing or invalid anchors and git failures degrade to
[verify]while full PLAN.md remains authoritative and standalone installs retain a direct-read
fallback. - Durable requirements with criterion-level coverage —
.codex-flow/REQUIREMENTS.mdrecords
confirmed criteria verbatim as atomicR<n>.<m>IDs; append-only confirmed Deltas preserve
mid-run changes and reset affected downstream approvals.scripts/requirements-coverage.mjs
rejects uncited and unknown IDs at the Phase 3 gate, and final review reports every ID met/not-met
with evidence. - Authoritative 10-key run state —
.codex-flow/STATE.mdreplaces file-existence inference with
the current phase, three approval records, immutablerunBaselineRef/ known-red / dirty-baseline
values, checkpoint choice, execution mode, and a separateresumeHead. - Session lineage and status-aware recovery — TASKS.md gains session metadata plus an append-only
transition log; resume reconciles orphaned in-progress work. Wave scheduling uses done tasks to
satisfy dependencies, waits on in-progress tasks, and blocks dependents of failed or unknown
states. - Single-writer parallel coordination — one coordinator owns every
.codex-flow/*write while
workers return structured handoffs covering touched files, checks, findings, proposed decision-log
data, and session IDs. - Stronger context slices — task slices always include a stamped contracts index, compact the
known-red baseline, and rank decision blocks by explicitApplies to:scope before recency; the
execution prompt carries the run-position recitation header.
v0.18.0 — exec-visualization: charts route to flint-chart
Added
- New
exec-visualizationskill — routes chart/graph tasks to microsoft/flint-chart (rendering PNG/SVG) via a capability ladder (flint-chart MCP tools →npx flint-chartCLI → Python matplotlib as a last resort), instead of ad-hoc Python plotting. The token is wired into Phase 4 of the command (with a byte-identical.claudemirror) so chart-producing tasks load it, and the README documents optionalflint-chart-mcpsetup for the Codex CLI and Claude.
v0.17.0 — context-drift hardening for large projects
Added
- New
context-disciplineskill — enforces orchestrator no-raw-read thresholds, phase-boundary compaction, and tiered additive-onlyAGENTS.mdgeneration. - Handoff-grade Decision log schema — replaces one-line entries with four required fields: Decision, Why, Constraint for later tasks, and Contracts touched.
- Command integration across Phases 2, 4, and 5 — loads context discipline throughout planning, execution, and review, including explicit sequential-vs-parallel boundary rules.
tests/flowDocs.test.tsstructure guard — validates the command and skill documentation contracts and keeps the command mirror byte-identical.
v0.16.0 — 15 domain skills, 500-case + holdout suites, six matcher fixes
Highlights
- 15 new domain skills ship with the plugin: accounting-bookkeeping, financial-audit, personal-finance, sme-operations, hr-recruiting, sales-pipeline-crm, customer-support-ops, ecommerce-operations, legal-contract-basics, training-curriculum-design, real-estate-analysis, ux-research-wireframing, manufacturing-ops-planning, warehouse-operations, json-data-wrangling. Ablation on the new 500-case suite: removing them drops the pass rate from 500/500 to 274/500 — these domains previously had zero retrievable coverage.
- Six real matcher defects fixed in
scripts/skill-match.mjs(each unit-tested): e-final plural stemming (cycles→cyclnever metcycle), stacked name-word credit across query terms, an over-strict relevance floor for ultra-diagnostic terms (Incoterms/AOV/NPS — now rare by both IDF and document frequency so index growth can't relax it), duplicate index names selected twice, a semantically wrong precision-guard rule, and an over-categorical audit heuristic. - Honest evaluation: reports now carry MRR, per-scope recall, expectNone false-positive rate, and the sha256 of the exact index measured; the index builder warns about duplicate skill names.
- Frozen independent holdout (
tests/fixtures/scenarios-holdout.json, authored by a separate agent that never saw the tuned suite): first measurement 100/100, Hit@1 99.0%, MRR 0.995. - Step-2 facet table gains 9 non-engineering facets so the runtime classifier has vocabulary for accounting/audit, personal finance, SME ops, HR, legal, sales/support, education, real estate, and logistics requests.
Measured results
| Suite | Pass | Hit@1 | MRR |
|---|---|---|---|
| 500-case scope suite | 500/500 | 91.6% | 0.946 |
| Original 100-case suite | 100/100 | 85.9% | 0.903 |
| Frozen independent holdout | 100/100 | 99.0% | 0.995 |
Full dual-review reconciliation (Claude Fable 5 + independent Codex round, 12 findings verified) lives in the run-local .codex-flow/skill-selection-test/EVALUATION-FINAL.md.
Also in this release
.github/workflows/publish.yml: pushing av*tag publishes to npm automatically (OIDC trusted publishing,--provenance).- npm:
@anhnguyen0905/codex-mcp@0.16.0is published; the plugin's.mcp.jsonpins it.
Full changelog: https://github.com/anhnguyen0905/codex-mcp/blob/main/CHANGELOG.md
v0.15.1 — plugin launches the published npm tarball
Patch release on top of v0.15.0. Fixes how the plugin starts its MCP server.
What changed
v0.15.0 fixed Failed to reconnect to Plugin:codex-flow:codex: -32000 by having .mcp.json install dependencies and compile on first start. That works, but it makes the very first connection depend on npm and the network at exactly the moment the client is waiting for a handshake — on a cold npm cache the dependency download, not the compile, dominates.
.mcp.json now runs the published tarball:
{ "command": "npx", "args": ["-y", "@anhnguyen0905/codex-mcp@0.15.1"] }The npm package ships a prebuilt dist/, so nothing is compiled at install time. Measured against the real registry: an initialize handshake returns serverInfo 0.15.1 in 0.69s.
This is the first release published to npm since 0.3.2 — that registry lag is exactly why the npx form was dropped back in 0.10.0, and publishing again is what makes it viable now.
Pinned, not @latest
The version is pinned so a plugin release cannot drift onto a server build it was never tested against. Because pinning adds one more place a release can forget to bump, scripts/check-release-consistency.mjs now reads the pin out of .mcp.json and compares it against package.json; extractMcpPinnedVersion returns undefined for a non-pinned launcher so switching back to a local-build config does not fail the gate.
Upgrading
/plugin update codex-flow@codex-mcp
Then restart Claude Code and confirm with claude mcp list or codex_health.
Known red
Three Windows-only test failures (liveView, tailProgress) predate this release — they assert POSIX chmod modes, POSIX-legal path characters, and Darwin window-close behavior. Ubuntu and macOS are green on Node 20 and 22.
v0.15.0 — skill-selection retrieval 99/100, self-building plugin launcher
Fixed — fresh plugin installs failed to connect
Failed to reconnect to Plugin:codex-flow:codex: -32000 on a newly installed plugin. The bundled .mcp.json launched node dist/index.js, but the plugin ships as a git clone and dist/ is gitignored — so a fresh install had no build and no node_modules, and the server exited immediately on every start.
The launcher now cds to ${CLAUDE_PLUGIN_ROOT}, installs deps and builds when dist/index.js is missing, then execs the server. First start after install is slower; later starts are unchanged.
Already on an older install? Patch it once:
cd ~/.claude/plugins/cache/codex-mcp/codex-flow/<version>
npm install --no-audit --no-fund && npm run buildAdded — skill-selection retrieval, 87/100 → 99/100
Two defects in the retrieval core, not ranking, were behind the misses. Multi-word terms never fell back to their constituent words ("competitor benchmark" scored exactly 0.0 against benchmark-methodology), and the relevance floor required descHits >= 2, discarding rare diagnostic single-word hits.
| Metric | Before | After |
|---|---|---|
| 100-case scope suite | 87/100 | 99/100 |
| precision@1 | 78/99 | 84/99 |
| avg selection size | 2.59 | 8.01 |
| full test suite | 671 | 700 |
selectSkills is now explicitly a shortlist producer; precision is restored downstream by a rank-1 guard and a prompt-level prune. The eval reports precision@1 and average selection size next to the pass rate, so a recall win paid for with noise cannot hide behind one number. An IDF-aware floor clause was removed as dominated after a two-factor ablation run twice with matching results.
Full detail in CHANGELOG.md.
Known red
Three Windows-only test failures (liveView, tailProgress) predate this release — they assert POSIX chmod modes, POSIX-legal path characters, and Darwin window-close behavior. Ubuntu and macOS are green on Node 20 and 22.
v0.13.0 — server auto-resume, reasoningEffort, 60-min timeout, parallel-by-default
Added
- Bounded server-side auto-resume —
retryPolicy+runRecoveryresume the same Codex session after transient turn failures (≤2), timeouts (≤1), or missing completion marker (≤1), with 2s/8s backoff. Opt out viaCODEX_MCP_AUTO_RESUME=0. - Recovery metadata — payloads report
attemptsandresumeReasons;codex_batchexposes them per task result. - Reasoning-effort control —
reasoningEffort: minimal|low|medium|high|xhighon execute/continue/review/batch, mapped to-c model_reasoning_effort.
Changed
- Default execution timeout 30 → 60 minutes (per attempt; 2h cap unchanged).
- Benign CLI notices (e.g. hook-trust banner) classify as warnings, no longer flipping completed runs to failed; live view/progress render them consistently.
- Live log + progress notifications survive resume attempts (single sink teardown per logical run).
- codex-flow: parallel-by-default when task-waves width > 1 (≤3 auto, >3 ask) with hard preconditions (clean tracked baseline, serial worktree creation, control-file copy, mandatory task commit before merge); file-disjoint slicing as the norm; reasoningEffort mapped per task complexity.
v0.12.0 — per-session report bundle with PIC attribution
Added
- Per-session report bundles — every codex-flow run writes
.codex-flow/reports/<YYYYMMDD-HHMMSS>/withplanning.md,allocation.md,tasks.md,cost.md, andSUMMARY.md, each carrying explicit PIC attribution (claude,codex, orboth). - Self-contained
scripts/session-cost.mjs— aggregates Codex cost frommetrics.jsonl; requires--since, supports--until,--cwd,--log, and--json, and usesCODEX_MCP_PRICINGwhen configured. session-reportplugin skill and command hooks — centralizes report templates and writes them at the Phase 0/2/3/5 gates.