update control-plane phase and router implementation, move branch-event milestone to archive
This commit is contained in:
parent
3ea2279d51
commit
42176cac8e
4 changed files with 15 additions and 10 deletions
|
|
@ -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 이동한다.
|
||||
|
||||
## 범위 제외
|
||||
|
||||
|
|
@ -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 기반만 다룬다.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue