- 상태 파일로 이전 이슈 추적 (~/Library/Application Support/infra-agent/)
- stable issue key (docker:gpu:container:status 형태)
- 2회 연속 실패 시 알림, 2회 연속 성공 시 복구 알림
- 동일 이슈 지속 시 무음 (alert storm 방지)
- MacBook Pro를 EXPECTED_TAILSCALE_HOSTS에서 제거 (잠자기는 정상)
- state file atomic write + 손상 시 graceful fallback
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
보호 컨테이너(home-caddy, home-fail2ban, nanoclaude) 재시작 차단.
MCP 11개 도구 + NanoClaude wrapper.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Dockerfile: infra/ 복사, openssh-client, healthcheck 추가
- requirements.txt: asyncssh, python-dotenv 추가
- core/ssh.py: INFRA_LOCAL_HOST 환경변수로 self-SSH 대신 로컬 실행
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
이상 감지 시 Gemma 4(MLX localhost:8801)로 원인 분석 + 권장 조치 생성.
Gemma 실패해도 rule 결과만으로 알림 전송 (graceful degradation).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5분 cron용 agent. docker/disk/health/network 4개 체크.
asyncssh 로그 억제, 작은 파티션(< 1G) 무시.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>