From abf88dcfe936280cb18e8956527df1b4faef33eb Mon Sep 17 00:00:00 2001 From: toki Date: Thu, 28 May 2026 09:17:38 +0900 Subject: [PATCH] chore: archive contract-codegen-baseline.md and update socket-session-loop.md --- .../milestones/contract-codegen-baseline.md | 67 +++++++++++++++++++ .../milestones/socket-session-loop.md | 19 ++---- 2 files changed, 73 insertions(+), 13 deletions(-) create mode 100644 agent-roadmap/archive/phase/foundation-alignment/milestones/contract-codegen-baseline.md diff --git a/agent-roadmap/archive/phase/foundation-alignment/milestones/contract-codegen-baseline.md b/agent-roadmap/archive/phase/foundation-alignment/milestones/contract-codegen-baseline.md new file mode 100644 index 0000000..31f0187 --- /dev/null +++ b/agent-roadmap/archive/phase/foundation-alignment/milestones/contract-codegen-baseline.md @@ -0,0 +1,67 @@ +# Milestone: Contract and Codegen Baseline + +## 위치 + +- Roadmap: `agent-roadmap/ROADMAP.md` +- Phase: `agent-roadmap/phase/foundation-alignment/PHASE.md` + +## 목표 + +proto-socket을 transport로 유지하면서 ALT application protobuf 계약을 Go API/worker와 Flutter client가 반복 가능하게 소비할 수 있는 기준을 만든다. 계약은 `alt.v1`을 유지하고, generated output은 source schema에서만 생성한다. + +## 상태 + +[완료] + +## 구현 잠금 + +- 상태: 해제 +- 결정 필요: 없음 + +## 범위 + +- `packages/contracts/proto/alt/v1` schema 정리 +- Go/Dart protobuf generation 명령과 산출 위치 결정 +- proto-socket parser map과 typeName 등록 기준 +- contract compatibility note +- generated output 검증 명령 + +## 기능 + +### Epic: [contracts] Contract schema and codegen + +ALT application protobuf 계약과 generated output 검증 흐름을 묶는다. + +- [x] [schema-baseline] `common.proto`, `market.proto`, `backtest.proto`가 MVP payload 기준을 담는다. +- [x] [go-codegen] Go generated contract를 반복 생성할 수 있는 명령이 있다. 검증: 문서화된 Go contract generation 명령이 로컬에서 실행된다. +- [x] [dart-codegen] Flutter client가 사용할 Dart generated contract를 반복 생성할 수 있는 명령이 있다. 검증: 문서화된 Dart contract generation 명령이 로컬에서 실행된다. +- [x] [parser-map] API/client에서 contract message parser map을 구성할 표준 위치와 패턴이 정해져 있다. +- [x] [compat-note] additive change, field number, versioning 기준과 proto-socket transport proto / ALT application proto 책임 분리가 contracts 문서에 정리되어 있다. +- [x] [contract-check] root 검증 또는 contracts 검증 명령이 schema/codegen drift를 감지한다. 검증: generated output을 source schema와 대조할 수 있고 `bin/test`, `bin/lint`가 contract 변경 후 통과한다. + +## 완료 리뷰 + +- 상태: 승인됨 +- 요청일: 2026-05-28 +- 승인일: 2026-05-28 +- 완료 근거: `packages/contracts/proto/alt/v1` schema와 Go/Dart generated output, API/client parser map, compatibility note가 현재 코드에 있다. +- 완료 근거: `bin/contracts-check`, `bin/test`, `bin/lint`가 로컬에서 통과했다. +- 리뷰 필요: + - [x] 사용자가 완료 결과를 확인했다 + - [x] archive 이동을 승인했다 +- 리뷰 코멘트: 사용자 승인에 따라 완료 처리하고 archive로 이동했다. + +## 범위 제외 + +- 실제 KIS 데이터 수집 구현 +- DB persistence schema 확정 +- Flutter 전체 화면 구현 +- 실거래 주문 계약 + +## 작업 컨텍스트 + +- 관련 경로: `packages/contracts/`, `services/api/`, `apps/client/` +- 표준선(선택): proto-socket은 transport layer이고 ALT payload는 `packages/contracts/proto`가 source-of-truth다. +- 선행 작업: Workspace Baseline +- 후속 작업: Socket Session Loop +- 확인 필요: 없음 diff --git a/agent-roadmap/phase/foundation-alignment/milestones/socket-session-loop.md b/agent-roadmap/phase/foundation-alignment/milestones/socket-session-loop.md index 93a9d41..3fefb44 100644 --- a/agent-roadmap/phase/foundation-alignment/milestones/socket-session-loop.md +++ b/agent-roadmap/phase/foundation-alignment/milestones/socket-session-loop.md @@ -11,7 +11,7 @@ Go API와 Flutter client 사이에 proto-socket 기반 최소 session loop를 ## 상태 -[계획] +[진행중] ## 구현 잠금 @@ -26,30 +26,23 @@ Go API와 Flutter client 사이에 proto-socket 기반 최소 session loop를 - 최소 request-response smoke path - API/client socket loop 테스트 또는 수동 검증 명령 -## 필수 기능 +## 기능 ### Epic: [session-loop] Proto-socket session loop API와 Flutter client 사이의 최소 연결, 요청, 연결 상태 표현을 묶는다. -- [ ] [api-handshake] API가 ALT Hello request를 받고 Hello response를 반환한다. +- [ ] [api-handshake] API가 ALT Hello request를 받고 Hello response를 반환한다. 검증: API와 client가 같은 contract typeName 기준으로 메시지를 주고받는다. - [ ] [client-connect] Flutter client가 configured socket endpoint에 연결할 client layer를 갖는다. - [ ] [request-loop] 최소 request-response 메시지가 API와 client 사이에서 왕복한다. -- [ ] [disconnect-state] client에서 연결/해제/오류 상태를 UI나 state layer에서 표현할 수 있다. -- [ ] [socket-test] handshake loop를 검증하는 테스트 또는 반복 가능한 smoke 명령이 있다. - -## 완료 기준 - -- [ ] API와 client가 같은 contract typeName 기준으로 메시지를 주고받는다. -- [ ] heartbeat/disconnect는 proto-socket 기본 동작을 따른다. -- [ ] API가 long-running worker 작업을 직접 실행하지 않는다. -- [ ] `bin/test`와 `bin/lint`가 통과한다. +- [ ] [disconnect-state] client에서 연결/해제/오류 상태를 UI나 state layer에서 표현할 수 있다. 검증: heartbeat/disconnect는 proto-socket 기본 동작을 따른다. +- [ ] [socket-test] handshake loop를 검증하는 테스트 또는 반복 가능한 smoke 명령이 있다. 검증: API가 long-running worker 작업을 직접 실행하지 않고 `bin/test`, `bin/lint`가 통과한다. ## 완료 리뷰 - 상태: 없음 - 요청일: 없음 -- 완료 근거: 아직 필수 기능과 완료 기준이 충족되지 않았다. +- 완료 근거: 아직 기능 Task와 Task별 검증이 충족되지 않았다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다