diff --git a/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md b/agent-roadmap/archive/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md similarity index 68% rename from agent-roadmap/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md rename to agent-roadmap/archive/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md index 73fe1ab..cf7c2f1 100644 --- a/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md +++ b/agent-roadmap/archive/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md @@ -12,7 +12,7 @@ Edge는 OTO bootstrap script를 구현하지 않고, OTO가 소유한 script 인 ## 상태 -[진행중] +[완료] ## 구현 잠금 @@ -33,21 +33,24 @@ Edge는 OTO bootstrap script를 구현하지 않고, OTO가 소유한 script 인 Edge-local field UX에서 OTO agent를 생성하고 bootstrap command를 출력한다. -- [ ] [agent-register-cmd] `iop-edge`가 OTO agent record를 만들거나 갱신하는 command 표면을 제공한다. -- [ ] [node-interface-parity] OTO agent command/config 표면이 기존 `iop-node` bootstrap의 필드명, flag 의미, 출력 형식, 진단 흐름을 최대한 유지한다. -- [ ] [bootstrap-output] command 출력은 한 줄 bootstrap command만 안정적으로 제공하고 token을 불필요하게 재출력하지 않는다. -- [ ] [oto-args] 출력 command가 OTO bootstrap 필수 인자 `--edge-url`, `--agent-id`, `--enrollment-token`, `--release-base-url`을 포함한다. -- [ ] [config-roundtrip] 생성된 edge config를 `config check`와 runtime load가 읽을 수 있다. 검증: `go test ./apps/edge/cmd/edge ./packages/go/config` +- [x] [agent-register-cmd] `iop-edge`가 OTO agent record를 만들거나 갱신하는 command 표면을 제공한다. +- [x] [node-interface-parity] OTO agent command/config 표면이 기존 `iop-node` bootstrap의 필드명, flag 의미, 출력 형식, 진단 흐름을 최대한 유지한다. +- [x] [bootstrap-output] command 출력은 한 줄 bootstrap command만 안정적으로 제공하고 token을 불필요하게 재출력하지 않는다. +- [x] [oto-args] 출력 command가 OTO bootstrap 필수 인자 `--edge-url`, `--agent-id`, `--enrollment-token`, `--release-base-url`을 포함한다. +- [x] [config-roundtrip] 생성된 edge config를 `config check`와 runtime load가 읽을 수 있다. 검증: `go test ./apps/edge/cmd/edge ./packages/go/config` ## 완료 리뷰 -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 모든 기능 Task가 아직 충족되지 않았다. +- 상태: 승인됨 +- 요청일: 2026-06-03 +- 완료 근거: + - `iop-edge agent register`가 OTO agent record를 upsert하고 `agent_kind: oto-agent`, alias, token, OTO bootstrap URL, release URL을 edge config에 반영한다. + - 출력 command는 OTO bootstrap 필수 인자를 포함한 한 줄 command로 검증되며, 기본 HTTPS 우선과 명시적 local HTTP 허용 flag가 분리되어 있다. + - 검증 명령 `go test -count=1 ./apps/edge/cmd/edge ./packages/go/config` 통과, 임시 config CLI smoke의 `config init -> agent register -> config check` 통과. - 리뷰 필요: - - [ ] 사용자가 완료 결과를 확인했다 - - [ ] archive 이동을 승인했다 -- 리뷰 코멘트: 없음 + - [x] 사용자가 완료 결과를 확인했다 + - [x] archive 이동을 승인했다 +- 리뷰 코멘트: 2026-06-03 사용자 요청으로 모든 기능 Task 완료 상태를 확인하고 Milestone을 완료/archive 처리한다. ## 범위 제외 @@ -64,4 +67,4 @@ Edge-local field UX에서 OTO agent를 생성하고 bootstrap command를 출력 - 표준선(선택): MVP에서는 one-time enrollment token을 사용하고 장기 credential 재발급은 후속으로 둔다. - 선행 작업: OTO Agent Registry 구현 - 후속 작업: OTO Registration Online Smoke -- 확인 필요: local smoke에서 사용할 OTO bootstrap script URL과 release base URL 기본값 +- 확인 결과: local smoke용 OTO bootstrap script URL과 release base URL은 기본값을 두지 않고, command flag 또는 `bootstrap.*` config로 명시 입력한다. diff --git a/agent-roadmap/phase/automation-runtime-bridge/PHASE.md b/agent-roadmap/phase/automation-runtime-bridge/PHASE.md index c23dcff..c8b234c 100644 --- a/agent-roadmap/phase/automation-runtime-bridge/PHASE.md +++ b/agent-roadmap/phase/automation-runtime-bridge/PHASE.md @@ -26,15 +26,15 @@ CLI 실행, specialized agent 등록, bootstrap/enrollment, 원격 터미널 브 - 경로: `agent-roadmap/archive/phase/automation-runtime-bridge/milestones/oto-agent-registry-implementation.md` - 요약: Edge-side `generic-node`/`oto-agent` 구분을 config/store, registry/transport, service snapshot에 반영하고 검증을 완료했다. +- [완료] OTO Bootstrap Command 발급 + - 경로: `agent-roadmap/archive/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md` + - 요약: `iop-edge agent register`가 OTO agent record와 OTO Linux bootstrap script 인자를 포함한 one-line command를 발급하고 config roundtrip 검증을 완료했다. + - [검토중] Specialized Agent proto-socket 연결 기반 - 경로: `agent-roadmap/phase/automation-runtime-bridge/milestones/specialized-agent-proto-socket-foundation.md` - 요약: OTO의 node-compatible proto-socket registration smoke를 바탕으로 Edge의 specialized agent kind, registry/config, message boundary, reconnect 정책과 runtime 경로 구분을 완료 후보로 정리했다. -- [진행중] OTO Bootstrap Command 발급 - - 경로: `agent-roadmap/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md` - - 요약: `iop-edge`가 OTO agent record를 만들고 OTO Linux bootstrap script가 소비할 one-line command를 발급하는 CLI/config 표면을 구현한다. - -- [계획] OTO Registration Online Smoke +- [진행중] OTO Registration Online Smoke - 경로: `agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-online-smoke.md` - 요약: OTO Dart `proto_socket` client와 iop Edge를 함께 띄워 registration accepted, 최초 heartbeat, online/failed 상태 구분을 검증한다. diff --git a/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-online-smoke.md b/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-online-smoke.md index 3f2862f..2d5cb47 100644 --- a/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-online-smoke.md +++ b/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-online-smoke.md @@ -12,7 +12,7 @@ iop Edge와 OTO `oto-agent`를 실제로 함께 띄워 Edge 직접 outbound 등 ## 상태 -[계획] +[진행중] ## 구현 잠금 diff --git a/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-unlock-handoff.md b/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-unlock-handoff.md index 66a5b85..34195cb 100644 --- a/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-unlock-handoff.md +++ b/agent-roadmap/phase/automation-runtime-bridge/milestones/oto-registration-unlock-handoff.md @@ -74,9 +74,9 @@ ORU02 handoff plan의 upstream completion gate 평가 결과다. 상태는 각 - predecessor `01_node_interface_parity`: PASS. `agent-task/archive/2026/06/m-oto-registration-unlock-handoff/01_node_interface_parity/complete.log` 확인 결과 `node-interface-parity`가 PASS 완료되었고, `rg --sort path -n 'node-interface-parity|iop-node|agent_kind' ...`와 `git diff --check` 검증이 통과했다. - `OTO Agent Registry 구현`: [완료] — archive 문서 `agent-roadmap/archive/phase/automation-runtime-bridge/milestones/oto-agent-registry-implementation.md`로 이동되었고, 기능 Task(`agent-kind-model`, `compat-node`, `connected-entry`, `duplicate-policy`)와 registry task group의 3개 `complete.log`가 모두 PASS evidence를 갖는다. -- `OTO Bootstrap Command 발급`: [진행중] — 현재 실행 가능한 다음 Milestone이며 구현/완료 evidence는 아직 없다. -- `OTO Registration Online Smoke`: [계획] — registration accepted/최초 heartbeat online PASS 로그 또는 smoke evidence 없음. -- **upstream-complete gate: 미충족.** `OTO Bootstrap Command 발급`과 `OTO Registration Online Smoke`가 아직 [검토중] 또는 [완료]가 아니므로 online-evidence(accepted/heartbeat)와 failure-retry(unknown token, duplicate connection, heartbeat timeout, bootstrap/registration 실패 reason과 retry 기준) evidence를 OTO `registration-state`로 옮길 수 있는 형태로 수집할 수 없다. 따라서 `upstream-complete`, `online-evidence`, `failure-retry`, `lock-sync-ready`는 아직 `[x]` 처리하지 않는다. 이 gate는 사용자 결정이 아니라 선행 Milestone 구현이 완료되어야 닫히는 repo-owned evidence gap이다. +- `OTO Bootstrap Command 발급`: [완료] — archive 문서 `agent-roadmap/archive/phase/automation-runtime-bridge/milestones/oto-bootstrap-command-issue.md`로 이동되었고, `agent register` command, one-line bootstrap output, OTO args, config roundtrip evidence가 PASS로 남아 있다. +- `OTO Registration Online Smoke`: [진행중] — 현재 실행 가능한 다음 Milestone이며 registration accepted/최초 heartbeat online PASS 로그 또는 smoke evidence는 아직 없다. +- **upstream-complete gate: 미충족.** `OTO Registration Online Smoke`가 아직 [검토중] 또는 [완료]가 아니므로 online-evidence(accepted/heartbeat)와 failure-retry(unknown token, duplicate connection, heartbeat timeout, bootstrap/registration 실패 reason과 retry 기준) evidence를 OTO `registration-state`로 옮길 수 있는 형태로 수집할 수 없다. 따라서 `upstream-complete`, `online-evidence`, `failure-retry`, `lock-sync-ready`는 아직 `[x]` 처리하지 않는다. 이 gate는 사용자 결정이 아니라 선행 Milestone 구현이 완료되어야 닫히는 repo-owned evidence gap이다. ### lock sync readiness