8.3 KB · 수정 2026-07-29 00:31
목차

세션 — 현장 내용 탭 분리: 카톡관리(1탭) + 통화관리(2탭) · 야간 통화 파이프라인 (2026-07-28)

지시 (페페)

"카톡관리를 pfs field/worklog 의 메인페이지로 해줘. 기존 페이지를 탭으로 나눠서 첫번째 탭으로. 현재 worklog 페이지는 통화관리 탭으로 2번째 위치시키고 통화내용 수집분만 전시한다. 더이상 카톡내용 같이 관리할 필요 없음. 통화내용 전사분은 매일 야간시간에 현장 매핑을 서브에이전트를 통해서 진행한다. 전사내용은 가구 전문가 지식베이스와 현장별 업무 내용 정리에 사용한다. 이번주 월요일부터의 기록만 카톡 게시글과 같은 방식으로 정리해서 현장별로 그룹화 한다. 월요일 이전의 내용은 모두 숨김이력으로 돌린다. 앞으로는 매일 야간에 같은 작업을 반복한다. 운영 배포"

결과 — 운영 배포 완료

항목 상태 커밋
A 카톡관리 1탭(신규 API·미러·명령큐) pfs master 028fd6adeploy-live 9e3a049
B 통화관리 2탭(source='call'만)
C 이번주 월요일 창 + 숨김이력
D 야간 서브에이전트 현장매핑·KB talklog 1440777, 예약작업 PFS-Night-Worklog 02:00
E 운영 배포 + 후속 502 수정 master dd76774deploy-live a9036c3
로컬 동기화(데몬↔PFS) poin-agent 39726f9, 예약작업 PFS-KakaoBoard-Sync 1분

핵심 설계 — 왜 「미러 + 명령 큐」인가

게시글 원본(board.md·hidden.jsonl)은 사무실 PC에 있고 폰 조작도 그 감시 데몬만 한다. PFS는 EC2에 있고 그 PC로 들어올 수 없다(NAT 뒤). 그래서 방향을 뒤집었다.

[사무실 PC]  poin-agent/pfs_board_sync.py           [EC2] PFS
  board.md  ──① 미러 push(rows/hidden/원문) ─────▶  kakao_board      → 화면이 읽는 단일 출처
            ◀─② 대기 명령 pull ───────────────────  kakao_board_op   ← 웹의 ✔⊘✎✖↩ 가 쌓이는 큐
  ③ board_rows 로 적용 → board.md
            ──④ ack(완료/실패) + 갱신 미러 ────────▶
  ⑤ watcher.push_web_edits() 가 board_hash 변화를 보고 폰 게시글에 반영(08~20시)

통화관리 탭 — 통화 수집분만

노출 창 — 이번주 월요일부터

야간 파이프라인 (talklog/server/night_worklog.py, 매일 02:00)

검증

배포 중 잡은 회귀 (운영 실측)

숨김이력은 현장 묶음이 682장이라 ⊞ 전체 펼침/api/worklog/items를 한꺼번에 쏘고 상당수가 502로 떨어졌다(2주 창일 땐 수십 장이라 안 드러나던 문제). 모든 항목 조회가 지나는 loadItems 한 곳에 큐를 두고 동시 6개만 흘려보내 해결 — 전체펼침·검색펼침이 함께 보호된다. complete에서 큐를 풀어 실패해도 막히지 않는다. 재검증 = 콘솔 오류 0.

함정 · 규칙 (신규)

  1. api/config.py는 브랜치 간 파일 통째 포워드 금지 — master엔 미배포 monthly_close 네임스페이스가 있어 그대로 가져오면 운영이 임포트에서 죽는다. 이 파일만 deploy-live에서 해당 2블록을 직접 추가했다. (다른 파일은 두 브랜치가 동일해 git checkout origin/master --로 안전.)
  2. 감시 데몬은 상승권한이라 코디가 재시작 못 한다(Stop-Process 액세스 거부, PID 2204 pythonw). → 예약작업 PFS-KakaoBoard-Sync(1분, 숨김 vbs)를 예비 경로로 두어 구버전 데몬이 떠 있어도 웹 편집이 반영되게 했다. 데몬 안 호출과 겹치지 않도록 싱글턴 락 47312.
  3. 대량 카드 화면에서 일괄 XHR = 502 — 창을 넓히는 기능을 추가할 땐 펼침 경로의 동시성을 같이 본다.
  4. schtasks를 git-bash에서 부르면 /Create가 경로로 변환된다 → MSYS_NO_PATHCONV=1 접두.

⏳ 페페 몫