kcg-ai-monitoring/docs
htlee 7ab6baeed2 fix(prediction): stats_aggregator hour 경계 silent 누락 복구
배경: prediction 5분 interval 이지만 한 사이클 평균 13분 소요라
사이클이 hour 경계를 넘나드는 경우(12:55 시작 → 13:08 완료)가 흔하다.
이 때 사이클 내 생성된 이벤트(occurred_at=12:57)가 aggregate_hourly
호출 시점(now_kst=13:08) 기준 현재 hour=13:00 만 UPSERT 되어
12:00 hour 는 이전 사이클 snapshot 으로 stale 유지되는 silent drop.

실제 포착: 2026-04-20 12:50 CRITICAL GEAR_IDENTITY_COLLISION 이벤트가
prediction_stats_hourly.by_category 12:00 slot 에서 누락. Phase 1-2
snapshot 의 C1 drift 섹션이 only_in_events=GEAR_IDENTITY_COLLISION 으로 탐지.

수정:
- _aggregate_one_hour(conn, hour_start, updated_at): 단일 hour UPSERT 추출
- aggregate_hourly(): 호출 시마다 previous→current 순서로 2번 집계
  · UPSERT 라 idempotent
  · 반환값은 현재 hour (하위 호환)
  · target_hour 지정 케이스도 ±1h 재집계

검증:
- 3 유닛테스트 (경계 호출 2건 / 반환값 / 일 경계) 전수 통과
- 운영 수동 재집계로 12:00 slot GEAR_IDENTITY_COLLISION: 1 복구
- snapshot 재실행 시 C1 drift 0 확인

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 13:32:44 +09:00
..
architecture.md docs: 2026-04-20 릴리즈 후속 정적 문서 최신화 2026-04-20 07:10:48 +09:00
prediction-analysis.md docs: 2026-04-20 릴리즈 후속 정적 문서 최신화 2026-04-20 07:10:48 +09:00
RELEASE-NOTES.md fix(prediction): stats_aggregator hour 경계 silent 누락 복구 2026-04-20 13:32:44 +09:00
sfr-traceability.md docs: 2026-04-20 릴리즈 후속 정적 문서 최신화 2026-04-20 07:10:48 +09:00
sfr-user-guide.md docs: 2026-04-20 릴리즈 후속 정적 문서 최신화 2026-04-20 07:10:48 +09:00
system-flow-guide.md docs: 2026-04-20 릴리즈 후속 정적 문서 최신화 2026-04-20 07:10:48 +09:00
중국어선_허가현황_20260106.xls feat(prediction): DAR-03 탐지 로직 보강 + 한중어업협정 906척 레지스트리 적재 2026-04-16 07:43:24 +09:00