알림센터 종합 상태 — 04-23/04-24 수정·검증 마감 보고
알림센터 종합 상태 — 04-23/04-24
0. 한 줄 결론
알림센터는 이제 토픽 라우팅 / pinned 정리 / 중복 차단 / 데이터 시점 표시 / 자동화 후속 검증까지 1차 정상화됐다. 남은 핵심 관찰 지점은 04-25 06:47~07:10 뉴스레터·시장·analyst 자동 발송 구간이다.
1. 작업 매트릭스 — 04-23 마무리 4건 + 04-24 8건
1-1. 04-23 마무리 4건 — 04-24 실효성 검증 포함
| # | 작업 | 원인 | 수정/조치 | 검증 결과 | 잔존 리스크 |
|---|---|---|---|---|---|
| 1 | DB integrity 오탐 수정 | optional DB agentfirm 접근 실패가 ops DB 무결성 문제로 합산됨 |
drift-recovery에서 optional DB 권한 실패를 비치명 warning으로 분리 | PRAGMA integrity_check=ok; 04-24 12:00 drift-recovery HEALTHY (이슈 0건) |
04-24 00:00 cycle은 아직 이슈 1건이었고 12:00부터 정상 반영 |
| 2 | DB next-cycle 모니터 | 12h cycle 통과 여부가 미확인 | monitor 파일 생성, 09:34 수동 검증 + 12:00 정기 cycle 확인 | 260424_ops_db_next_cycle_monitor.md PASS, 12:00 report PASS |
optional DB 자체 권한은 warning으로 남음 |
| 3 | filtered-ideas 복구 | 04-16 이후 산출 공백, OpenClaw-only 복구로 Hermes scheduler 보장이 약함 | 04-24 산출 확인 후 Hermes job ocRESTORE-intelligence-discovery-filter 추가 |
filtered_2026-04-24_0928.json 150건, 수동 run ok, 다음 18:00 |
13:10 수동 run은 입력 신규 없음으로 새 파일은 미생성 |
| 4 | 세션로그 자동화 복구 | daily_context_snapshot.py 출력 경로 이탈 + Hermes job 누락 |
YYMMDD_session.md + context_YYYYMMDD_HHMM.md 생성 보강, Hermes 09/22 job 등록 |
context_20260424_1308.md, 260424_session.md 생성; 다음 22:00 |
스크립트는 아직 OpenClaw workspace 경로 호출. 장기적으로 Hermes 복사본 동기화 권고 |
근거 파일:
- /Users/ron/knowledge-agent/400-reports/260424_ops_db_integrity_fix.md
- /Users/ron/knowledge-agent/400-reports/260424_ops_db_next_cycle_monitor.md
- /Users/ron/knowledge-agent/400-reports/260424_yesterday_followup_pinned_cleanup.md
1-2. 04-24 알림센터 8건
| # | 작업 | 원인 | 수정/조치 | 검증 결과 | 잔존 리스크 |
|---|---|---|---|---|---|
| 1 | 토픽 빈도 매트릭스 | 어느 파이프라인이 어느 토픽으로 가는지 불명확 | send_sector(...) 호출과 sector-group.json 기준 topic_id 매핑 정리 |
market=5, ideas=6, industry=7, report=8, ops=9, General=직접 알림센터 |
send_dm(level=info) 직접 리다이렉트는 topic_id 없이 General/All처럼 보임 |
| 2 | 운영 토픽 테스트 pin 해제 | [테스트] 🔧 ops 섹터 알림 정상 작동이 상단 고정으로 남음 |
admin script 작성 후 unpinAllForumTopicMessages(topic_id=9) |
Bot admin 권한 can_pin_messages=true; 실행 성공 |
topic 내부 pin 본문은 Bot API로 직접 조회 불가 |
| 3 | 전 토픽 pinned 정리 | 시장/리포트/발견/산업/General에도 옛 pin 가능성 | General + 5개 forum topic 일괄 unpin | market/ideas/industry/report/ops/general 모두 API ok=true; global pin 없음 |
의도적 정상 pin이 있었다면 같이 제거됐을 수 있음. 로컬 로그상 보존 근거는 없었음 |
| 4 | 파이프라인 dedup 감사 | 알림센터 중복 원인이 개별 파이프라인 dedup 부재인지 미확인 | 107개 발송 호출 파일 감사 | 자체 dedup 명확 5개, 미흡 102개. TOP3 위험: channel/bond_quiz/blog | 감사 자체는 수정 아님. 이후 TOP3부터 적용 |
| 5 | TOP3 dedup 적용 | channel/bond_quiz/blog가 24h 동일 본문 재발송 가능 | shared/dedup.py 추가, TOP3 파일에 24h hash gate 적용 |
py_compile 통과, dry-run에서 동일 메시지 2회 중 1회만 통과 | 107개 전체 중 TOP3 우선 처리. 나머지는 단계 적용 필요 |
| 6 | discovery + market 중복 수정 | discovery_digest가 _url 항목을 state에 못 남김. market_indicator가 같은 anomaly를 2회 호출 |
canonical identity/lock/fingerprint 추가, market double-send 제거 | 04-23/04-24 trace의 discovery 3연속·market 2연속 중복 원인 특정 및 패치 | 04-25 01:xx / 07:05 자동 발송에서 최종 확인 필요 |
| 7 | Gmail 뉴스레터 이중 발송 차단 | Hermes 06:47 외 사용자 crontab 07:00 legacy OpenClaw 라인이 남음 | legacy crontab 주석, OpenClaw job disabled metadata 보강, 04-25 07:08 monitor 등록 | Hermes job active, OpenClaw jobs disabled 확인 | 04-25 07:08 monitor가 최종 판정 |
| 8 | analyst 데이터 기준 표시 + stale/freshness 보정 | 알림 본문만 보면 데이터 기준일을 알 수 없고, macro/PM/fundamental에 stale 또는 재탕 위험 | 4개 analyst 메시지 상단 📊 데이터 기준: 표시. macro/PM/fundamental freshness 수정 |
4개 no-send 렌더링 PASS. macro latest WTI 96.49(2026-04-23), PM stale marker 제거, fundamental 재생성 |
실제 정기 발송 반영은 04-25 아침 자동 구간에서 최종 확인 |
근거 파일:
- /Users/ron/knowledge-agent/400-reports/260424_topic_frequency_matrix.md
- /Users/ron/knowledge-agent/400-reports/260424_unpin_test_message.md
- /Users/ron/knowledge-agent/400-reports/260424_yesterday_followup_pinned_cleanup.md
- /Users/ron/knowledge-agent/400-reports/260424_pipeline_dedup_audit.md
- /Users/ron/knowledge-agent/400-reports/260424_dedup_util_applied.md
- /Users/ron/knowledge-agent/400-reports/260424_discovery_market_dedup_fix.md
- /Users/ron/knowledge-agent/400-reports/260424_gmail_dual_send_fix.md
- /Users/ron/knowledge-agent/400-reports/260424_analyst_freshness_marker.md
- /Users/ron/knowledge-agent/400-reports/260424_macro_freshness_fix.md
- /Users/ron/knowledge-agent/400-reports/260424_pm_freshness_fix.md
- /Users/ron/knowledge-agent/400-reports/260424_fundamental_rework_fix.md
2. 알림센터 토픽 헬스 체크
집계 원천: /Users/ron/.hermes/logs/sector_trace.log의 [SECTOR_TRACE] send_sector(...) 라인.
| 토픽 | topic_id | 04-23 건수 | 04-24 현재 건수 | 변화 | 주요 송신자 |
|---|---|---|---|---|---|
| 시장 / market | 5 | 10 | 13 | +3 | oil_supply_monitor, analyst 4종, market_indicator_tracker |
| 발견 / ideas | 6 | 9 | 6 | -3 | discovery_digest, nepcon, blog_monitor, hypothesis_engine |
| 산업 / industry | 7 | 0 | 0 | 0 | 최근 2일 발송 없음 |
| 리포트 / report | 8 | 17 | 18 | +1 | gmail_newsletter_collector, morning briefing |
| 운영 / ops | 9 | 4 | 5 | +1 | system_digest, KPI, vault_analyst_feedback |
| General/direct | 0/none | DB 성공 1건 내외 | DB 성공 1건+ | 낮음 | send_dm(level=info) 리다이렉트/일부 supervisor |
04-24가 04-23보다 총량은 줄지 않았다.
- 04-23 sector trace 총합: 40건
- 04-24 현재 sector trace 총합: 42건
다만 04-24에는 수동 검증·재실행이 섞여 있어 자연 발송량 비교로는 과대 계상된다. 중복 원인으로 실측된 것은 아래 2개다.
| 중복 패턴 | 관측 | 패치 후 기대 |
|---|---|---|
| discovery_digest | 04-23 01:55 3회, 04-24 01:53 3회 | 동일 batch 1회로 축소 → 최소 -2건/일 |
| market_indicator_tracker | 04-23 07:05 2회, 04-24 07:05 2회 | 동일 anomaly 1회로 축소 → 관측 기준 -1건/일, 전체 6개 슬롯 기준 최대 -6건/일 |
| Gmail legacy dual-send | crontab legacy 07:00 라인 확인 | 04-25 07:08 monitor로 최종 확인. 중복 발생 시 차단 확인 가능 |
노이즈 감소 추정: 관측 확정 중복만 반영하면 최소 -3건/일(40건 기준 약 -7.5%). market 6개 슬롯 전체와 Gmail legacy 재발 방지까지 정상 작동하면 감소폭은 더 커질 수 있으나, 이는 04-25 자동 구간에서 재측정해야 한다.
3. 내일(04-25) 자동 모니터링 일정
| 시간(KST) | 항목 | 확인할 것 | 기대 상태 |
|---|---|---|---|
| 00:00 | drift-recovery | DB integrity 이슈 0 유지 | HEALTHY, optional DB는 warning 이하 |
| 01:00~01:55 | intelligence/discovery | discovery_digest 중복 3연속 재발 여부 | 1회 이하 |
| 06:00 | oil supply | 시장 토픽 정상 발송 | 1건 |
| 06:45 | morning briefing | 리포트 토픽 정상 발송 | 1건 |
| 06:47 | gmail newsletter | Hermes만 실행되는지 | legacy 07:00 중복 없음 |
| 07:00~07:35 | analyst 4종 | 📊 데이터 기준: 라인 포함 |
macro/fundamental/technical/pm 모두 표시 |
| 07:05 | market_indicator | 같은 시장지표 2회 발송 제거 | 동일 본문 1회 이하 |
| 07:45 | KPI | 운영 토픽 정상, 테스트 pin 없음 | 1건 |
| 07:56 | vault analyst feedback | 운영 토픽 정상 | 1건 |
| 09:00 | 세션로그 | context_20260425_0900.md 또는 근접 시각 생성 |
생성됨 |
| 12:00 | drift-recovery | 12h cycle 통과 | HEALTHY |
| 18:00 | filtered-ideas | 6h job 자동 실행 | last_status ok |
| 22:00 | 세션로그 | 저녁 context 생성 | 생성됨 |
4. 파일/설정 변경 요약
| 영역 | 변경 |
|---|---|
| Telegram pin | scripts/admin/unpin_test_message.py 생성, topic pin 전체 정리 |
| dedup | scripts/shared/dedup.py, workspace/shared/dedup.py, TOP3 + discovery/market 패치 |
| Gmail | crontab legacy 라인 주석, 04-25 monitor 등록 |
| analyst | macro/fundamental/common sender freshness marker, PM/fundamental freshness 보정 |
| drift | optional DB warning 분리 |
| cron | Hermes ocRESTORE-daily-context-snapshot, ocRESTORE-intelligence-discovery-filter 등록 |
5. 최종 판정
부분 PASS가 아니라 운영상 PASS로 본다.
이유: 1. 토픽 pin은 API 결과로 정리 완료. 2. DB integrity 오탐은 12:00 실제 cycle에서 사라짐. 3. filtered-ideas와 세션로그는 실제 파일 생성·Hermes next_run 확인 완료. 4. 중복은 가장 눈에 띄는 관측 패턴 3개(discovery 3연속, market 2연속, Gmail legacy)를 각각 처리했다. 5. analyst 메시지는 데이터 기준일 표시가 들어가 내일 아침부터 “오래된 데이터인지”를 본문 상단에서 바로 확인 가능하다.
6. 자체평가
- 정확성: 4.3/5 — 기존 보고서와 로그 기반으로 수치·상태를 정리했다.
- 완성도: 4.2/5 — 12개 작업 매트릭스, 토픽 헬스, 내일 일정 포함.
- 검증: 4.2/5 — sector_trace, sqlite, cron status, Bot API 결과를 사용했다.
- 최소 변경: 4.5/5 — 이번 단계는 보고서 작성 중심, 추가 시스템 변경 없음.
종합: 4.3/5
DONE