549545bde6
설정·스크립트·스킬·문서·큐레이션 메모리 추적. 시크릿(credentials/identity)·런타임 상태(state/logs/sessions/sqlite)· 백업(clobbered/bak)·dream 캐시는 .gitignore로 제외. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
2026-05-07 비하이브 종목분석 메일 분할 발송 사고
코디가 사용자(관리자님) 점검 요청 받아 대신 기록. 레이 세션 호출은 openclaw CLI 설정 깨짐(brave plugin) 때문에 차단 상태였음.
사고
07:00 cron 실행 중 신규 영상 2건을 처리하는 과정에서 email 명령을 영상별로 따로 호출해 같은 보고서 형식 메일이 2통으로 분할 발송됨.
- 영상 1: SK이터닉스
_o96Mx9QD9o - 영상 2: 미코
TX7txAGu32Q - 각 영상은 단일 종목(태그 1개) 영상이라 save 자체엔 문제 없었으나, Step 4 메일 발송에서 "한 통" 묶음을 어겼다.
- 사용자가 "왜 2개왔어"로 인지하고 수정 지시.
수정 (07:25~07:27 KST)
레이 본인이 텔레그램 세션에서 진행:
- 구 cron
747e1013-fae5-4e61-b6d3-479a8c68ca22삭제 (agent:stock:main세션키) - 신 cron
80052b62-1c7a-4f8e-91c9-222ae4c3c045등록- sessionKey
agent:stock:telegram:direct:8443122995 - expr
0 7,12,18 * * 1-5 Asia/Seoul
- sessionKey
- 페이로드 검증 게이트 추가 (필수 검증, 하나라도 실패 시 전체 발송 금지):
- 영상 title
#태그개수 vs 실제 save 종목 수 대조 - 자막/제목상 다종목 영상인데 분리 불확실 시 실패 종료
- 검증 통과 전 save/email/notify 호출 금지
- 부분 save 후 불일치 발견 시 email/notify 호출 금지
- "일단 보내고 정정" 명시 금지
- 영상 title
- failureAlert 부착 (
{after:1, channel:telegram, to:8443122995, mode:announce, accountId:stock}) - Step 5:
email <VID1> <VID2> ...한 번 호출 강조
Why
사용자 명시 요구:
- 성공 → 메일 + 텔레그램 발송
- 실패 → 발송 차단 + 텔레그램 실패알림
분할 호출 시 영상 수만큼 메일이 분리 발송돼 사용자 인지 부담·노이즈 발생.
How to apply
다음 신규 영상 처리 시 (cron 페이로드와 동일하지만 핵심만 재정리):
- (a) 영상별
#태그개수와 save 종목 수 정확 대조. 다종목 영상이면 종목별 JSON을 같은 VIDEO_ID로 여러 번 save - (b) 검증 통과 후
email호출은 모든 video_ids를 단일 인자열로 한 번 —email VID1 VID2 ... - (c) 부분 save 후 검증 실패 → email/notify 절대 호출 금지
- (d) 스크립트 레벨 email 멱등성은 아직 없음 — 페이로드 지시 엄수가 유일한 가드
관련 갭 (참고 — 사고 위험 X)
cmd_email에 video_ids fingerprint 기반 멱등성 락 미구현. 분할 호출 방지는 LLM 페이로드 지시에만 의존. 추후state/behive_email_sent.json추가 검토 가능 (사용자 결정 필요).- 본 사고 기록은 코디 작업이라 레이 세션 자체엔 회고가 없음. 다음 부팅 시 이 파일을 읽어 같은 실수 반복 차단.
12:00 cron 검증 결과
같은 날 12:00 cron 실행됨 (behive_last_fetch.json mtime 12:00:13). 신규 영상 0건이라 발송 0건으로 정상 종료. failureAlert 발동 없음.