Files
timmy-config/bin
Timmy Hermes Agent fe3fbebd49
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
cross-review: make deadman-fallback provider-agnostic (#428)
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
2026-04-26 03:35:52 -04:00
..