update agent-roadmap: modify PHASE and milestone files, archive independent-control-plane
This commit is contained in:
parent
f798f78527
commit
4b79a06f75
7 changed files with 12 additions and 53 deletions
|
|
@ -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 경계를 정리 중이다.
|
||||
|
||||
## 로딩 정책
|
||||
|
||||
|
|
|
|||
|
|
@ -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 경계
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## 상태
|
||||
|
||||
[검토중]
|
||||
[진행중]
|
||||
|
||||
## 목표
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Milestone: agent 등록 capability 경계 정리
|
||||
ㅊ# Milestone: agent 등록 capability 경계 정리
|
||||
|
||||
## 상태
|
||||
|
||||
|
|
|
|||
|
|
@ -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의 상태가 문서와 명령 양쪽에서 같은 의미를 갖도록 확인한다.
|
||||
|
|
|
|||
|
|
@ -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) {});
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue