# Complete - m-cross-os-runner-bootstrap/05+01,02,03_node_connect

## 완료 일시

2026-06-16

## 요약

bootstrap 생성 config와 OTO agent runner/node 연결 smoke 보강을 2회 리뷰 루프로 완료했으며 최종 판정은 PASS다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | FAIL | token rejection 테스트 기대값이 `RegistrationResult.fromOtoJson`의 `reject_reason` 우선 계약과 맞지 않았고 필수 검증 증거가 부족해 후속 필요 |
| `plan_cloud_G07_1.log` | `code_review_cloud_G07_1.log` | PASS | rejection contract를 테스트 기대값과 정합화하고 같은 소스 기준 원격 runner 검증 통과 |

## 구현/정리 내용

- bootstrap script가 생성하는 `server:` 기반 agent config YAML을 `AgentConfig.fromYamlContent()` fixture로 고정했다.
- enrollment token rejected response에서 token 원문을 노출하지 않는지 검증하는 Dart registration client 테스트를 추가했다.
- `RegistrationResult.fromOtoJson`의 rejected JSON 우선순위(`reject_reason` > `rejectReason` > `error.message`)에 맞춰 테스트 기대값을 정리했다.
- 기존 Go Core registry/httpserver 테스트로 runner registration, heartbeat/disconnect, status visibility 회귀를 확인했다.

## 최종 검증

- `ssh toki@toki-labs.com`, remote temp source from current `HEAD` plus working diff, `cd apps/runner && dart pub get` - PASS; dependencies resolved.
- `ssh toki@toki-labs.com`, remote temp source, `cd apps/runner && dart format --output=none --set-exit-if-changed test/oto_agent_bootstrap_script_test.dart test/oto_agent_registration_test.dart` - PASS; `Formatted 2 files (0 changed)`.
- `ssh toki@toki-labs.com`, remote temp source, `cd apps/runner && dart analyze` - PASS; `No issues found!`.
- `ssh toki@toki-labs.com`, remote temp source, `cd apps/runner && dart test test/oto_agent_bootstrap_script_test.dart test/oto_agent_config_test.dart test/oto_agent_registration_test.dart test/oto_server_connection_smoke_test.dart` - PASS; `All tests passed!`.
- `ssh toki@toki-labs.com`, remote temp source, `cd services/core && go test ./...` - PASS; all tested packages passed.
- `git diff --check` - PASS; no output.

## Roadmap Completion

- Milestone: `agent-roadmap/phase/control-plane-product-surface/milestones/cross-os-runner-bootstrap.md`
- Completed task ids:
  - `[node-connect]`: PASS; evidence=`plan_cloud_G07_1.log`, `code_review_cloud_G07_1.log`; verification=`cd apps/runner && dart analyze`, `cd apps/runner && dart test test/oto_agent_bootstrap_script_test.dart test/oto_agent_config_test.dart test/oto_agent_registration_test.dart test/oto_server_connection_smoke_test.dart`, `cd services/core && go test ./...`
- Not completed task ids: 없음

## 잔여 Nit

- 없음

## 후속 작업

- 없음
