Files
openclaw/agents/stock/workspace/memory/2026-05-07-behive-dup-mail.md
T
hyowons fed3526b20 Initial commit: OpenClaw 워크스페이스 버전관리 시작
설정·스크립트·스킬·문서·큐레이션 메모리 추적.
시크릿(credentials/identity)·런타임 상태(state/logs/sessions/sqlite)·
백업(clobbered/bak)·dream 캐시는 .gitignore로 제외.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 15:39:41 +09:00

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)

레이 본인이 텔레그램 세션에서 진행:

  1. 구 cron 747e1013-fae5-4e61-b6d3-479a8c68ca22 삭제 (agent:stock:main 세션키)
  2. 신 cron 80052b62-1c7a-4f8e-91c9-222ae4c3c045 등록
    • sessionKey agent:stock:telegram:direct:8443122995
    • expr 0 7,12,18 * * 1-5 Asia/Seoul
  3. 페이로드 검증 게이트 추가 (필수 검증, 하나라도 실패 시 전체 발송 금지):
    • 영상 title #태그 개수 vs 실제 save 종목 수 대조
    • 자막/제목상 다종목 영상인데 분리 불확실 시 실패 종료
    • 검증 통과 전 save/email/notify 호출 금지
    • 부분 save 후 불일치 발견 시 email/notify 호출 금지
    • "일단 보내고 정정" 명시 금지
  4. failureAlert 부착 ({after:1, channel:telegram, to:8443122995, mode:announce, accountId:stock})
  5. 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 발동 없음.