- Update roadmap milestone status - Add gitosync runner and tests - Update gitoevents tests - Adjust docker-compose configuration - Update core and project READMEs - Add agent-task for consumer wire readiness
4.8 KiB
4.8 KiB
Milestone: Gito Proto-Socket Consumer Wire Readiness
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/agent-ops-mcp-control-plane/PHASE.md
목표
NomadCode core의 Gito branch event consumer를 실제 Gito /proto-socket wire protocol과 맞춘다. Gito event schema를 NomadCode 전용으로 좁히지 않고, consumer-neutral branch.updated base payload를 받아 NomadCode 내부 wakeup과 creation sync enqueue로 매핑하는 MVP 운영 연결 기준을 닫는다.
상태
[계획]
승격 조건
- 없음
구현 잠금
- 상태: 해제
- 결정 필요: 없음
범위
- Gito
/proto-socketbinary protobuf transport를 소비하는 NomadCode production transport event.subscriberequest와branch.updatedevent envelope의 struct payload 변환- Gito base schema는 다중 consumer용 범용 규약으로 소비하고, NomadCode 전용 힌트가 필요하면 optional metadata/custom field만 사용
- 기존
gitoeventsdecode/filter,gitosyncscan/enqueue 의미 로직과 wire transport의 결합 - Gito dev server 또는 fixture와 연결하는 cross-project integration smoke
- Gito consumer runtime env와 local/deploy 설정 문서화
기능
Epic: [wire-consumer] Gito wire-compatible consumer
NomadCode가 Gito branch event를 논리 DTO가 아니라 실제 proto-socket wire frame으로 소비하되, Gito의 base event schema를 NomadCode 내부 모델로 오염시키지 않는다.
- [transport-adapter] JSON text websocket transport를 실제 proto-socket binary/protobuf transport 또는 동등 adapter로 교체한다. 검증: 실제 proto-socket test server가
event.subscribe를 받고branch.updated를 binary frame으로 돌려주는 테스트가 통과한다. - [schema-boundary] Gito
branch.updatedbase payload를 repo/branch/revision/change hint 중심으로 해석하고 NomadCode 전용 값은 optional metadata/custom field가 있을 때만 소비한다. 검증: NomadCode 전용 필드 없이도 branch scan/enqueue wakeup이 동작한다. - [envelope-decode] binary frame에서 받은
structpb.Structenvelope을 기존gitoevents.DecodeBranchUpdatedEnvelope입력으로 안전하게 변환한다. 검증: malformed frame, 다른 channel/action, payload 누락, 알 수 없는 metadata/custom field가 side effect 없이 drop 또는 ignore된다. - [bridge-e2e] wire-compatible consumer, branch scan,
EnqueueRoadmapCreationSync까지 이어지는 integration test 또는 dev smoke를 추가한다. 검증: Gitobranch.updated한 건이 target branch 재검증 후 정확히 하나의 creation sync job으로 수렴한다. - [config-docs]
GITO_PROTO_SOCKET_URL,GITO_REPO_ID,GITO_DEVELOP_REPO_PATH,GITO_BRANCH,GITO_REMOTE_NAME,ROADMAP_CREATION_TODO_STATE_ID또는PLANE_TODO_STATE_ID설정을 README, compose, env sample 중 적절한 위치에 문서화한다. 검증: secret 없이 local/dev consumer를 켤 수 있는 설정 경로가 남는다. - [failure-ops] reconnect, not-ready revision, duplicate event, malformed frame 처리와 로그 기준을 정리한다. 검증: 장애 입력이 core server shutdown이나 중복 Plane mutation으로 이어지지 않는다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- Gito의 Forgejo webhook producer 구현
- Gito base event schema를 NomadCode 전용 필드로 확장하는 작업
- Gito provider event dedupe와 listener persistence 고도화
- Plane
Todo -> In Progress실행 lifecycle - Milestone Task와 Plane 하위 티켓 동기화
- Flutter UI에서 branch event 상태를 표시하는 기능
작업 컨텍스트
- 관련 경로:
services/core/internal/gitoevents/,services/core/internal/gitosync/,services/core/cmd/server/main.go,services/core/internal/config/,services/core/docker-compose.yml,README.md,packages/contracts/notes/flutter-core-api-candidates.md - 외부 계약: Gito
agent-contract/provided/gito-forgejo-branch-events-v1.md - 관련 Gito Milestone:
Branch Event Proto-Socket Interop Readiness - 표준선(선택): NomadCode는 Gito event payload를 wakeup signal로만 사용하고, 최종 판단은 target branch fetch/scan과 provider identity 재검증으로 수행한다. Gito schema는 여러 consumer를 위한 범용 규약으로 보고, NomadCode 전용 정보는 optional metadata/custom field가 있을 때만 소비한다.
- 우선순위: NomadCode/Gito 연동 MVP의 다음 구현 slice로, Plane Work Item Webhook Intake보다 먼저 닫는다.
- 선행 작업: Gito
Branch Event Proto-Socket Interop Readinessproducer fixture와 기존gitoevents/gitosyncsemantic consumer/scan/enqueue 경계 - 후속 작업: Milestone Execution Lifecycle Sync
- 확인 필요: 없음