2026.08.13 작업일지 v1.0.0
11:15, 폰에서 스크린샷이 날아왔다 — “카톡봇 답변이 안 와.” 00:01에 켜진 안전장치가 범인이었다. 봇은 멀쩡히 보고 있었고, 일부러 침묵하고 있었다. 18:18, 봇이 사진 속 게시글을 읽어 답하는 걸 확인하며 하루를 닫았다.
브릿지 릴리스 체인을 완주한 오전과, 카톡봇의 침묵을 파서 전방개방·사진 읽기까지 살려낸 오후. 결말부터 말하면 PR 일곱 개가 main에 들어갔고, 카톡봇은 이제 아무 방에서나 부르면 답하고 사진도 읽는다.
1. 새벽에 켜진 안전장치가 아침의 침묵이 됐다
그저께 밤 “오픈채팅 불특정다수 노출이 두렵다”는 요청으로 만든 트리거 화이트리스트 게이트가 오늘 00:01에 라이브됐다. 문제는 초기 허용목록에 딱 3곳만 들어갔다는 것 — 어제 밤 22:42까지 잘 답하던 친구 방·가족 방이 통째로 빠졌다. 봇은 죽은 게 아니라 “명단에 없는 방이니 침묵하라”는 규칙을 정확히 지키고 있었고, 로그에는 트리거 게이트 차단 — 미등록 방 이 초 단위로 쌓이고 있었다.
방을 하나 열면 다른 방에서 또 신고가 왔다. 하루 동안 친구 방, 가족 방, 또 다른 친구 방 둘 — 총 네 번. 중간에 “내 질문에만 답하게” 잠금 실험도 있었는데, 가족이 봇을 부르자 설계대로 무시하는 걸 보고 다시 전원 개방으로 돌렸다.
배운 것 — 허용목록 게이트를 라이브할 땐 기존 트래픽 인벤토리부터 시딩해야 한다. 새 안전장치의 첫 피해자는 어제까지 되던 것들이다.
2. “1 머지해” — 영수증보다 판단이 먼저였던 릴리스 체인
오전은 텔레그램 브릿지 릴리스 체인. 수리 PR#1759 머지(10:13) → 5노드 브릿지 재시작 → 공개 릴리스 v0.13.1(GitHub+PyPI)까지가 오전에 끝났고, 남은 정비 PR 세 개가 차례로 들어갔다. 검증 영수증이 아직 안 붙은 PR#1758은 “머지해” 한 마디로 정식 override 경로(사유가 도장에 그대로 남는)를 태워 0cc4d3a로 넣었고, 대신 후속 PR#1740의 브랜치를 그 main으로 동기화해 재발행 스윕을 돌렸다 — 672건 통과·실패 0. 사후검증이 선검증을 대신한 셈이다. 내가 만든 버전 bump PR#1760은 작성자≠머지자 규칙 때문에 다른 노드에 배차해서 43분 만에 완주했다.
덤으로, 추천답변을 전부 확인 버튼으로 묶어두던 “전부 보류” 스위치가 나흘째 방치된 걸 발견하고 5노드에서 내렸다(삭제 대신 보관 이동).
3. 방마다 문을 여는 대신 문지방을 고쳤다
네 번째 신고쯤 되니 구조가 문제라는 게 분명해졌다. “그냥 전체방 다 풀어줘”라는 결정이 떨어졌고, 게이트 자체를 없애는 대신 config 한 줄(* 와일드카드)로 켜고 끄는 전방개방 스위치를 게이트에 심는 쪽으로 갔다. 워커 노드가 픽스처 23케이스에 변이 프로브 3축까지 물려 PR#459를 만들었고, 완주 영수증(112 통과·실패 0)을 받아 eb3ce15로 머지, 라이브 반영 후 존재하지 않는 가짜 방 키로 “허용” 판정까지 실측했다. 이제 새 방은 등록 없이 바로 반응하고, 무서워지면 그 한 줄만 지우면 등록제로 복귀한다.
4. 봇의 눈은 통로만 있고 손이 없었다
“카톡봇 이미지 이제 읽기 가능?” — 실측해 보니 아니었다. 사진 읽기(그림 눈)는 갤럭시 캐시 직독이 1순위, 화면캡처가 폴백인 2단 구조인데, 직독은 계속 rc=6으로 미끄러지고 캡처는 맥 카톡이 로그인 화면이라 무장해제 상태였다.
원인 부검이 오늘의 백미다. 어제 “사진 동기 회수 통로(leg10)“가 머지됐는데도 안 됐던 이유 — 통로를 만들면서 그걸 받아 쓰는 소비자 배선을 아무도 안 붙였다. 호출부가 0곳이었다. 여기에 방 키 좌표계 불일치(갤럭시식 room: 키 vs 맥 창 이름)까지 겹쳐 있었다. 담당 노드가 두 축을 다 고친 PR#460을 픽스처 29케이스+완주 영수증으로 올렸고, 실제 사진을 투입한 왕복 테스트에서 봇이 캡처 속 게시글의 게시판·제목·기사 내용까지 구체적으로 판독해 답하는 걸 확인했다. 3fd95fc로 머지, 18:18 라이브 재기동. 맥 카톡 로그인과 무관하게 도는 경로라는 게 이 수리의 요점이다.
배운 것 — 통로를 만든 것과 소비자를 배선한 것은 다른 일이다. “머지됐다”와 “실전에서 돈다” 사이에는 호출부 grep 한 번이 있다.
5. 그래서 뭐가 남았나
- 브릿지: v0.13.1 공개 릴리스 + 수리·정비 PR 4건 main 착지, 전부보류 스위치 해제.
- 카톡봇: 전방개방 스위치 라이브(PR#459), 사진 읽기 라이브(PR#460) — 실물 왕복 실증 완료.
- 그 외 오늘 main에 들어간 것들: 발신 wedge 근본수리, send-stall 감지 레일, bash 3.2 테스트 전수 수리, 주간 외부매출 집계 leg.
- 남은 숙제: 맥미니 카톡 로그인 복구(폰 확인 필요, 티켓 대기)와 오늘 밤 전량 스윕 결과 확인.
— 강대종 / @ssamssae