update roadmap and add edge-local-dev-config-runtime milestone

This commit is contained in:
toki 2026-05-27 21:11:05 +09:00
parent b54f3945d4
commit 3a5a089426
5 changed files with 88 additions and 7 deletions

View file

@ -25,9 +25,9 @@ RAG, context 구성/압축, web search, MCP 정책, tool policy, output validati
- 경로: `agent-roadmap/archive/phase/edge-node-execution-foundation/PHASE.md`
- 요약: Edge-Node 소켓 실행 경로, Node adapter execution, CLI session, 최소 외부 입력 표면을 안정화한 단계다.
- [진행중] Ollama 서빙 안정화 기반
- 경로: `agent-roadmap/phase/serving-routing-optimization/PHASE.md`
- 요약: Edge OpenAI-compatible API에서 Node의 Ollama adapter를 호출하는 E2E 경로를 실제 Ollama endpoint와 split-host 환경에서 안정화하는 단계다. 추가 provider, 표준화, 후속 최적화 계층은 포함하지 않는다.
- [완료] Ollama 서빙 안정화 기반
- 경로: `agent-roadmap/archive/phase/serving-routing-optimization/PHASE.md`
- 요약: Edge OpenAI-compatible API에서 Node의 Ollama adapter를 호출하는 E2E 경로를 실제 Ollama endpoint와 split-host 환경에서 안정화했다. 추가 provider, 표준화, 후속 최적화 계층은 후속 Phase로 넘긴다.
- [계획] 추론 서버 provider 확장
- 경로: `agent-roadmap/phase/inference-provider-extension/PHASE.md`

View file

@ -2,12 +2,14 @@
## 활성 Phase
- [진행중] Ollama 서빙 안정화 기반
- 경로: `agent-roadmap/phase/serving-routing-optimization/PHASE.md`
- [계획] Control Plane과 Client 운영
- 경로: `agent-roadmap/phase/control-plane-portal-ops/PHASE.md`
## 활성 Milestone
- 없음
- [계획] Edge-local Dev Config와 바이너리 중심 실행 루프
- Phase: `agent-roadmap/phase/control-plane-portal-ops/PHASE.md`
- 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/edge-local-dev-config-runtime.md`
## 선택 규칙

View file

@ -17,6 +17,10 @@
- 경로: `agent-roadmap/archive/phase/control-plane-portal-ops/milestones/flutter-first-portal-migration.md`
- 요약: Next.js `apps/web` scaffold를 제거하고 `apps/portal` Flutter 앱, Flutter Web compose 배포 흐름, Portal-Control Plane proto-socket WS hello 기반을 세웠다.
- [계획] Edge-local Dev Config와 바이너리 중심 실행 루프
- 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/edge-local-dev-config-runtime.md`
- 요약: Control Plane이 없는 동안 `edge.yaml`을 테스트용 source of truth로 삼고, 로컬/개발 서버 config, bootstrap, setup, smoke test를 `iop-edge` command 중심으로 모은다.
- [계획] Client Integration Clone Adoption
- 경로: `agent-roadmap/phase/control-plane-portal-ops/milestones/client-integration-clone-adoption.md`
- 요약: NomadCode client 표준을 IOP client에 복제하기 위한 모듈명, bootstrap, proto-socket, Mattermost push host integration 기준을 정리한다.

View file

@ -0,0 +1,75 @@
# Milestone: Edge-local Dev Config와 바이너리 중심 실행 루프
## 위치
- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/control-plane-portal-ops/PHASE.md`
## 목표
Control Plane이 아직 없는 동안 `edge.yaml`을 개발/테스트용 Control Plane source of truth로 사용한다.
로컬/개발 서버 배포와 smoke test는 helper script나 모델용 skill로 흩뜨리지 않고 `iop-edge` command 표면에 모으며, Node 사용자는 `node.yaml`을 만들거나 편집하지 않고 Edge가 제공하는 bootstrap만 실행한다.
Edge/Node 바이너리는 repo checkout 위치에 묶이지 않고, 바이너리와 같은 폴더의 구조화된 config와 artifact만으로 실행 가능해야 한다.
## 상태
[계획]
## 승격 조건
- 없음
## 구현 잠금
- 상태: 해제
- 결정 필요: 없음
## 범위
- Control Plane 부재 시 사용할 `edge.yaml` 구조를 Edge-local dev/test source of truth로 정리한다.
- `iop-edge`가 바이너리 기준 경로의 `edge.yaml`을 기본 config 후보로 찾고, repo checkout 없이 실행 가능하게 한다.
- Node별 id/alias/token/adapter/runtime 설정은 Edge config의 `nodes[]`에서 관리한다.
- Node host 사용자는 Edge가 발급한 bootstrap 명령만 실행하고, `node.yaml` 생성/편집/확인이나 `iop-node serve --config ...` 직접 실행을 기본 경로로 보지 않는다.
- 로컬/개발 서버 셋업, 실행, config 확인, Node bootstrap 발급, 기본 smoke test를 `iop-edge` command 중심으로 수렴시킨다.
- 기존 `iop-node` 바이너리는 실행자로 유지하되, 사용자-facing 제어와 배포 루프는 `iop-edge`가 안내하고 조립한다.
## 기능
### Epic: [edge-dev-loop] Edge-local dev loop
Control Plane이 붙기 전까지 Edge 바이너리와 `edge.yaml`만으로 개발 서버 배포와 Edge-Node smoke를 반복 가능하게 만든다.
- [ ] [config-discovery] `iop-edge``--config`가 없을 때 repo 상대 `configs/edge.yaml`에 의존하지 않고, 바이너리와 같은 폴더의 `edge.yaml` 같은 배포용 기본 config 후보를 우선 사용할 수 있다. 검증: 임시 폴더에 `iop-edge``edge.yaml`만 둔 상태에서 `iop-edge config check``iop-edge serve`가 동작한다.
- [ ] [edge-source] `edge.yaml`은 Control Plane 없는 개발 단계의 source of truth로서 `nodes[]`에 Node id, alias, token, adapter, runtime 설정을 담는다. 검증: `iop-edge config check``nodes[]` token/id/alias 충돌과 adapter/runtime 설정 오류를 잡는다.
- [ ] [edge-commands] Node 등록 관리, bootstrap command 발급, local/dev setup, 실행 전 config 확인, smoke test 진입점은 공식 사용자 경로에서 `iop-edge` command로 제공된다. 검증: 문서와 help output에서 `bin/*`, 별도 dev deploy 바이너리, 모델용 skill이 공식 경로로 등장하지 않는다.
- [ ] [node-hidden-config] Node 사용자 UX는 Edge가 제시한 bootstrap 한 줄로 끝나며 `node.yaml` 생성, 편집, 확인 또는 `iop-node serve --config ...` 직접 실행을 요구하지 않는다. 검증: 사용자용 dev/field 가이드에 node config 파일 조작 단계가 없다.
- [ ] [bundle-run] Edge/Node dev bundle은 repo checkout 위치와 무관하게 바이너리 옆 config/artifact만으로 실행 가능하다. 검증: clean temp dir 또는 개발 서버 배포 디렉터리에서 Edge 실행, Node bootstrap, Node registration, `/v1/models` smoke가 통과한다.
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증이 아직 충족되지 않았다.
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
## 범위 제외
- Control Plane server의 실제 Edge config sync/enrollment 구현
- Flutter client 운영 화면 구현
- 별도 `bin/dev-deploy`, 별도 dev deploy 바이너리, 모델용 agent skill을 공식 사용자 경로로 만드는 작업
- Node 사용자에게 `node.yaml` 작성/편집/확인 또는 `iop-node serve --config ...` 직접 실행을 요구하는 UX
- production release, signing, long-term credential rotation, mTLS 세부 구현
## 작업 컨텍스트
- 관련 경로: `apps/edge/cmd/edge`, `apps/edge/internal/bootstrap`, `apps/edge/internal/node`, `apps/edge/internal/transport`, `apps/node/cmd/node`, `apps/node/internal/bootstrap`, `packages/config`, `packages/hostsetup`, `configs/edge.yaml`, `docs/deploy-dev.md`, `docs/field-bootstrap-work-guide.md`, `README.md`, `agent-ops/rules/project/rules.md`
- 표준선(선택): README의 Edge 책임 중 `Edge-managed Node bootstrap/configuration``Edge는 자신의 로컬 런타임 상태를 소유한다`는 원칙을 따른다.
- 표준선(선택): Control Plane 부재 개발 단계에서는 `edge.yaml`이 테스트용 Control Plane 역할을 하며, `nodes[]`가 Node별 실행 설정의 원본이다.
- 표준선(선택): 공식 사용자 UX는 `iop-edge``iop-node` command 표면에 모으되, Node 사용자는 Edge bootstrap만 실행하고 Node config 파일을 다루지 않는다.
- 표준선(선택): helper script가 필요해도 내부 개발 보조로만 두고 공식 로컬/dev 배포 경로로 문서화하지 않는다.
- 선행 작업: Field Bootstrap UX와 테스트 포트 정비
- 후속 작업: Control Plane과 Client, Agent Bootstrap과 OTO 등록, Multi-Edge 운영
- 확인 필요: 없음