update roadmap: archive agent-shell-package-iop-backend-boundary milestone, add branch-event-protosocket-interop-readiness milestone
This commit is contained in:
parent
503e036aec
commit
5a15c1dfee
5 changed files with 88 additions and 12 deletions
|
|
@ -14,7 +14,7 @@ Gito는 GitHub, GitLab, Gitea 같은 플랫폼에 묶이지 않는 Git control p
|
||||||
- [진행중] Control Plane Foundation
|
- [진행중] Control Plane Foundation
|
||||||
- 경로: `agent-roadmap/phase/control-plane-foundation/PHASE.md`
|
- 경로: `agent-roadmap/phase/control-plane-foundation/PHASE.md`
|
||||||
- 요약: platformless Git control plane의 모듈 경계, repo/workspace/operation/event 원장, proto-socket 우선 transport 기준을 build 가능한 baseline으로 닫는다.
|
- 요약: platformless Git control plane의 모듈 경계, repo/workspace/operation/event 원장, proto-socket 우선 transport 기준을 build 가능한 baseline으로 닫는다.
|
||||||
- [계획] Agent Shell IOP Execution
|
- [진행중] Agent Shell IOP Execution
|
||||||
- 경로: `agent-roadmap/phase/agent-shell-iop-execution/PHASE.md`
|
- 경로: `agent-roadmap/phase/agent-shell-iop-execution/PHASE.md`
|
||||||
- 요약: `../agent-shell`은 Flutter agent UI/package로 사용하고, backend/runtime owner는 `../iop`로 지정해 Gito Git control plane과 연결한다.
|
- 요약: `../agent-shell`은 Flutter agent UI/package로 사용하고, backend/runtime owner는 `../iop`로 지정해 Gito Git control plane과 연결한다.
|
||||||
- [계획] Provider Change Request Integration
|
- [계획] Provider Change Request Integration
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ workspace 상위 sibling 프로젝트 `../agent-shell`을 제품 비종속 Flutt
|
||||||
|
|
||||||
## 상태
|
## 상태
|
||||||
|
|
||||||
[검토중]
|
[완료]
|
||||||
|
|
||||||
## 승격 조건
|
## 승격 조건
|
||||||
|
|
||||||
|
|
@ -39,20 +39,20 @@ workspace 상위 sibling 프로젝트 `../agent-shell`을 제품 비종속 Flutt
|
||||||
- [x] [package-use] Gito/host Flutter surface가 `agent_shell: path: ../agent-shell`로 UI package를 사용하는 방향을 문서화한다.
|
- [x] [package-use] Gito/host Flutter surface가 `agent_shell: path: ../agent-shell`로 UI package를 사용하는 방향을 문서화한다.
|
||||||
- [x] [iop-backend] `agent_shell` host의 backend/runtime owner를 `../iop` 프로젝트로 지정한다.
|
- [x] [iop-backend] `agent_shell` host의 backend/runtime owner를 `../iop` 프로젝트로 지정한다.
|
||||||
- [x] [gito-boundary] Gito는 agent execution backend가 아니라 repo/workspace/operation/event control plane을 제공한다는 경계를 contracts와 docs에 반영한다.
|
- [x] [gito-boundary] Gito는 agent execution backend가 아니라 repo/workspace/operation/event control plane을 제공한다는 경계를 contracts와 docs에 반영한다.
|
||||||
- [x] [scaffold-cleanup] 기존 Go `gito-shell`/`internal/agentshell` scaffold를 유지, rename, 제거 중 어떤 정리 경로로 둘지 후속 계획에 남긴다. 후속 계획: `agent-task/m-agent-shell-package-iop-backend-boundary/PLAN-local-G05.md`
|
- [x] [scaffold-cleanup] 기존 Go `gito-shell`/`internal/agentshell` scaffold를 제거하는 경로로 확정하고, build/config/docs에서 legacy shell surface를 정리한다. 증거: `agent-task/archive/2026/06/m-agent-shell-package-iop-backend-boundary/complete.log`
|
||||||
|
|
||||||
## 완료 리뷰
|
## 완료 리뷰
|
||||||
|
|
||||||
- 상태: 요청됨
|
- 상태: 승인됨
|
||||||
- 요청일: 2026-06-14
|
- 요청일: 2026-06-14
|
||||||
- 완료 근거:
|
- 완료 근거:
|
||||||
- `README.md`, `docs/architecture.md`, `apps/client/README.md`, `packages/contracts/notes/gito-control-plane.md`에 `agent_shell: path: ../agent-shell`, `../iop` backend/runtime owner, Gito control plane 경계를 반영했다.
|
- `README.md`, `docs/architecture.md`, `apps/client/README.md`, `packages/contracts/notes/gito-control-plane.md`에 `agent_shell: path: ../agent-shell`, `../iop` backend/runtime owner, Gito control plane 경계를 반영했다.
|
||||||
- legacy Go `gito-shell`/`internal/agentshell` scaffold 정리는 active 후속 plan `agent-task/m-agent-shell-package-iop-backend-boundary/PLAN-local-G05.md`와 review stub로 남겼다.
|
- legacy Go `gito-shell`/`internal/agentshell` scaffold는 `agent-task/archive/2026/06/m-agent-shell-package-iop-backend-boundary/complete.log` 기준으로 제거 완료했고, `bin/build`는 `gito-server`, `gito-worker`만 생성한다.
|
||||||
- local smoke search와 `git diff --check`가 통과했다.
|
- 코드 레벨 종료 검토에서 `cd services/core && go test ./...`, `bin/build`, docs/contracts smoke search, `test ! -e bin/gito-shell`이 통과했다.
|
||||||
- 리뷰 필요:
|
- 리뷰 필요:
|
||||||
- [ ] 사용자가 완료 결과를 확인했다
|
- [x] 사용자가 완료 결과를 확인했다
|
||||||
- [ ] archive 이동을 승인했다
|
- [x] archive 이동을 승인했다
|
||||||
- 리뷰 코멘트: 사용자 최종 확인 전까지 `[검토중]`으로 유지한다.
|
- 리뷰 코멘트: 코드 레벨 종료 검토에서 추가 구현 이슈가 없어 완료 처리한다.
|
||||||
|
|
||||||
## 범위 제외
|
## 범위 제외
|
||||||
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## 상태
|
## 상태
|
||||||
|
|
||||||
[계획]
|
[진행중]
|
||||||
|
|
||||||
## 목표
|
## 목표
|
||||||
|
|
||||||
|
|
@ -14,8 +14,8 @@ workspace 상위 sibling 프로젝트 `../agent-shell`을 제품 비종속 Flutt
|
||||||
완료, 검토중, 진행중, 계획, 스케치 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다.
|
완료, 검토중, 진행중, 계획, 스케치 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다.
|
||||||
스케치 Milestone은 아직 구현 가능한 계획이 아니므로 계획 Milestone보다 아래에 둔다.
|
스케치 Milestone은 아직 구현 가능한 계획이 아니므로 계획 Milestone보다 아래에 둔다.
|
||||||
|
|
||||||
- [계획] Agent Shell Package and IOP Backend Boundary
|
- [완료] Agent Shell Package and IOP Backend Boundary
|
||||||
- 경로: `agent-roadmap/phase/agent-shell-iop-execution/milestones/agent-shell-package-iop-backend-boundary.md`
|
- 경로: `agent-roadmap/archive/phase/agent-shell-iop-execution/milestones/agent-shell-package-iop-backend-boundary.md`
|
||||||
- 요약: `../agent-shell`은 Flutter agent UI/package로 사용하고, backend/runtime owner는 `../iop` 프로젝트로 지정한다.
|
- 요약: `../agent-shell`은 Flutter agent UI/package로 사용하고, backend/runtime owner는 `../iop` 프로젝트로 지정한다.
|
||||||
|
|
||||||
- [계획] IOP Agent Run Bridge
|
- [계획] IOP Agent Run Bridge
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,10 @@ Gito의 초기 control plane을 build 가능한 modular monolith로 구성한다
|
||||||
- 경로: `agent-roadmap/phase/control-plane-foundation/milestones/runtime-scaffold-and-contract-baseline.md`
|
- 경로: `agent-roadmap/phase/control-plane-foundation/milestones/runtime-scaffold-and-contract-baseline.md`
|
||||||
- 요약: Go command, Flutter control surface placeholder, contracts, agent-ops, README, architecture 문서를 실행 가능한 기준선으로 정리한다.
|
- 요약: 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`
|
||||||
|
- 요약: `branch.updated` producer 계약을 실제 proto-socket binary wire format, consumer-neutral schema, 다중 소비자 호환 fixture 기준으로 굳힌다.
|
||||||
|
|
||||||
## Phase 경계
|
## Phase 경계
|
||||||
|
|
||||||
- 이 Phase는 Gito 자체 control plane과 platformless Git 기반만 다룬다.
|
- 이 Phase는 Gito 자체 control plane과 platformless Git 기반만 다룬다.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
# Milestone: Branch Event Proto-Socket Interop Readiness
|
||||||
|
|
||||||
|
## 위치
|
||||||
|
|
||||||
|
- Roadmap: `agent-roadmap/ROADMAP.md`
|
||||||
|
- Phase: `agent-roadmap/phase/control-plane-foundation/PHASE.md`
|
||||||
|
|
||||||
|
## 목표
|
||||||
|
|
||||||
|
Forgejo push webhook에서 정규화된 `branch.updated` event를 여러 외부 consumer가 실제 Gito `/proto-socket` wire protocol로 구독하고 수신할 수 있음을 증명한다. 논리 JSON envelope 예시와 실제 proto-socket binary/protobuf frame 경계를 계약에 분리해 기록하고, base schema는 consumer-neutral하게 유지하며 consumer별 확장은 `metadata` 같은 optional custom field로만 다루는 기준을 남긴다.
|
||||||
|
|
||||||
|
## 상태
|
||||||
|
|
||||||
|
[계획]
|
||||||
|
|
||||||
|
## 승격 조건
|
||||||
|
|
||||||
|
- 없음
|
||||||
|
|
||||||
|
## 구현 잠금
|
||||||
|
|
||||||
|
- 상태: 해제
|
||||||
|
- 결정 필요: 없음
|
||||||
|
|
||||||
|
## 범위
|
||||||
|
|
||||||
|
- `gito.forgejo-branch-events.v1` 계약의 실제 `/proto-socket` wire format 명시
|
||||||
|
- `event.subscribe` request와 `branch.updated` broadcast의 channel/action/payload shape 고정
|
||||||
|
- NomadCode 전용 payload가 아닌 branch event 범용 base schema와 optional metadata/custom extension 경계
|
||||||
|
- proto-socket binary/protobuf client fixture로 Gito server producer 호환성 검증
|
||||||
|
- Forgejo webhook, branch listener, event fanout을 묶은 producer-side smoke 경로
|
||||||
|
- NomadCode를 초기 consumer smoke 대상으로 쓰되, 다른 consumer가 같은 schema를 재사용할 수 있는 운영 확인 절차
|
||||||
|
|
||||||
|
## 기능
|
||||||
|
|
||||||
|
### Epic: [branch-wire] Branch event wire interop
|
||||||
|
|
||||||
|
Gito가 제공하는 branch event producer 표면을 문서상 계약이 아니라 실제 proto-socket wire 호환 기준으로 고정하되, base event schema를 특정 consumer에 종속시키지 않는다.
|
||||||
|
|
||||||
|
- [ ] [wire-contract] `gito.forgejo-branch-events.v1`에 `/proto-socket`이 binary protobuf frame을 사용하고 JSON은 논리 envelope 예시임을 명시한다. 검증: 계약 문서가 frame type, channel/action, payload 필드와 optional metadata/custom field 경계를 함께 설명한다.
|
||||||
|
- [ ] [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로 도달한다.
|
||||||
|
- [ ] [consumer-interop] NomadCode를 첫 smoke consumer로 사용하되 schema가 NomadCode 전용으로 좁아지지 않는 최소 interop 확인 절차를 기록한다. 검증: NomadCode dev consumer가 generic `branch.updated`를 받아 자기 내부 wakeup으로 매핑하고, base payload에는 NomadCode 전용 필수 필드가 없다.
|
||||||
|
- [ ] [ops-docs] listener bootstrap, `/proto-socket`, `/api/listeners/branches`, `/api/events` 운영 확인 절차를 README 또는 contract note에 보강한다. 검증: 필요한 endpoint와 env가 secret 없이 재현 가능하게 적힌다.
|
||||||
|
|
||||||
|
## 완료 리뷰
|
||||||
|
|
||||||
|
- 상태: 없음
|
||||||
|
- 요청일: 없음
|
||||||
|
- 완료 근거: 없음
|
||||||
|
- 리뷰 필요:
|
||||||
|
- [ ] 사용자가 완료 결과를 확인했다
|
||||||
|
- [ ] archive 이동을 승인했다
|
||||||
|
- 리뷰 코멘트: 없음
|
||||||
|
|
||||||
|
## 범위 제외
|
||||||
|
|
||||||
|
- NomadCode core consumer transport 구현
|
||||||
|
- NomadCode 전용 event schema 또는 필수 payload field 추가
|
||||||
|
- Plane creation sync enqueue 구현
|
||||||
|
- Forgejo provider delivery dedupe의 고도화
|
||||||
|
- provider PR/MR ChangeRequest adapter
|
||||||
|
- Flutter control surface 표시 기능
|
||||||
|
|
||||||
|
## 작업 컨텍스트
|
||||||
|
|
||||||
|
- 관련 경로: `agent-contract/provided/gito-forgejo-branch-events-v1.md`, `services/core/internal/protosocket/`, `services/core/internal/controlplane/`, `services/core/internal/provider/forgejo/`, `services/core/internal/events/`
|
||||||
|
- 표준선(선택): Gito `/proto-socket`의 source of truth는 proto-socket binary/protobuf transport이며, JSON envelope는 계약 이해를 돕는 논리 표현으로만 둔다. Event base schema는 consumer-neutral하게 유지하고, 특정 consumer에만 필요한 값은 optional `metadata` 또는 custom extension에만 둔다.
|
||||||
|
- 선행 작업: Forgejo Branch Event MVP
|
||||||
|
- 후속 작업: NomadCode `Gito Proto-Socket Consumer Wire Readiness`
|
||||||
|
- 확인 필요: 없음
|
||||||
Loading…
Reference in a new issue