feat: update roadmap and add oto-iop-proto-socket-foundation milestone

This commit is contained in:
toki 2026-05-24 06:55:03 +09:00
parent 99dc601f25
commit b59d08ef8c
6 changed files with 96 additions and 19 deletions

View file

@ -8,7 +8,7 @@ OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서
## Phase 흐름
- CLI 자동화 표면 정리: Jenkins, 파일 실행, 스케줄러로 동작하는 현재 CLI 표면을 장기 호환 경계로 정리하고, command catalog, YAML validation, 실행 결과, step event를 외부 자동화용 계약으로 확장한다.
- Edge bootstrap 기반 `oto-agent`: Jenkins node 연결식 UX를 Edge 중심 bootstrap 경험으로 재해석하고, 대상 머신이 짧은 명령 하나로 agent 설치와 등록을 시작할 수 있는 설치/등록 계약을 정의한다.
- Edge 직접 연결 기반 `oto-agent`: OTO가 iop Edge와 proto-socket 기반 outbound 통신을 할 수 있는 최소 연결 계약을 먼저 정리하고, 그 위에서 bootstrap 설치/등록 경험을 정의한다.
- 메시지 기반 빌드 에이전트: `oto agent` 또는 `oto daemon` 모드에서 Edge와 proto-socket 기반 양방향 메시지 통신을 사용하며, OTO를 build/deploy 전용 domain agent로 노출한다.
## Milestone 목록
@ -19,9 +19,10 @@ OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서
- [구조화된 자동화 표면](milestones/structured-automation-surface.md) - 상태: 완료; 목표: 기존 catalog와 validation 기반을 외부 자동화용 출력 계약으로 확장한다.
- [Jenkins 호환 경계 정리](milestones/jenkins-compatibility-boundary.md) - 상태: 완료; 목표: Jenkins 호환 경로를 유지하면서 Jenkins 전용 환경 변수 의존을 제어한다.
### Edge bootstrap 기반 `oto-agent`
### Edge 직접 연결 기반 `oto-agent`
- [Edge bootstrap 계약](milestones/edge-bootstrap-contract.md) - 상태: 보류; 목표: Jenkins node 연결식 UX를 Edge bootstrap 설치/등록 계약으로 정리한다. iop의 Agent Bootstrap과 OTO 등록 기준 정리를 기다린다.
- [OTO-iop proto-socket 통신 기반](milestones/oto-iop-proto-socket-foundation.md) - 상태: 계획; 목표: iop Edge-Node 연결 구조와 proto-socket Dart 구현을 기준으로 OTO가 Edge에 직접 붙기 위한 최소 transport/handshake 기반을 정리한다.
- [Edge bootstrap 계약](milestones/edge-bootstrap-contract.md) - 상태: 보류; 목표: Jenkins node 연결식 UX를 Edge bootstrap 설치/등록 계약으로 정리한다. OTO-iop proto-socket 통신 기반과 iop의 Agent Bootstrap과 OTO 등록 기준 정리를 기다린다.
- [`oto-agent` 등록 흐름](milestones/oto-agent-registration.md) - 상태: 계획; 목표: `oto-agent` 설치 후 Edge 직접 outbound 등록 흐름을 구현 가능한 단위로 정리한다.
### 메시지 기반 빌드 에이전트

View file

@ -2,7 +2,7 @@
## 활성 Milestone
- Edge bootstrap 계약: agent-ops/roadmap/milestones/edge-bootstrap-contract.md
- OTO-iop proto-socket 통신 기반: agent-ops/roadmap/milestones/oto-iop-proto-socket-foundation.md
## 선택 규칙

View file

@ -33,10 +33,10 @@
## 필수 기능
- [ ] 기본 메시지 목록과 방향성이 정의되어 있다.
- [ ] 각 메시지의 최소 필드와 실패 응답 형식이 정의되어 있다.
- [ ] 프로토콜 버전과 capability 협상 기준이 정의되어 있다.
- [ ] generic node 하위 실행물이 아니라는 제품 경계가 문서화되어 있다.
- [ ] [message-list] 기본 메시지 목록과 방향성이 정의되어 있다.
- [ ] [message-fields] 각 메시지의 최소 필드와 실패 응답 형식이 정의되어 있다.
- [ ] [version-capability] 프로토콜 버전과 capability 협상 기준이 정의되어 있다.
- [ ] [domain-boundary] generic node 하위 실행물이 아니라는 제품 경계가 문서화되어 있다.
## 완료 기준
@ -53,6 +53,9 @@
## 작업 컨텍스트
- CLI 자동화 표면 정리 단계의 구조화 실행 결과와 step event 기준을 먼저 확인한다.
- 선행 Milestone: OTO-iop proto-socket 통신 기반
- 선행 Milestone: `oto-agent` 등록 흐름
- 관련 iop Milestone: `../iop/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md`
- 책임 경계: iop는 Edge가 이해해야 하는 specialized domain agent registry/protocol 경계를 정리한다.
- 책임 경계: OTO는 build/deploy domain agent가 노출할 capabilities, YAML run request 연결, step/log/artifact event 의미를 정리한다.
- 프로토콜 파일이나 생성 코드가 추가되면 관련 도메인 rule 또는 새 도메인 rule 필요 여부를 검토한다.

View file

@ -7,7 +7,7 @@ Edge에서 OTO agent를 생성하고 대상 머신에서 실행할 bootstrap com
## 단계
Edge bootstrap 기반 `oto-agent`
Edge 직접 연결 기반 `oto-agent`
## 상태
@ -18,6 +18,7 @@ Edge bootstrap 기반 `oto-agent`
- 상태: 잠금
- 이유: iop의 Agent Bootstrap과 OTO 등록에서 Edge bootstrap 사용자 흐름, bootstrap command 요구사항, 보안 모드 기준이 아직 확정되지 않은 보류 Milestone이다.
- 해제 조건:
- [ ] OTO-iop proto-socket 통신 기반에서 최소 transport/handshake 책임 경계가 문서화됨
- [ ] iop의 Agent Bootstrap과 OTO 등록에서 agent registry, bootstrap command, credential 흐름, 보안 검증 기준이 문서화됨
- [ ] OTO 설치/등록 책임과 iop Edge 책임 경계가 구체화됨
- [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
@ -36,11 +37,11 @@ Edge bootstrap 기반 `oto-agent`
## 필수 기능
- [ ] Edge에서 agent 생성 후 bootstrap command를 발급하는 사용자 흐름이 정의되어 있다.
- [ ] bootstrap command 형식과 필수 인자가 정의되어 있다.
- [ ] OS/arch별 바이너리 선택 규칙이 정의되어 있다.
- [ ] agent 설정 생성 경로와 필수 설정 값이 정의되어 있다.
- [ ] HTTPS, HTTP local, insecure 모드의 허용 조건이 문서화되어 있다.
- [ ] [edge-user-flow] Edge에서 agent 생성 후 bootstrap command를 발급하는 사용자 흐름이 정의되어 있다.
- [ ] [command-shape] bootstrap command 형식과 필수 인자가 정의되어 있다.
- [ ] [binary-select] OS/arch별 바이너리 선택 규칙이 정의되어 있다.
- [ ] [config-path] agent 설정 생성 경로와 필수 설정 값이 정의되어 있다.
- [ ] [security-modes] HTTPS, HTTP local, insecure 모드의 허용 조건이 문서화되어 있다.
## 완료 기준
@ -59,6 +60,9 @@ Edge bootstrap 기반 `oto-agent`
- 기존 packaging 자료와 설치 스크립트(`assets/package/**`, `assets/script/**`)를 먼저 확인한다.
- framework, cli 도메인 rule이 관련될 수 있다.
- 선행 OTO Milestone: OTO-iop proto-socket 통신 기반
- 선행 iop Milestone: `../iop/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md`
- 책임 경계: iop는 Edge의 agent 생성, bootstrap command 발급, registry, credential, 보안 검증 기준을 정리한다.
- 책임 경계: OTO는 iop가 정한 bootstrap 계약을 바탕으로 OTO 바이너리 선택, 설치 시작 command, agent 설정 파일 생성 기준을 정리한다.
- 보류 사유: Edge bootstrap 계약은 iop에서 선행 진행되어야 하므로 OTO 쪽 작업은 pending 상태로 둔다.
- 재개 조건: iop에서 Edge bootstrap 사용자 흐름, bootstrap command 요구사항, 보안 모드 기준이 먼저 정리된 뒤 OTO 쪽 계약 문서와 구현 범위를 확정한다.

View file

@ -6,7 +6,7 @@
## 단계
Edge bootstrap 기반 `oto-agent`
Edge 직접 연결 기반 `oto-agent`
## 상태
@ -17,6 +17,7 @@ Edge bootstrap 기반 `oto-agent`
- 상태: 잠금
- 이유: Edge bootstrap 계약과 iop의 Agent Bootstrap과 OTO 등록이 선행되어야 하며, token, Edge identity, binary integrity, 재시도 기준이 아직 구현 가능한 수준으로 확정되지 않았다.
- 해제 조건:
- [ ] OTO-iop proto-socket 통신 기반에서 Edge 직접 outbound 연결의 최소 세션 경계가 문서화됨
- [ ] Edge bootstrap 계약의 사용자 흐름, command 형식, 보안 모드 기준이 문서화됨
- [ ] bootstrap token, Edge identity 검증, binary integrity, 등록 상태 전이가 구체화됨
- [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
@ -34,10 +35,10 @@ Edge bootstrap 기반 `oto-agent`
## 필수 기능
- [ ] bootstrap token의 생성, 전달, 사용, 만료 흐름이 정의되어 있다.
- [ ] Edge identity 검증 방식 후보가 정리되어 있다.
- [ ] 바이너리 무결성 검증 기준이 정의되어 있다.
- [ ] agent 등록 성공/실패 상태와 재시도 기준이 정의되어 있다.
- [ ] [token-flow] bootstrap token의 생성, 전달, 사용, 만료 흐름이 정의되어 있다.
- [ ] [edge-identity] Edge identity 검증 방식 후보가 정리되어 있다.
- [ ] [binary-integrity] 바이너리 무결성 검증 기준이 정의되어 있다.
- [ ] [registration-state] agent 등록 성공/실패 상태와 재시도 기준이 정의되어 있다.
## 완료 기준
@ -54,5 +55,8 @@ Edge bootstrap 기반 `oto-agent`
## 작업 컨텍스트
- Edge bootstrap 기반 `oto-agent` 작업 전에는 Edge bootstrap 계약을 먼저 확인한다.
- 선행 OTO Milestone: OTO-iop proto-socket 통신 기반
- 선행 iop Milestone: `../iop/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md`
- 책임 경계: iop는 Edge outbound enrollment를 받아들이는 registry/protocol/credential 기준을 정리한다.
- 책임 경계: OTO는 설치된 `oto-agent`가 해당 기준을 소비해 설정을 만들고 Edge에 직접 outbound 연결하는 상태 전이를 정리한다.
- 네트워크, 설치, packaging 관련 코드나 문서가 추가될 경우 관련 도메인 rule을 먼저 확인한다.

View file

@ -0,0 +1,65 @@
# OTO-iop proto-socket 통신 기반
## 목표
OTO가 iop Edge에 직접 outbound 연결하는 build/deploy domain agent가 될 수 있도록 proto-socket 기반 최소 통신 기반을 정리한다.
iop의 기존 Edge-Node 연결 흐름과 상위 `proto-socket` Dart 구현을 확인해 OTO에서 먼저 심어야 할 transport, parser, handshake, heartbeat, 검증 경계를 정의한다.
## 단계
Edge 직접 연결 기반 `oto-agent`
## 상태
계획
## 구현 잠금
- 상태: 잠금
- 이유: iop Edge-Node 연결 구조와 proto-socket Dart SDK 호환성을 바탕으로 OTO 쪽 최소 통신 경계를 정리하는 선행 Milestone이며, 아직 구현 가능한 API/파일 구조가 확정되지 않았다.
- 해제 조건:
- [ ] iop의 Edge-Node proto-socket 연결 흐름과 OTO specialized agent가 공유하거나 분리할 메시지 경계가 문서화됨
- [ ] OTO의 Dart SDK 범위와 `proto_socket` Dart 패키지 SDK 요구사항의 호환성 처리 방향이 정리됨
- [ ] 최소 연결 검증 기준이 정의되고 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
- 잠금 중 금지:
- 코드 구현 또는 `agent-task` 구현 계획 생성
- proto 파일, 생성 코드, package 구조, 연결 API를 추측해 확정
- Edge bootstrap command나 credential schema를 이 Milestone에서 선확정
## 범위
- iop의 Edge-Node proto-socket 연결 흐름을 OTO agent 관점에서 정리한다.
- 상위 `proto-socket` Dart 구현을 OTO에서 사용할 때 필요한 SDK, dependency, parser map, heartbeat, request-response 지원 범위를 확인한다.
- OTO agent의 최소 outbound 연결이 bootstrap보다 먼저 갖춰야 할 transport/handshake 산출물을 정의한다.
- generic `iop-node`와 OTO specialized domain agent가 공유할 수 있는 메시지와 분리해야 할 메시지를 후보 수준으로 정리한다.
## 필수 기능
- [ ] [iop-flow-map] iop Edge-Node 연결 흐름의 register, config, run/event, command, heartbeat 책임이 OTO 관점에서 매핑되어 있다.
- [ ] [proto-socket-dart] 상위 `proto-socket` Dart 구현의 사용 가능 범위와 OTO SDK/dependency 호환성 이슈가 정리되어 있다.
- [ ] [handshake-scope] OTO agent 최소 handshake가 기존 `RegisterRequest/RegisterResponse`를 재사용할지 specialized agent 메시지로 분리할지 판단 기준이 정의되어 있다.
- [ ] [session-lifecycle] 연결, heartbeat, disconnect, reconnect, parser map 구성의 최소 세션 생명주기가 문서화되어 있다.
- [ ] [smoke-criteria] OTO에서 실제 구현 전 확인할 최소 통신 smoke 기준이 정의되어 있다.
## 완료 기준
- [ ] Edge bootstrap 계약이 통신 기반 없이 bootstrap UX를 선확정하지 않도록 선행 조건이 명확하다.
- [ ] OTO와 iop 구현자가 같은 transport/handshake 경계를 보고 병렬로 후속 작업을 시작할 수 있다.
- [ ] OTO의 Dart SDK와 `proto_socket` Dart 패키지 호환성 처리 방향이 결정 후보로 남아 있다.
- [ ] 최소 통신 smoke가 코드 구현 전 검증 기준으로 설명되어 있다.
## 범위 제외
- 실제 OTO 통신 모듈을 구현하지 않는다.
- iop Edge 서버 API, agent registry, credential schema를 확정하지 않는다.
- build/deploy run request, artifact, log stream 전체 메시지 프로토콜을 확정하지 않는다.
- Edge bootstrap command 발급 UX를 구현하지 않는다.
## 작업 컨텍스트
- 관련 iop 경로: `../iop/proto/iop/runtime.proto`, `../iop/apps/edge/internal/transport/server.go`, `../iop/apps/node/internal/transport/client.go`, `../iop/apps/node/internal/transport/session.go`
- 관련 proto-socket 경로: `../proto-socket/dart/`, `../proto-socket/README.md`
- 관련 OTO 경로: `pubspec.yaml`, 향후 agent/transport 모듈 후보
- 선행 작업: CLI 자동화 표면 정리 완료
- 후속 작업: Edge bootstrap 계약, `oto-agent` 등록 흐름, agent 메시지 프로토콜
- 확인 필요: OTO SDK를 `proto_socket` Dart 패키지 요구사항에 맞춰 올릴지, `proto_socket` Dart SDK 범위를 낮출지, 별도 compatibility shim을 둘지 결정해야 한다.