2026-06-14 세션 — talklog PC 수집: 사진 원본(채팅방 서랍) 역공학 + 전체 파이프라인
talklog PC 일회성 2주 수집의 사진 원본 수집 경로 역공학(페페 우선 지시)과 전체 파이프라인 구현·검증. ops·safety 도메인의 svc:talklog-collector 줄기.
논의·대안
- 사진 수집 수단 후보 3종을 라이브로 비교: ① 그리드 썸네일 우클릭→저장(앨범 통째·확정 채택) ② 더블클릭 뷰어(타이틀에 날짜 有지만 앨범 범위만 내비 → 룸 전체 수집 불가로 탈락) ③ 단일클릭 멀티선택(무동작 → 없음).
- 썸네일은 카톡 자체 GDI 렌더라 UIA 비노출 → 좌표 기반. 그리드 행 탐지는 "우클릭 시 공유/저장 메뉴가 뜨면 썸네일" 판정(빈칸/월헤더는 메뉴 없음)으로 해결 — 이미지 분석 없이 견고.
- 날짜 경계: 저장 파일명
KakaoTalk_YYYYMMDD_id[_NN].jpg에 발신일 내장 → 저장 후 파일명으로 2주필터. 저장처는 고정 폴더(OneDrive\문서\카카오톡 받은 파일)라 diff→이동으로 사용자 폴더 원상복구.
대안/결정
- 핵심 함정 발견: 저장 클릭 후 "저장 결과" 모달(~300x200, 이름없는 EVA_Window_Dblclk)이 모달로 이후 우클릭/메뉴를 전부 블로킹 → 매 저장 후 WM_CLOSE 필수. 텍스트 Ctrl+S 내보내기 완료 모달(~300x227)도 동일 처치. 이 한 가지가 첫 시도 실패(1장만 저장)의 원인이었음.
- 방명=방창 .Name(uiautomation) 확정 → 목록 행 인덱스로 열기만 하면 OCR 없이 방이름 획득. 목록은 최신순이나 고정 핀 방이 상단에 섞일 수 있어 단순 첫 컷오프 중단 대신 연속 N개 컷오프밖이면 종료.
- ESC=서랍 닫힘이라 메뉴 dismiss에 ESC 금지. 입력창 RICHEDIT 클릭금지·내보내기 Ctrl+S만("모두 삭제" 회피) 안전규칙 유지.
산출물
C:\dev\kakao-collector\:collect_photos.py(사진 수집·신동승 7장 보관/4장 컷오프밖 검증),collect_all.py(오케스트레이터=목록순회·텍스트export·2주필터·사진·대화방목록.csv·--resume·2방 검증), 역공학 탐색 스크립트 다수.- 산출물 트리
C:\dev\kakao-inbox\:text/<방>.txt(+.filtered),photos/<방>/,대화방목록.csv. - 문서:
kakao-collector\STATUS.md갱신, design.md "PC 일회성 수집기" 절 갱신(단일출처).
전체 수집 실행 (같은 세션, 순차 서브에이전트)
- 페페 지시 "하위 에이전트로 순차·분할 진행, 제외 7방".
EXCLUDE(이천대월·카카오뱅크·톡클라우드·가족 카톡방·포인-월드·사촌철살인·디에스디 염경열) +--max-new(청크 분할) +--build-csv(디스크스캔 재생성) 추가 후 순차 서브에이전트로 실행. - 라이브중 2함정 수정(없으면 사진 전부 실패): ① ≡ 메뉴 구성이 방마다 다름(1:1은 '대화상대 초대하기' 1번 → 채팅방 서랍 2번) → 첫 ▶서브메뉴 항목 자동탐지. ② 방/서랍 창이 보조 모니터·소형으로 열림(예 3270,72) →
MoveWindow고정 정규화. 첫 청크는 텍스트만 되고 사진 전부 실패 → 디버깅 후 해소. - 함정: 실행중 CSV는 목록 스크롤·청크 경계로 누락 가능 → CSV는 text/·photos/ 디스크 스캔으로 재생성(
--build-csv)이 정답. - 결과: 55방 텍스트 · 42방 사진 · 사진 189장 · 제외 7방. 컷오프(05-31) 연속 3방 초과 시 COMPLETE. 사용자 폴더 원상복구(저장 jpg 0), 컷오프밖 132장
_discarded\(가역).
커밋/다음
- user_brief 로컬 커밋
21fb420(빌드) + 후속(실행 결과 반영). 코드 리포(kakao-collector)는 git 아님. - 다음(사용자):
대화방목록.csv수집여부에서 개인방 제외표시(외갓집 남조카방 46장·아빠 등 일부 수집됨) → 후속 처리부(요약 파이프라인)는 모바일 분기와 공통.
관계
- 단일출처 [design.md "PC 일회성 수집기"]. 모바일 상시 앱 분기(접근성 스크랩)는 별개·추후. domain:ops·safety / svc:talklog-collector.