배경
PR #906 작업 중 "CI가 아직 도는 중"이라고 2세션에 걸쳐(2026-08-03 생성 → 2026-08-05 재확인 요청 시점까지, 약 2일) 보고했으나, 실제로는 PR #906이 생성 44분 만에 duplicate으로 closed되어 있었다. CI 자체는 정상적으로 6분 만에 통과했다. 즉 실패한 건 "CI 완료"가 아니라 **"CI/PR 상태 변화를 세션이 인지하는 경로"**다.
라이브 증거 (2026-08-05 재조사, gh CLI 직접 조회)
타임라인 (전부 2026-08-03, UTC):
| 시각 |
이벤트 |
| 09:36:03 |
PR #906 (fix/configurable-max-buffer-size) open, author seoseo-ai (gongyung 브릿지 identity) |
| 09:36:07 |
harness-ci / codeql 워크플로 트리거 |
| 09:39:18 |
PR #908 open (jinon86) — 같은 근본원인(claude-agent-sdk 1MB 고정 버퍼)에 대한 별도 수정 |
| ~09:42 |
PR #906 CI 완료 — harness-ci success(6m12s), codeql success(1m11s), 회귀 0건 |
| 10:07:23 |
PR #908 MERGED |
| 10:26:37 |
PR #906 CLOSED — jinon86 comment: "Duplicate of #908 which already implemented this fix with comprehensive tests and documentation." |
| 16:06:51 |
Issue #907(인시던트 기록) closed — "Resolved by #908 (commit 7ca16ee) ... Closing as implemented." |
gh pr view 906: state=CLOSED, mergeable=CONFLICTING, statusCheckRollup=[] (closed PR은 check rollup이 사라짐 — 이것도 "왜 지금 보면 체크가 안 보이나" 혼란의 원인 중 하나였다).
그런데 세션 메모리(Wiki pages/team/gongyung/TASKS.md 다음 액션 / Honcho 요약)는 이 사건이 다 끝난 뒤에도 계속 "PR #906 CI 진행 중, 대기"로 carry-forward 되었고, 2026-08-05 세션 재개 시점까지도 재검증 없이 그대로 사용자에게 보고되었다.
원인 분석
- Push형(이벤트 기반) 추적 경로가 없다. GitHub Actions/PR 이벤트를 gongyung 브릿지로 전달하는 webhook이 연결돼 있지 않다 (
webhook-subscriptions Hermes skill은 존재하지만 이 용도로 활성화된 적 없음 — hermes webhook list 기준 미확인).
- Poll형(주기 확인) 추적 경로도 없다.
crontab -l에 gongyung 자신이 연 PR(gh pr list --author seoseo-ai --state open 등)을 주기적으로 재확인하는 job이 없다. 기존 cron은 Wiki facts.json 갱신(facts-refresh.sh)과 일반 메모리 리프레시(memory-refresh-safe.sh)만 하고, GitHub PR/이슈 상태는 건드리지 않는다.
- 유사 인프라는 있지만 이 케이스를 커버하지 않는다.
pages/a2a/pr-shepherd-operations.md의 "PR Shepherd" — A2A GitHub patch task가 만든 PR 전용 systemd timer 설계다. gongyung은 Termux(systemd 없음)이고, PR #906은 A2A 태스크가 아니라 세션이 직접 연 PR이라 범위 밖이다.
LOG-20260716-bangtong-4 — Seoseo에 "ccc-node 새 PR 3분마다 검토·병합" cron이 있다고 기록돼 있으나, 이건 신규 PR을 검토·병합하는 용도지 자기 PR의 상태 변화를 원 세션에 되돌려주는 용도가 아니고, gongyung 노드에는 없다.
- 세션 인계(hand-off) 시 stale 클레임을 강제로 재검증하는 훅이 없다. Wiki/Honcho에는 "가변 사실은 live-check 후 주장하라"는 정책이 이미 문서화돼 있지만(§Operational facts are mutable), 이걸 기계적으로 강제하는 장치가 없어서 "PR 대기 중" 같은 구체적 클레임이 정책 위반인 채로 그대로 반복 보고됐다.
영향
제안 (택1 또는 조합)
- Poll 기반 최소 구현부터: gongyung cron에
gh pr list --author seoseo-ai --repo jinwon-int/ccc-node --state open --json number,url,statusCheckRollup,updatedAt 주기 조회 스크립트 추가. 상태 변화(open→closed/merged, check pending→completed) 감지 시 Wiki 세션 상태 파일 갱신 + (선택) Telegram 알림.
- 세션 인계 훅: Wiki team TASKS.md/Honcho에 "PR #NNN 대기 중" 류의 클레임을 다음 세션이 그대로 재사용하기 전, 자동으로
gh pr view를 1회 강제 실행하는 pre-flight 체크 추가.
- (중기) webhook 경로:
webhook-subscriptions skill로 GitHub Actions/PR 이벤트를 gongyung 브릿지에 연결 — 이미 인프라는 있으니 활성화 + ccc-node repo에 webhook 등록.
열린 질문
- 이 gap을 ccc-node(브릿지 자체 기능)에서 고칠지, gongyung 노드 운영 스크립트(node-local cron)에서 고칠지 — 다른 노드(Seoseo 등)의 guarded PR cron과 중복 설계 아닌지 먼저 확인 필요.
- Seoseo의 "3분 guarded PR review+merge" cron이 지금도 살아있는지, 있다면 gongyung도 같은 패턴을 재사용할 수 있는지 live-check 필요.
관련
배경
PR #906 작업 중 "CI가 아직 도는 중"이라고 2세션에 걸쳐(2026-08-03 생성 → 2026-08-05 재확인 요청 시점까지, 약 2일) 보고했으나, 실제로는 PR #906이 생성 44분 만에 duplicate으로 closed되어 있었다. CI 자체는 정상적으로 6분 만에 통과했다. 즉 실패한 건 "CI 완료"가 아니라 **"CI/PR 상태 변화를 세션이 인지하는 경로"**다.
라이브 증거 (2026-08-05 재조사,
ghCLI 직접 조회)타임라인 (전부 2026-08-03, UTC):
fix/configurable-max-buffer-size) open, authorseoseo-ai(gongyung 브릿지 identity)harness-ci/codeql워크플로 트리거jinon86) — 같은 근본원인(claude-agent-sdk1MB 고정 버퍼)에 대한 별도 수정harness-cisuccess(6m12s),codeqlsuccess(1m11s), 회귀 0건gh pr view 906:state=CLOSED,mergeable=CONFLICTING,statusCheckRollup=[](closed PR은 check rollup이 사라짐 — 이것도 "왜 지금 보면 체크가 안 보이나" 혼란의 원인 중 하나였다).그런데 세션 메모리(Wiki
pages/team/gongyung/TASKS.md다음 액션 / Honcho 요약)는 이 사건이 다 끝난 뒤에도 계속 "PR #906 CI 진행 중, 대기"로 carry-forward 되었고, 2026-08-05 세션 재개 시점까지도 재검증 없이 그대로 사용자에게 보고되었다.원인 분석
webhook-subscriptionsHermes skill은 존재하지만 이 용도로 활성화된 적 없음 —hermes webhook list기준 미확인).crontab -l에 gongyung 자신이 연 PR(gh pr list --author seoseo-ai --state open등)을 주기적으로 재확인하는 job이 없다. 기존 cron은 Wiki facts.json 갱신(facts-refresh.sh)과 일반 메모리 리프레시(memory-refresh-safe.sh)만 하고, GitHub PR/이슈 상태는 건드리지 않는다.pages/a2a/pr-shepherd-operations.md의 "PR Shepherd" — A2A GitHub patch task가 만든 PR 전용 systemd timer 설계다. gongyung은 Termux(systemd 없음)이고, PR #906은 A2A 태스크가 아니라 세션이 직접 연 PR이라 범위 밖이다.LOG-20260716-bangtong-4— Seoseo에 "ccc-node 새 PR 3분마다 검토·병합" cron이 있다고 기록돼 있으나, 이건 신규 PR을 검토·병합하는 용도지 자기 PR의 상태 변화를 원 세션에 되돌려주는 용도가 아니고, gongyung 노드에는 없다.영향
제안 (택1 또는 조합)
gh pr list --author seoseo-ai --repo jinwon-int/ccc-node --state open --json number,url,statusCheckRollup,updatedAt주기 조회 스크립트 추가. 상태 변화(open→closed/merged, check pending→completed) 감지 시 Wiki 세션 상태 파일 갱신 + (선택) Telegram 알림.gh pr view를 1회 강제 실행하는 pre-flight 체크 추가.webhook-subscriptionsskill로 GitHub Actions/PR 이벤트를 gongyung 브릿지에 연결 — 이미 인프라는 있으니 활성화 + ccc-node repo에 webhook 등록.열린 질문
관련
CLAUDE_PROCESS_TIMEOUT)