**task-1775.1 완료 보고** (dev4-team) **완료 보고서** (6분 33초) **핵심 결과** `/api/system/watchdog` GET 엔드포인트 + SystemView.js 와치독 섹션을 구현하여, timer 상태(활성/비활성), 마지막/다음 실행 시각, 오늘 통계(실행 45회, STALLED 2건, 재위임 2건), 최근 50줄 로그를 접이식으로 확인 가능. curl 테스트로 JSON 응답 정상 확인 완료. ## 수정 파일 - `/home/jay/workspace/dashboard/server.py` — `/api/system/watchdog` GET 엔드포인트 추가 (line 2342-2427) - `/home/jay/workspace/dashboard/components/SystemView.js` — watchdog state 2개 + useEffect fetch + 와치독 UI 섹션 추가 ## 구현 내용 ### 백엔드 (server.py) - `systemctl --user show session-watchdog.timer`로 timer 상태 조회 (ActiveState, LastTriggerUSec) - `systemctl --user status session-watchdog.timer`에서 Trigger 라인 파싱으로 next_run 획득 (모노토닉 타이머 대응) - `/home/jay/workspace/logs/session-watchdog.log`에서 오늘 날짜 라인 필터링 + 패턴 카운트 - subprocess timeout=5초, FileNotFoundError 안전 처리 ### 프론트엔드 (SystemView.js) - 백그라운드 프로세스 섹션 아래에 접이식 와치독 **발견/해결 이슈 1건** 1. **next_run이 null 반환** — `NextElapseUSecRealtime` 속성이 모노토닉 타이머에서 비어있음. `systemctl status` 출력의 `Trigger:` 라인 파싱 fallback 추가로 해결.