Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 20s
Smoke Test / smoke (pull_request) Failing after 23s
Validate Config / YAML Lint (pull_request) Failing after 17s
Validate Config / JSON Validate (pull_request) Successful in 20s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 54s
Validate Config / Python Test Suite (pull_request) Has been skipped
Validate Config / Shell Script Lint (pull_request) Failing after 57s
Validate Config / Cron Syntax Check (pull_request) Successful in 12s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 11s
Validate Config / Playbook Schema Validation (pull_request) Successful in 23s
Architecture Lint / Lint Repository (pull_request) Failing after 22s
PR Checklist / pr-checklist (pull_request) Successful in 3m27s
Bezalel cross-review identified a critical gap: the deadman-fallback script only checked Kimi API health, while the fleet's primary provider is Anthropic (config: provider=anthropic, default=claude-opus-4-6). This caused the dead-man switch to never trigger when Anthropic went down — the primary failure would go undetected. Fix: - Added check_anthropic() function parallel to check_kimi() - Updated diagnose_and_fallback() to call both health checks every run - Provider-agnostic fallback logic: * primary_ok derived from cfg['model']['provider'] * fallback tags use dynamic provider name (e.g., "anthropic->local-llama") * recovery logic handles both kimi and anthropic fallback chains - Updated docstring to reflect "Kimi or Anthropic" This ensures the dead-man switch correctly detects and responds to outages regardless of which primary LLM provider is configured. Part of cross-review of PR #424 (v7.0.0 checkin) and PR #425 (deadman fallback). Answers review questions: - "Does tagging all repos same version make sense?" → Yes, coordinated release ensures fleet compatibility across 11 repos; v7.0.0 is the first semantic versioned release unifying the stack. - "Should each VPS have its own fallback variant?" → Not yet; the current unified fallback chain is sufficient. Future work: move VPS list to config.yaml for per-wizard customization if needed. - "Any edge cases with YAML config backup?" → Backup uses atomic copy-on-write of config.yaml; confirmed safe for single-writer cron context. Config is rewritten atomically via yaml.dump(). - Code quality: provider-agnostic design improves testability and maintainability; reduces future merge conflicts. Closes #428