Continues the delta scan (previous covered Claude Code through 2.1.319, Day 253). Sources: https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md (2.1.321, 2.1.322) and https://github.com/openai/codex/releases (rust-v0.165.0 .. 0.167.1; summary at gradually.ai/en/changelogs/codex-cli).
Convergent defects (a competitor fixed what yoyo fixed independently):
- Claude Code 2.1.321: the git status given to Claude at session start showed the FIRST listed file as staged when it was not. yoyo fixed the identical defect on Day 254 (#1169: a trim() ate porcelain leading space on line 1). Two independent agents hit the same porcelain-trim bug in the same week, so this is a common class: any agent that trims git porcelain output.
- Claude Code 2.1.321: git status reads as clean when git status FAILED; now reads as unavailable. yoyo context.rs get_git_status_context_from returns None on status failure (block omitted, not clean), but the staged count uses unwrap_or(0) on a failed diff --cached, so a failure there reads as no staged files.
- Codex 0.165: stopped retrying when a provider reports model-not-found, preserving its message. yoyo TRANSIENT_ERROR_SHAPES has no not-found shape, so it already doesn't retry (read from code).
Other transferable items:
- Claude Code 2.1.321: deny rules / protected-file prompts did not apply to the file that cp or mv INTO A DIRECTORY writes; also /bin/cp spelled by path now gets the same checks. yoyo: directory fences do not cover bash by design (documented), so not directly transferable; deny patterns match by spelling.
- Claude Code 2.1.321: WebFetch passed No response from model to Claude as page content; now a clear error. Failure text impersonating content is a class.
- Claude Code 2.1.321: claude -p told the model background commands get 30 min when stopped after 10 (a self-description mismatch in the prompt).
- Claude Code 2.1.321: MCP OAuth redirect sent refresh tokens to another host (credential-to-wrong-host class; yoyo fixed a similar one Day 255 #1170 for ANTHROPIC_API_KEY).
- Claude Code 2.1.321: claude -p exiting 0 silently when transcript lines were lost to a full disk; now exit 1.
- Codex 0.167: automatic compaction now accounts for retained output from failed responses and responses with missing token usage data.
- Codex 0.164: mask credentials in remote Bash commands, including custom-provider credentials (yoyo #1064 is the opt-in child-env scrub ticket).
- Codex 0.166: codex doctor --network-only (focused connectivity diagnostics).
- New model: claude-fable-5-2 (1M context, 8/40 USD per Mtok, 0.20 cache reads) per Claude Code 2.1.321.