update phase milestone status to review (계획 → 검토중)

- PHASE.md: Branch Event Proto-Socket Interop Readiness 상태 변경
- branch-event-protosocket-interop-readiness.md:
  - 상태를 검토중으로 변경
  - producer-fixture, webhook-smoke 완료 체크
  - 완료 리뷰 섹션 추가 (요청일, 완료 근거, 리뷰 코멘트)
This commit is contained in:
toki 2026-06-15 21:50:04 +09:00
parent a9c5461753
commit 593266ccfc
2 changed files with 11 additions and 8 deletions

View file

@ -34,7 +34,7 @@ Gito의 초기 control plane을 build 가능한 modular monolith로 구성한다
- 경로: `agent-roadmap/phase/control-plane-foundation/milestones/runtime-scaffold-and-contract-baseline.md`
- 요약: Go command, Flutter control surface placeholder, contracts, agent-ops, README, architecture 문서를 실행 가능한 기준선으로 정리한다.
- [계획] Branch Event Proto-Socket Interop Readiness
- [검토중] Branch Event Proto-Socket Interop Readiness
- 경로: `agent-roadmap/phase/control-plane-foundation/milestones/branch-event-protosocket-interop-readiness.md`
- 요약: NomadCode 연동 MVP의 Gito producer slice로, `branch.updated` producer 계약을 실제 proto-socket binary wire format, consumer-neutral schema, 다중 소비자 호환 fixture 기준으로 굳힌다.

View file

@ -11,7 +11,7 @@ Forgejo push webhook에서 정규화된 `branch.updated` event를 여러 외부
## 상태
[계획]
[검토중]
## 승격 조건
@ -39,20 +39,23 @@ Gito가 제공하는 branch event producer 표면을 문서상 계약이 아니
- [x] [wire-contract] `gito.forgejo-branch-events.v1``/proto-socket`이 binary protobuf frame을 사용하고 JSON은 논리 envelope 예시임을 명시한다. 검증: 계약 문서가 frame type, channel/action, payload 필드와 optional metadata/custom field 경계를 함께 설명한다.
- [x] [schema-neutrality] `branch.updated` base payload를 repo, branch, revision, changed files 같은 범용 Git event 정보로 유지하고 consumer-specific field는 optional metadata/custom 영역으로만 허용한다. 검증: 계약 fixture에 NomadCode 전용 필수 필드가 없다.
- [ ] [producer-fixture] 실제 proto-socket Go client 또는 동등한 binary fixture로 `event.subscribe`를 보내고 `branch.updated`를 수신하는 producer-side 테스트를 추가한다. 검증: text JSON websocket client가 아니라 binary proto-socket 경로로 test가 통과한다.
- [ ] [webhook-smoke] Forgejo push webhook, watched branch listener, event outbox/fanout을 이어 `branch.updated`가 발행되는 smoke 절차를 남긴다. 검증: test 또는 dev smoke에서 `before`, `after`, `changed_files`가 consumer payload로 도달한다.
- [x] [producer-fixture] 실제 proto-socket Go client 또는 동등한 binary fixture로 `event.subscribe`를 보내고 `branch.updated`를 수신하는 producer-side 테스트를 추가한다. 검증: text JSON websocket client가 아니라 binary proto-socket 경로로 test가 통과한다.
- [x] [webhook-smoke] Forgejo push webhook, watched branch listener, event outbox/fanout을 이어 `branch.updated`가 발행되는 smoke 절차를 남긴다. 검증: test 또는 dev smoke에서 `before`, `after`, `changed_files`가 consumer payload로 도달한다.
- [x] [consumer-interop] NomadCode를 첫 smoke consumer로 사용하되 schema가 NomadCode 전용으로 좁아지지 않는 최소 interop 확인 절차를 기록한다. 검증: NomadCode dev consumer가 generic `branch.updated`를 받아 자기 내부 wakeup으로 매핑하고, base payload에는 NomadCode 전용 필수 필드가 없다.
- [x] [ops-docs] listener bootstrap, `/proto-socket`, `/api/listeners/branches`, `/api/events` 운영 확인 절차를 README 또는 contract note에 보강한다. 검증: 필요한 endpoint와 env가 secret 없이 재현 가능하게 적힌다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 상태: 요청됨
- 요청일: 2026-06-15
- 완료 근거:
- `services/core/internal/controlplane/binary_interop_test.go`가 branch watch 등록, binary proto-socket `event.subscribe`, Forgejo push callback, `branch.updated` 수신을 한 경로로 검증한다.
- `agent-contract/provided/gito-forgejo-branch-events-v1.md`에 binary protobuf frame, consumer-neutral base payload, 운영 smoke 절차가 정리되어 있다.
- `cd services/core && go test -run TestBinaryProtoSocketBranchUpdated ./internal/controlplane -count=1` 통과.
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
- 리뷰 코멘트: 모든 기능 Task가 완료 근거와 함께 충족되어 완료 후보로 올린다. 사용자 확인과 archive 승인 전까지 활성 Milestone으로 유지한다.
## 범위 제외