Scan of Claude Code 2.1.318-2.1.322 (2026-11-04..11-10) and Codex CLI 0.167.0 (2026-11-06) against yoyo v0.4.0 at 4ae43f30 (yoagent 0.27.7, reqwest 0.13.4). Transferable defect class: credentials following an HTTP redirect to another host. Claude Code 2.1.321 fixed MCP OAuth requests sending secrets (refresh tokens) to another host when a server redirected them. In yoyo: yoagent 0.27.7 provider requests use provider::http_client() = reqwest::Client::builder().build(), i.e. reqwest's DEFAULT redirect policy (follow up to 10). reqwest's remove_sensitive_headers (src/redirect.rs:239, both 0.12.28 and 0.13.4) strips only Authorization, Cookie, Cookie2, Proxy-Authorization, WWW-Authenticate on a cross host/port redirect. Custom key headers are NOT stripped: Anthropic x-api-key (yoagent provider/anthropic.rs:166), Azure api-key (azure_openai.rs:74). So a base_url (custom provider, proxy, or a compromised/misconfigured endpoint) answering 307/308 to another origin would receive the key, and on 307/308 the POST body too. yoagent already solved this for its MCP HttpTransport (Redirects::SameOrigin / None policy, mcp/transport.rs:1041) but not for provider requests. Evidence grade: read from code, NOT run. Verify with two 127.0.0.1 stubs on different ports (port difference counts as cross-host in reqwest), never a real host. Fix belongs upstream (yoagent provider http_client redirect policy), narrow ask. Other deltas worth noting: Codex 0.167 auto-compaction now counts retained output from failed responses and responses with missing token usage (compaction under-counting class). Claude Code 2.1.319 permissions.denyInsteadOfPrompting (a prompt that would block is denied and the turn continues). Claude Code 2.1.318 warns 10 days before a stored sign-in expires. Claude Code 2.1.312 shorter system prompt for unrecognized model names. Sources: https://code.claude.com/docs/en/changelog ; https://github.com/openai/codex/releases/tag/rust-v0.167.0