From 2dd8bb8a56c61691676bad955ae121c6ebb2c75b Mon Sep 17 00:00:00 2001 From: toki Date: Sun, 28 Jun 2026 08:05:46 +0900 Subject: [PATCH] chore: sync proto files and clean up review docs --- .../code_review_cloud_G07_0.log} | 94 +++++++++++++++++-- .../01_contract_schema/complete.log | 45 +++++++++ .../01_contract_schema/plan_cloud_G07_0.log} | 0 apps/client/lib/gen/proto/iop/control.pb.dart | 2 + apps/client/lib/gen/proto/iop/runtime.pb.dart | 8 +- 5 files changed, 142 insertions(+), 7 deletions(-) rename agent-task/{m-node-resource-model-unification/01_contract_schema/CODE_REVIEW-cloud-G07.md => archive/2026/06/m-node-resource-model-unification/01_contract_schema/code_review_cloud_G07_0.log} (73%) create mode 100644 agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/complete.log rename agent-task/{m-node-resource-model-unification/01_contract_schema/PLAN-cloud-G07.md => archive/2026/06/m-node-resource-model-unification/01_contract_schema/plan_cloud_G07_0.log} (100%) diff --git a/agent-task/m-node-resource-model-unification/01_contract_schema/CODE_REVIEW-cloud-G07.md b/agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/code_review_cloud_G07_0.log similarity index 73% rename from agent-task/m-node-resource-model-unification/01_contract_schema/CODE_REVIEW-cloud-G07.md rename to agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/code_review_cloud_G07_0.log index 882b79d..5098cb5 100644 --- a/agent-task/m-node-resource-model-unification/01_contract_schema/CODE_REVIEW-cloud-G07.md +++ b/agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/code_review_cloud_G07_0.log @@ -49,12 +49,12 @@ task=m-node-resource-model-unification/01_contract_schema, plan=0, tag=API > **[REVIEW AGENT ONLY]** 이 체크리스트는 코드리뷰 에이전트만 사용한다. -- [ ] `코드리뷰 결과`에 `PASS`, `WARN`, `FAIL` 중 하나의 판정을 append한다. -- [ ] 판정과 `차원별 평가`, Required/Suggested/Nit 분류가 서로 일치한다. -- [ ] active `CODE_REVIEW-*-G??.md`를 `code_review_cloud_G07_0.log`로 아카이브한다. -- [ ] active `PLAN-*-G??.md`를 `plan_cloud_G07_0.log`로 아카이브한다. -- [ ] `.gitignore`의 Agent-Ops 관리 block이 task artifact를 unignore하는지 확인한다. -- [ ] PASS이면 `complete.log`를 작성하고 active task 디렉터리를 archive로 이동한다. +- [x] `코드리뷰 결과`에 `PASS`, `WARN`, `FAIL` 중 하나의 판정을 append한다. +- [x] 판정과 `차원별 평가`, Required/Suggested/Nit 분류가 서로 일치한다. +- [x] active `CODE_REVIEW-*-G??.md`를 `code_review_cloud_G07_0.log`로 아카이브한다. +- [x] active `PLAN-*-G??.md`를 `plan_cloud_G07_0.log`로 아카이브한다. +- [x] `.gitignore`의 Agent-Ops 관리 block이 task artifact를 unignore하는지 확인한다. +- [x] PASS이면 `complete.log`를 작성하고 active task 디렉터리를 archive로 이동한다. - [ ] WARN/FAIL이면 다음 active plan/review 또는 `USER_REVIEW.md`를 작성한다. ## 계획 대비 변경 사항 @@ -225,3 +225,85 @@ $ git diff --check ``` > **[IMPLEMENTING AGENT - BEFORE SAVING] Have you filled in every implementation-owned section?** + +## 코드리뷰 결과 + +- 리뷰 일자: 2026-06-28 +- 종합 판정: PASS + +### 차원별 평가 + +| 차원 | 평가 | 근거 | +|------|------|------| +| Correctness | Pass | provider adapter reference validation이 enabled adapter instance 기준으로 동작하고, legacy runtime concurrency 의미는 contract/comment로 정리됐다. | +| Completeness | Pass | 계획된 contract/proto/comment, config validation, regression coverage가 충족됐고 review artifact drift는 최종화 절차에서 보정한다. | +| Test coverage | Pass | provider adapter reference, missing/disabled/ambiguous/CLI case와 기존 duplicate/category/legacy compatibility tests가 존재하며 관련 Go tests가 통과했다. | +| API contract | Pass | Edge-Node runtime wire, Control Plane-Edge status wire, Edge config/runtime refresh 계약이 SDD 기준과 일치한다. | +| Code quality | Pass | validator는 기존 `edgevalidate` 경계에 좁게 추가됐고 불필요한 debug/TODO/죽은 코드는 보이지 않는다. | +| Implementation deviation | Pass | `config.LoadEdge`는 legacy load compatibility를 유지하고 runtime validation은 `edgevalidate`/refresh path에 둔 결정이 계획의 선택지와 일치한다. | +| Verification trust | Pass | 리뷰 중 계획된 Go test, Edge package test, `make proto`, `make proto-dart`, `git diff --check`를 재실행해 통과를 확인했다. | +| Spec conformance | Pass | SDD S01/S02 Evidence Map이 contract/proto/comment diff, config validation unit test, missing/disabled adapter validation output으로 충족된다. | + +### 발견된 문제 + +없음 + +### 리뷰 중 직접 보정 + +- `make proto-dart`를 실행해 `proto/iop/runtime.proto`, `proto/iop/control.proto`의 comment-only 계약 변경을 Dart generated proto comment에 동기화했다. + +### 확인한 검증 + +```text +$ go test -count=1 ./packages/go/... ./proto/gen/... ./apps/edge/internal/configrefresh ./apps/edge/internal/node +ok iop/packages/go/audit 0.002s +? iop/packages/go/auth [no test files] +ok iop/packages/go/config 0.055s +? iop/packages/go/events [no test files] +? iop/packages/go/jobs [no test files] +? iop/packages/go/metadata [no test files] +ok iop/packages/go/hostsetup 0.011s +ok iop/packages/go/observability 0.024s +? iop/packages/go/policy [no test files] +? iop/packages/go/version [no test files] +? iop/proto/gen/iop [no test files] +ok iop/apps/edge/internal/configrefresh 0.015s +ok iop/apps/edge/internal/node 0.005s +``` + +```text +$ go test -count=1 ./apps/edge/... +ok iop/apps/edge/cmd/edge 0.053s +ok iop/apps/edge/internal/bootstrap 0.285s +ok iop/apps/edge/internal/configrefresh 0.022s +ok iop/apps/edge/internal/controlplane 4.452s +ok iop/apps/edge/internal/edgecmd 0.023s +ok iop/apps/edge/internal/edgevalidate 0.006s +ok iop/apps/edge/internal/events 0.003s +ok iop/apps/edge/internal/input 0.005s +ok iop/apps/edge/internal/input/a2a 0.007s +ok iop/apps/edge/internal/node 0.005s +ok iop/apps/edge/internal/openai 1.513s +ok iop/apps/edge/internal/opsconsole 0.006s +ok iop/apps/edge/internal/service 0.440s +ok iop/apps/edge/internal/transport 2.045s +``` + +```text +$ make proto +protoc --go_out=. --go_opt=module=iop --proto_path=. proto/iop/runtime.proto proto/iop/node.proto proto/iop/control.proto proto/iop/job.proto +``` + +```text +$ make proto-dart +protoc --plugin=protoc-gen-dart=/config/.local/bin/protoc-gen-dart --dart_out=apps/client/lib/gen --proto_path=. --proto_path=/config/.local/include proto/iop/runtime.proto proto/iop/node.proto proto/iop/control.proto proto/iop/job.proto +``` + +```text +$ git diff --check +(no output) +``` + +### 다음 단계 + +PASS: active plan/review를 log로 아카이브하고 `complete.log`를 작성한 뒤 task directory를 `agent-task/archive/YYYY/MM/` 아래로 이동한다. diff --git a/agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/complete.log b/agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/complete.log new file mode 100644 index 0000000..96836e0 --- /dev/null +++ b/agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/complete.log @@ -0,0 +1,45 @@ +# Complete - m-node-resource-model-unification/01_contract_schema + +## 완료 일시 + +2026-06-28 + +## 요약 + +Node resource model contract/schema subtask completed in 1 review loop with final verdict PASS. + +## 루프 이력 + +| Plan | Review | Verdict | 메모 | +|------|--------|---------|------| +| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | PASS | contract/proto/comment, provider adapter validation, and regression evidence satisfied SDD S01/S02; reviewer synced Dart generated proto comments with `make proto-dart`. | + +## 구현/정리 내용 + +- `NodeRuntimeConfig.concurrency` and `runtime.concurrency` are documented as legacy compatibility metadata rather than node-wide admission source. +- `nodes[].providers[]` is documented as the Node resource/provider catalog, and provider adapter references are validated against enabled same-node adapter instances in `edgevalidate`. +- `ProviderSnapshot` remains a legacy wire name while documenting resource/provider snapshot compatibility. +- Review cleanup synchronized client Dart generated proto comments for the comment-only proto contract changes. + +## 최종 검증 + +- `go test -count=1 ./packages/go/... ./proto/gen/... ./apps/edge/internal/configrefresh ./apps/edge/internal/node` - PASS; packages/go, proto/gen, configrefresh, and edge node packages passed. +- `go test -count=1 ./apps/edge/...` - PASS; all Edge packages passed. +- `make proto` - PASS; Go protobuf generation completed without additional Go generated diff. +- `make proto-dart` - PASS; Dart protobuf comments were synchronized with proto source. +- `git diff --check` - PASS; no whitespace or conflict-marker output. + +## Roadmap Completion + +- Milestone: `agent-roadmap/phase/operational-observability-provider-management/milestones/node-resource-model-unification.md` +- Completed task ids: + - `contract-schema`: PASS; evidence=`agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/plan_cloud_G07_0.log`, `agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/code_review_cloud_G07_0.log`; verification=`go test -count=1 ./packages/go/... ./proto/gen/... ./apps/edge/internal/configrefresh ./apps/edge/internal/node`, `go test -count=1 ./apps/edge/...`, `make proto`, `make proto-dart`, `git diff --check` +- Not completed task ids: 없음 + +## 잔여 Nit + +- 없음 + +## 후속 작업 + +- 없음 diff --git a/agent-task/m-node-resource-model-unification/01_contract_schema/PLAN-cloud-G07.md b/agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/plan_cloud_G07_0.log similarity index 100% rename from agent-task/m-node-resource-model-unification/01_contract_schema/PLAN-cloud-G07.md rename to agent-task/archive/2026/06/m-node-resource-model-unification/01_contract_schema/plan_cloud_G07_0.log diff --git a/apps/client/lib/gen/proto/iop/control.pb.dart b/apps/client/lib/gen/proto/iop/control.pb.dart index f3d5b1d..5224f5a 100644 --- a/apps/client/lib/gen/proto/iop/control.pb.dart +++ b/apps/client/lib/gen/proto/iop/control.pb.dart @@ -707,6 +707,8 @@ class EdgeNodeSnapshot extends $pb.GeneratedMessage { @$pb.TagNumber(5) $0.NodeConfigPayload ensureConfig() => $_ensure(4); + /// provider_snapshots uses the runtime ProviderSnapshot wire name for node + /// resources/providers. category distinguishes CLI/API/local inference. @$pb.TagNumber(6) $pb.PbList<$0.ProviderSnapshot> get providerSnapshots => $_getList(5); } diff --git a/apps/client/lib/gen/proto/iop/runtime.pb.dart b/apps/client/lib/gen/proto/iop/runtime.pb.dart index 6065c1c..2784572 100644 --- a/apps/client/lib/gen/proto/iop/runtime.pb.dart +++ b/apps/client/lib/gen/proto/iop/runtime.pb.dart @@ -1024,6 +1024,10 @@ class NodeCommandResponse extends $pb.GeneratedMessage { $pb.PbList get providerSnapshots => $_getList(8); } +/// ProviderSnapshot is the legacy wire name for a node resource/provider status +/// snapshot. category identifies whether the resource is API, CLI, or local +/// inference; provider-pool dispatch is limited to catalog resources referenced +/// by models[].providers. class ProviderSnapshot extends $pb.GeneratedMessage { factory ProviderSnapshot({ $core.String? adapter, @@ -2483,7 +2487,9 @@ class OpenAICompatAdapterConfig extends $pb.GeneratedMessage { void clearRequestTimeoutMs() => $_clearField(7); } -/// NodeRuntimeConfig is the runtime tuning pushed to the node. +/// NodeRuntimeConfig carries legacy node runtime metadata. Execution admission +/// must not use this as a node-wide global gate; provider/resource capacity owns +/// concurrency. class NodeRuntimeConfig extends $pb.GeneratedMessage { factory NodeRuntimeConfig({ $core.int? concurrency,