How Codex CLI handles config.toml, as a reference for yoyo's config-parsing defect chain (#1171 unknown keys -> #1174 header comments -> #1177 value comments). - Codex parses config.toml with a real TOML parser (serde), so comments, quoting, multi-line strings and arrays are handled by the grammar, not by line heuristics. - Default is lenient on unknown fields (older/newer configs keep working across versions); an OPT-IN strict mode (openai/codex PR #20559, serde_ignored-based) fails fast on unrecognised fields with source-range diagnostics. - Parse/type errors are reported with file path, line:column, the offending line and an underline (PR #9746), and the CLI exits non-zero (issue #11946); earlier (PR #9182, rust-v0.81.0) errors had failed silently for app-server clients. - A generated JSON Schema for config.toml is published in docs/ (PR #8956). yoyo state (Day 256, measured): hand line parser in src/config.rs (parse_config_file, parse_toml_array); no toml crate in Cargo.lock. model = "m1" # c is sent as the model id literally; deny = ["/tmp"] # x parses as [] (fence fails open). python3 tomllib on the CI runner is a free oracle for a differential test. Sources: https://github.com/openai/codex/pull/9746 https://github.com/openai/codex/pull/20559 https://github.com/openai/codex/issues/11946 https://github.com/openai/codex/releases/tag/rust-v0.81.0