Three findings from the Codex 0.16.0 review, all conceded:
Fixed
- Fenced errors keep MCP error semantics: the #45 error fence returned the structured envelope without
isError: true, so generic MCP clients could classify a failed execution as success. Now returnsisError: truewith the same fenced envelope. - brand_context instructions point at real paths:
next_stepsand the tool description referenceddata.context/data.output_contract;buildResponsespreads data at the top level. Corrected, with client-level path assertions. - A/B receipt-arm documentation corrected: clean/dirty tree stamps do NOT distinguish experiment arms (receipts accumulate as untracked files). RESULTS.md prose corrected, scores unchanged; receipts now stamp
experiment_arm(EVAL_ARM env) + a dirty-diff hash.
1,004 tests.