From 4b79a06f75ca5e67a93f80bed96b2a75fc753c73 Mon Sep 17 00:00:00 2001 From: toki Date: Thu, 11 Jun 2026 05:54:38 +0900 Subject: [PATCH] update agent-roadmap: modify PHASE and milestone files, archive independent-control-plane --- agent-roadmap/ROADMAP.md | 10 +++--- .../phase/independent-control-plane/PHASE.md | 6 ++-- .../phase/message-based-build-agent/PHASE.md | 2 +- .../agent-registration-capability-boundary.md | 2 +- .../runner-verification-baseline.md | 4 +-- check_datapath2.dart | 10 ------ test_regist.dart | 31 ------------------- 7 files changed, 12 insertions(+), 53 deletions(-) rename agent-roadmap/{ => archive}/phase/independent-control-plane/PHASE.md (97%) delete mode 100644 check_datapath2.dart delete mode 100644 test_regist.dart diff --git a/agent-roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md index 309b775..8248720 100644 --- a/agent-roadmap/ROADMAP.md +++ b/agent-roadmap/ROADMAP.md @@ -17,12 +17,12 @@ OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서 - [폐기] Edge 직접 연결 기반 `oto-agent` - 경로: `agent-roadmap/archive/phase/edge-direct-oto-agent/PHASE.md` - 요약: OTO가 iop Edge와 proto-socket 기반 outbound 통신을 하는 경로는 검증 근거만 보존하고, 독립 OTO Control Plane 방향으로 전환하며 기본 제품 경로에서는 폐기한다. -- [검토중] 독립 Control Plane 기반 OTO - - 경로: `agent-roadmap/phase/independent-control-plane/PHASE.md` - - 요약: OTO를 iop 직접 연결 구조에서 분리해 `apps/runner`, `apps/client`, `services/core`를 가진 독립 CI/CD runner/control plane 제품 구조로 전환했고, Phase 완료 후보로 검토 중이다. -- [검토중] 메시지 기반 빌드 에이전트 +- [완료] 독립 Control Plane 기반 OTO + - 경로: `agent-roadmap/archive/phase/independent-control-plane/PHASE.md` + - 요약: OTO를 iop 직접 연결 구조에서 분리해 `apps/runner`, `apps/client`, `services/core`를 가진 독립 CI/CD runner/control plane 제품 구조로 전환하고 archive로 정리했다. +- [진행중] 메시지 기반 빌드 에이전트 - 경로: `agent-roadmap/phase/message-based-build-agent/PHASE.md` - - 요약: `oto agent` 또는 `oto daemon` 모드에서 Edge와 양방향 메시지 통신을 사용하며, OTO를 build/deploy 전용 domain agent로 노출한다. + - 요약: `oto agent` 또는 `oto daemon` 모드에서 OTO Server와 양방향 메시지 통신을 사용하며, 열린 계획 Milestone을 통해 build/deploy 전용 runner 경계를 정리 중이다. ## 로딩 정책 diff --git a/agent-roadmap/phase/independent-control-plane/PHASE.md b/agent-roadmap/archive/phase/independent-control-plane/PHASE.md similarity index 97% rename from agent-roadmap/phase/independent-control-plane/PHASE.md rename to agent-roadmap/archive/phase/independent-control-plane/PHASE.md index 0125b6c..99e7d81 100644 --- a/agent-roadmap/phase/independent-control-plane/PHASE.md +++ b/agent-roadmap/archive/phase/independent-control-plane/PHASE.md @@ -2,7 +2,7 @@ ## 상태 -[검토중] +[완료] ## 목표 @@ -39,13 +39,13 @@ OTO를 iop Edge에 직접 붙는 domain agent가 아니라, 독립 실행 가능 ## 완료 리뷰 -- 상태: 요청됨 +- 상태: 승인됨 - 요청일: 2026-06-09 - 완료 근거: - 독립 Control Plane 분리, 포트/환경, agent-ops 규칙, runner 출력, oto_console, core server, workspace metadata Milestone이 모두 완료되어 archive 경로로 정리되었다. - `apps/runner`, `apps/client`, `services/core` 중심의 독립 OTO runner/control plane 구조와 재현성 메타데이터 기준이 정리되었다. - 사용자 최종 확인: - - [ ] 이 Phase를 완료로 승인하고 archive 이동해도 되는지 확인한다. + - [x] 이 Phase를 완료로 승인하고 archive 이동해도 되는지 확인한다. - 리뷰 코멘트: runner 전체 test baseline 정리는 `메시지 기반 빌드 에이전트` Phase의 `runner 검증 기준 정합화` Milestone에서 별도 후속으로 추적한다. ## Phase 경계 diff --git a/agent-roadmap/phase/message-based-build-agent/PHASE.md b/agent-roadmap/phase/message-based-build-agent/PHASE.md index 2413bd9..17c80a3 100644 --- a/agent-roadmap/phase/message-based-build-agent/PHASE.md +++ b/agent-roadmap/phase/message-based-build-agent/PHASE.md @@ -2,7 +2,7 @@ ## 상태 -[검토중] +[진행중] ## 목표 diff --git a/agent-roadmap/phase/message-based-build-agent/milestones/agent-registration-capability-boundary.md b/agent-roadmap/phase/message-based-build-agent/milestones/agent-registration-capability-boundary.md index 9c91230..6e166cf 100644 --- a/agent-roadmap/phase/message-based-build-agent/milestones/agent-registration-capability-boundary.md +++ b/agent-roadmap/phase/message-based-build-agent/milestones/agent-registration-capability-boundary.md @@ -1,4 +1,4 @@ -# Milestone: agent 등록 capability 경계 정리 +ㅊ# Milestone: agent 등록 capability 경계 정리 ## 상태 diff --git a/agent-roadmap/phase/message-based-build-agent/milestones/runner-verification-baseline.md b/agent-roadmap/phase/message-based-build-agent/milestones/runner-verification-baseline.md index 650d12b..b69741c 100644 --- a/agent-roadmap/phase/message-based-build-agent/milestones/runner-verification-baseline.md +++ b/agent-roadmap/phase/message-based-build-agent/milestones/runner-verification-baseline.md @@ -29,7 +29,7 @@ - `agent-test/local/agent-smoke.md`는 legacy iop smoke를 필수 agent smoke에서 제외하지만, `Makefile`의 `runner-test`는 전체 `dart test`를 실행한다. - `apps/runner/test/oto_iop_connection_smoke_test.dart`는 현재 iop Edge가 허용하지 않는 `agent_kind: "oto-agent"`를 사용해 기본 test suite를 실패시킨다. -- root `test_regist.dart`는 root package 경계 밖 import로 `dart analyze`를 실패시킨다. +- root 임시 Dart 파일 `test_regist.dart`, `check_datapath2.dart`를 제거했고, `dart analyze .`가 통과한다. ## 기능 @@ -37,5 +37,5 @@ - [ ] [test-scope] `Makefile`의 runner/root 테스트 target과 `agent-test/local` smoke 문서의 필수 검증 범위를 일치시킨다. - [ ] [legacy-iop] iop Edge 직접 연결 smoke를 기본 runner test에서 제외하거나 legacy 전용 명령으로 명시한다. 검증: `make runner-test`가 현재 필수 검증 기준으로 통과한다. -- [ ] [root-analyze] root analyzer를 깨뜨리는 임시 Dart 파일을 제거, 이동 또는 분석 제외 범위로 정리한다. 검증: root 분석 명령이 실패하지 않는다. +- [x] [root-analyze] root analyzer를 깨뜨리는 임시 Dart 파일을 제거, 이동 또는 분석 제외 범위로 정리한다. 검증: root 분석 명령이 실패하지 않는다. - [ ] [smoke-evidence] 필수 agent smoke 명령과 제외된 legacy smoke의 상태가 문서와 명령 양쪽에서 같은 의미를 갖도록 확인한다. diff --git a/check_datapath2.dart b/check_datapath2.dart deleted file mode 100644 index 677a235..0000000 --- a/check_datapath2.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:dart_framework/core/application.dart' as framework; -import 'package:dart_framework/utils/system_util.dart'; - -void main() { - framework.Application('oto', 'com.toki-labs.oto', () { - print('dataPath: $dataPath'); - print('appName: $appName'); - print('appIdendifier: $appIdendifier'); - }, (e, s) {}); -} diff --git a/test_regist.dart b/test_regist.dart deleted file mode 100644 index c0505d3..0000000 --- a/test_regist.dart +++ /dev/null @@ -1,31 +0,0 @@ -import 'dart:io'; -import 'package:oto/cli/commands/scheduler/scheduler_manager.dart'; - -void main() async { - final file = File('test_pipeline.yaml'); - await file.writeAsString(''' -scheduler: - alias: test_alias -commands: [] -pipeline: - id: main - workflow: [] -'''); - - final manager = SchedulerManager.create(); - final systemdDir = Directory('/config/.config/systemd/user'); - if (!systemdDir.existsSync()) { - systemdDir.createSync(recursive: true); - } - try { - await manager.regist('test_pipeline.yaml'); - print('Success!'); - } catch (e, stack) { - print('Failed with: $e'); - print(stack); - } finally { - if (file.existsSync()) file.deleteSync(); - final copied = File('scheduler/test_alias.yaml'); - if (copied.existsSync()) copied.deleteSync(); - } -}