update control-plane phase and router implementation, move branch-event milestone to archive

This commit is contained in:
toki 2026-06-16 09:20:47 +09:00
parent 3ea2279d51
commit 42176cac8e
4 changed files with 15 additions and 10 deletions

View file

@ -11,7 +11,7 @@ Forgejo push webhook에서 정규화된 `branch.updated` event를 여러 외부
## 상태
[검토중]
[완료]
## 승격 조건
@ -46,16 +46,16 @@ Gito가 제공하는 branch event producer 표면을 문서상 계약이 아니
## 완료 리뷰
- 상태: 요청
- 상태: 승인
- 요청일: 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으로 유지한다.
- [x] 사용자가 완료 결과를 확인했다
- [x] archive 이동을 승인했다
- 리뷰 코멘트: 2026-06-16 코드레벨 종료 검토에서 producer-side binary proto-socket interop, consumer-neutral payload, smoke 문서, core test가 확인되어 완료 승인 후 archive 이동한다.
## 범위 제외

View file

@ -30,14 +30,14 @@ Gito의 초기 control plane을 build 가능한 modular monolith로 구성한다
- 경로: `agent-roadmap/archive/phase/control-plane-foundation/milestones/operation-event-outbox.md`
- 요약: operation lifecycle, idempotency, audit event, outbox 발행을 PostgreSQL 기준으로 구성한다.
- [완료] Branch Event Proto-Socket Interop Readiness
- 경로: `agent-roadmap/archive/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 기준으로 굳힌다.
- [검토중] Runtime Scaffold and Contract Baseline
- 경로: `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
- 경로: `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 기준으로 굳힌다.
## Phase 경계
- 이 Phase는 Gito 자체 control plane과 platformless Git 기반만 다룬다.

View file

@ -200,7 +200,9 @@ func handleForgejoPush(cfg config.Config, runtime *Runtime) http.HandlerFunc {
resp := map[string]any{
"accepted": true,
"matched": matched,
"event": eventRecordPayload(record),
}
if matched {
resp["event"] = eventRecordPayload(record)
}
if record.Duplicate {
resp["duplicate"] = true

View file

@ -178,6 +178,9 @@ func TestForgejoPushIgnoresUnwatchedBranch(t *testing.T) {
if pushed["matched"] != false {
t.Fatalf("expected push to be ignored: %#v", pushed)
}
if _, ok := pushed["event"]; ok {
t.Fatalf("unmatched push must not expose an emitted event: %#v", pushed)
}
}
func TestForgejoPushRequiresSignatureBeforeIgnoringUnsupportedEvent(t *testing.T) {