forked from bchanot/claude
Model-switch re-review found 7 real defects, fixed before any code: - fail-open contract now covers unexpected errors (403/5xx/DNS/timeout) via top-level try/except -> degraded JSON, exit 0 (was: traceback+exit 1) - test isolation: SEO_DATA_ENV_FILE override so tests never source the real vault (degrade tests would hit network on machines with live keys) - CrUX: None-safe normalizer (missing INP on low-traffic sites) + origin-level fallback on page-level 404 - refresh errors split token_revoked (RefreshError) vs network_error - fixed set-u STORE_MISSING ordering bug in Task 4 test - Makefile read -p bashism wrapped in bash -c (dash-safe) - SKILL.md fetch path -> ~/.claude/lib/... (skills run from project dir) - spec/plan aligned: label not email in accounts output, ok+[] not 'empty', CrUX history -> YAGNI v2, PageSpeed-key routing rejected v1 (key would enter subagent context)