Codex CLI rust-v0.162.0 (2026-10-08, PR #51203) made apply_patch preserve existing CRLF line endings by default. Live probe of yoyo b57d5831 (yoagent 0.25.2 EditFileTool, wrapped by yoyo src/smart_edit.rs SmartEditTool): a single-line edit_file on a CRLF file succeeds and keeps CRLF, but a MULTI-LINE old_text (joined by LF, as the model writes it) against a CRLF file fails with old_text not found. The error says Nearest match at line 1 with text identical to old_text, because str::lines() strips CR, and the recovery hint says to use read_file and copy the exact text, which cannot help because the model cannot see CR. The model then invented a wrong diagnosis. yoagent edit.rs does content.matches(old_text) with no line-ending normalization. Fix shape: when the file is CRLF and old_text has bare LF, translate old_text and new_text to CRLF before matching (or in the smart_edit autofix path). Also noted: Codex 0.162 honours server Retry-After; yoagent 0.25.2 agent_loop.rs already does (Retry-After wins over backoff), so that is not a gap for yoyo. The latest Claude Code changelog is still 2.1.296, already analysed. Sources: https://github.com/openai/codex/releases/tag/rust-v0.162.0