# Complete - m-architecture-refactor-foundation/09_proto_legacy_contract

## 완료 일시

2026-06-06

## 요약

Legacy scheduling/node registration proto tombstone 정리를 2회 리뷰 루프로 완료했다. 최종 판정: PASS.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G06_0.log` | `code_review_cloud_G06_0.log` | FAIL | `NodeStatus` retired value names가 reserved되지 않아 source-level tombstone이 불완전했다. |
| `plan_cloud_G06_1.log` | `code_review_cloud_G06_1.log` | PASS | Retired value names reservation과 descriptor guard가 보강되어 proto legacy tombstone 계약이 충족됐다. |

## 구현/정리 내용

- `ScheduleRequest`/`ScheduleResponse`, `NodeInfo`, `NodeRegisterRequest`, `NodeRegisterResponse`를 active field 없는 reserved tombstone으로 정리했다.
- `NodeStatus`는 unspecified zero value만 active로 남기고 retired value numbers와 names를 모두 reserved 처리했다.
- Go descriptor guard와 Dart generated import guard를 새 tombstone 계약에 맞게 보강했다.
- Go/Dart protobuf 생성물을 `make proto`/`make proto-dart` 산출물로 갱신했다.

## 최종 검증

- `make proto` - PASS; protoc Go generation 성공, 추가 codegen drift 없음.
- `make proto-dart` - PASS; protoc Dart generation 성공, 추가 codegen drift 없음.
- `go test -count=1 ./apps/control-plane/... ./packages/go/... ./proto/gen/...` - PASS; Control Plane wire, Go common packages, generated Go proto 검증 통과.
- `cd apps/client && flutter test test/iop_wire/generated_proto_import_test.dart test/iop_wire/parser_map_test.dart` - PASS; focused Flutter proto import/parser guard 통과.
- `rg --sort path -n "NodeStatus_NODE_STATUS_ONLINE|NodeStatus_NODE_STATUS_OFFLINE|NodeStatus_NODE_STATUS_DRAINING|static const NodeStatus NODE_STATUS_ONLINE|static const NodeStatus NODE_STATUS_OFFLINE|static const NodeStatus NODE_STATUS_DRAINING|GetAddress|GetToken|hasAddress|hasToken|set address|set token" proto/gen/iop/control.pb.go proto/gen/iop/node.pb.go apps/client/lib/gen/proto/iop/control.pb.dart apps/client/lib/gen/proto/iop/control.pbjson.dart apps/client/lib/gen/proto/iop/node.pb.dart apps/client/lib/gen/proto/iop/node.pbenum.dart apps/client/lib/gen/proto/iop/node.pbjson.dart` - PASS; 출력 없음(exit code 1), active retired enum constants/accessors 없음.

## Roadmap Completion

- Milestone: `agent-roadmap/phase/automation-runtime-bridge/milestones/architecture-refactor-foundation.md`
- Completed task ids:
  - `proto-legacy`: PASS; evidence=`agent-task/archive/2026/06/m-architecture-refactor-foundation/09_proto_legacy_contract/plan_cloud_G06_0.log`, `agent-task/archive/2026/06/m-architecture-refactor-foundation/09_proto_legacy_contract/code_review_cloud_G06_0.log`, `agent-task/archive/2026/06/m-architecture-refactor-foundation/09_proto_legacy_contract/plan_cloud_G06_1.log`, `agent-task/archive/2026/06/m-architecture-refactor-foundation/09_proto_legacy_contract/code_review_cloud_G06_1.log`; verification=`make proto`, `make proto-dart`, `go test -count=1 ./apps/control-plane/... ./packages/go/... ./proto/gen/...`, `cd apps/client && flutter test test/iop_wire/generated_proto_import_test.dart test/iop_wire/parser_map_test.dart`, deterministic stale-symbol `rg`
- Not completed task ids: 없음

## 잔여 Nit

- 없음

## 후속 작업

- 없음
