From a9c033892e3e2846036abe930e2e5d616f5e9e5e Mon Sep 17 00:00:00 2001 From: toki Date: Sun, 14 Jun 2026 06:58:09 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20operation-event-outbox=20milestone=20?= =?UTF-8?q?=EA=B2=80=ED=86=A0=EC=A4=91=EC=9C=BC=EB=A1=9C=20=EC=A0=84?= =?UTF-8?q?=ED=99=98=20=EB=B0=8F=20=EC=99=84=EB=A3=8C=20=EB=A6=AC=EB=B7=B0?= =?UTF-8?q?=20=EA=B8=B0=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PHASE.md: operation-event-outbox 상태 [진행중] → [검토중] 변경 - milestone: 완료 리뷰 섹션 작성 (상태: 요청됨, 요청일: 2026-06-14) - 완료 근거: complete.log event-store PASS, DB test SKIP 없이 PASS - 검증 완료: 원격 code-server compose에서 gito_test DB로 검증 완료 - event-store 체크박스 완료 체크 --- .../phase/control-plane-foundation/PHASE.md | 2 +- .../milestones/operation-event-outbox.md | 21 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/agent-roadmap/phase/control-plane-foundation/PHASE.md b/agent-roadmap/phase/control-plane-foundation/PHASE.md index d4c6aaa..b6f6710 100644 --- a/agent-roadmap/phase/control-plane-foundation/PHASE.md +++ b/agent-roadmap/phase/control-plane-foundation/PHASE.md @@ -30,7 +30,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 문서를 실행 가능한 기준선으로 정리한다. -- [진행중] Operation Event Outbox +- [검토중] Operation Event Outbox - 경로: `agent-roadmap/phase/control-plane-foundation/milestones/operation-event-outbox.md` - 요약: operation lifecycle, idempotency, audit event, outbox 발행을 PostgreSQL 기준으로 구성한다. diff --git a/agent-roadmap/phase/control-plane-foundation/milestones/operation-event-outbox.md b/agent-roadmap/phase/control-plane-foundation/milestones/operation-event-outbox.md index 9be2ea4..6bfd732 100644 --- a/agent-roadmap/phase/control-plane-foundation/milestones/operation-event-outbox.md +++ b/agent-roadmap/phase/control-plane-foundation/milestones/operation-event-outbox.md @@ -11,7 +11,7 @@ operation lifecycle과 normalized event를 PostgreSQL 원장에 기록하고, pr ## 상태 -[진행중] +[검토중] ## 승격 조건 @@ -45,18 +45,21 @@ Git operation, agent run, provider projection을 같은 operation 원장으로 operation 결과를 durable event로 남기고 fanout 대상이 읽을 수 있게 한다. - [x] [event-model] normalized event type과 payload 저장 형식을 정리한다. -- [ ] [event-store] event append/list/mark-published boundary를 만든다. 검증: event order와 retry 가능한 publish 상태를 확인한다. +- [x] [event-store] event append/list/mark-published boundary를 만든다. 검증: event order와 retry 가능한 publish 상태를 확인한다. - [x] [protosocket-events] proto-socket `event` channel 후보와 outbox event mapping을 contracts에 기록한다. ## 완료 리뷰 -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 없음 +- 상태: 요청됨 +- 요청일: 2026-06-14 +- 완료 근거: + - `agent-task/archive/2026/06/m-operation-event-outbox_1/complete.log`의 Roadmap Completion이 `event-store` PASS를 기록했다. + - 원격 code-server compose의 `code-server-postgres`에 `gito_test` DB를 만들고 `TestPostgresOperationEventStoreAppendsListsMarksPublishedAndValidates`를 `SKIP` 없이 PASS했다. + - `cd /config/workspace/gito/services/core && GITO_TEST_DATABASE_URL= go test ./... -count=1`이 PASS했다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다 -- 리뷰 코멘트: 없음 +- 리뷰 코멘트: 모든 기능 Task와 명시 검증이 evidence와 함께 충족되어 Milestone 완료 후보로 전환한다. 사용자 승인 후 `[완료]` 및 archive 이동을 진행한다. ## 범위 제외 @@ -69,8 +72,8 @@ operation 결과를 durable event로 남기고 fanout 대상이 읽을 수 있 - 관련 경로: `services/core/internal/events/`, `services/core/internal/storage/`, `services/core/internal/worker/`, `services/core/migrations/` - 표준선(선택): Postgres outbox가 event source of truth이며 Redis는 optional acceleration이다. -- 현재 작업현황: `event-store` 구현은 `storage.OperationEventStore`, `pgOperationEventStore`, `operation_events` migration에 반영되어 있다. -- 검증 대기: DB 연결 없는 현재 환경에서는 `TestPostgresOperationEventStoreAppendsListsMarksPublishedAndValidates`가 skip되어 event order와 publish retry 상태 검증을 완료 체크하지 않았다. +- 현재 작업현황: `event-store` 구현과 DB-backed 검증이 완료되어 Milestone은 사용자 완료 확인 및 archive 승인 대기 상태다. +- 검증 완료: 원격 code-server compose의 `code-server-postgres`에서 `gito_test` DB를 사용해 event order, retry 가능한 pending publish 상태, mark-published 동작을 검증했다. - 선행 작업: Platformless Git Operation Engine - 후속 작업: Agent Shell Runtime Channel -- 확인 필요: DB-backed storage test runner에서 `event-store` 검증 후 `[event-store]` 완료 체크와 Milestone `[검토중]` 전환을 판단한다. +- 확인 필요: 사용자가 완료 결과를 확인하고 archive 이동 여부를 승인한다.