- Update roadmap milestones and phase docs across multiple phases - Update plan, code-review, create-roadmap, update-roadmap, finalize-task-routing skills - Update dev-corp-runtime-deploy, dev-runtime-deploy, orchestrate-agent-task-loop skills - Refactor agent-task-loop dispatch script - Add streamgate Go package (commit_boundary, evidence_tail, filter_registry, stream_release) - Add test inventory files (dev, dev-corp, unified) - Update test smoke tests and rules for dev/dev-corp - Update docs/edge-local-dev-guide and e2e scripts - Update inventory-query Go package - Remove deprecated templates and inventory.yaml files - Add orchestrate-agent-task-loop tests
8.5 KiB
8.5 KiB
Milestone: Personal Local Edge 패키징과 배포 모드 프로파일
위치
- Roadmap: ROADMAP.md
- Phase: PHASE.md
목표
로컬용과 서버용 코어를 분기하지 않고, 같은 Edge runtime을 personal/local, server/team, fleet 배포 모드로 운용하는 방향을 스케치한다. 개인 로컬 사용자는 Node 직접 세팅이 아니라 provider를 꽂으면 localhost OpenAI-compatible endpoint가 생기는 UX를 기준으로 두고, 서버/팀 배포는 Docker, Control Plane, remote Node, fleet 운영 기능을 같은 코어의 확장 모드로 둔다. 이 Milestone은 즉시 구현이 아니라 후속 패키징, 설치, 업데이트, 기능 gate 구현을 위한 제품/운영 경계 정리를 목적으로 한다.
상태
[스케치]
승격 조건
- personal/local, server/team, fleet 배포 모드의 이름과 책임 범위를 결정한다.
- 같은 코어를 유지하면서 사용자 관리, Control Plane enrollment, remote Node, audit/fleet 기능을 capability gate 또는 config profile로 끄고 켜는 기준을 결정한다.
- 개인 로컬 모드에서 Node를 embedded backend, local child process, 또는 숨겨진 loopback Node 중 어떤 방식으로 시작할지 결정한다.
- macOS, Windows, Linux native package와 Docker/server package의 기본 배포 경로와 지원 우선순위를 결정한다.
- 로컬 모드의 보안 기준을 localhost bind, local API token, OS keychain 또는 env secret 중 어디까지 요구할지 결정한다.
- personal mode에서 provider catalog, route policy, usage ledger, local secrets가 어디에 저장되고 Control Plane과 어떻게 분리되는지 정리한다.
- server/team mode로 확장할 때 기존 personal Edge 상태를 어떻게 이전하거나 enrollment할지 결정한다.
- 후속 구현 Milestone과 SDD 필요 범위를 나눈다.
구현 잠금
- 상태: 잠금
- SDD: 불필요
- SDD 문서: 없음
- SDD 사유: 현재 Milestone은 personal/server 배포 토폴로지와 패키징 방향성 스케치이며, installer/config/update/security 계약 구현으로 승격할 때 SDD 필요 여부를 재판정한다.
- 잠금 해제 조건: 아래 체크리스트
- 승격 조건의 미정 항목이 사용자 검토로 해소되어 있다.
- 구현 가능한 목표, 범위, 기능 Task, 후속 구현 Milestone 후보가 분리되어 있다.
- 결정 필요: 아래 체크리스트
- 초기 제품 표면을
iop-edge단일 바이너리로 유지할지, 별도iop-agent또는 tray/app wrapper를 둘지 결정한다. - personal/local 모드의 기본 backend를 embedded, local child Node, remote Node disabled 중 어떤 조합으로 시작할지 결정한다.
- personal/local 모드에서 multi-user 관리, 조직 RBAC, fleet audit를 완전히 끌지, minimal local identity/audit만 남길지 결정한다.
- macOS/Windows 개인 배포에서 Docker를 보조 경로로만 둘지, 특정 provider runtime에는 Docker 옵션을 허용할지 결정한다.
- provider credential 저장을 OS keychain, local encrypted file, env reference 중 어떤 기본값으로 둘지 결정한다.
- personal Edge가 Control Plane에 optional enrollment될 때 로컬 상태와 provider key를 어디까지 공유하거나 공유하지 않을지 결정한다.
- 초기 제품 표면을
범위
- 동일 코어 기반 personal/local, server/team, fleet 배포 모드 후보
- 배포 모드별 feature gate: Control Plane, 사용자 관리, remote Node, fleet audit, provider pool, OpenAI-compatible API
- 개인 로컬 Edge UX: provider plug-in, localhost endpoint, local route policy, local secrets, Node 세부 노출 축소
- 서버/팀 Edge UX: Docker 또는 Linux service 배포, Control Plane enrollment, remote Node registry, fleet 운영 기능
- macOS, Windows, Linux native package와 Docker image/package의 역할 구분
- personal mode에서 server/team mode로 확장하는 enrollment 또는 migration 후보
기능
Epic: [deploy-mode] Unified Deployment Modes
코어 분기 없이 배포 모드와 capability gate로 개인 로컬 제품과 서버/팀 운영 제품을 함께 수용하는 방향을 정리한다.
- [mode-taxonomy] personal/local, server/team, fleet 모드의 책임과 기본 feature set 후보가 정리되어 있다.
- [core-boundary] provider catalog, routing policy, adapter + target 실행 계약, usage ledger, OpenAI-compatible surface를 공통 코어로 유지하고 로컬/서버용 fork를 만들지 않는 경계가 정리되어 있다.
- [feature-gates] 사용자 관리, Control Plane enrollment, remote Node, fleet audit, provider pool, OpenAI-compatible API를 capability gate 또는 config profile로 끄고 켜는 기준이 정리되어 있다.
- [package-targets] macOS/Windows native package, Linux service, Docker/server package의 기본 배포 경로와 지원 우선순위가 정리되어 있다.
Epic: [personal-deploy] Personal Deployment Profile
개인 로컬 사용자의 provider 중심 UX, Node topology, 최소 보안 경계를 묶는다.
- [personal-ux] 개인 로컬 사용자가 Node를 직접 의식하지 않고 provider만 연결해 localhost endpoint를 쓰는 UX 기준이 정리되어 있다.
- [node-topology] personal mode에서 embedded backend, local child Node, loopback Node, remote Node disabled의 장단점과 초기 선택 후보가 정리되어 있다.
- [local-security] localhost bind, local API token, credential storage, log/usage ledger 보존 범위 같은 personal mode 최소 보안 기준이 정리되어 있다.
Epic: [server-deploy] Server Deployment and Evolution
server/team mode와 personal Edge의 enrollment 및 후속 구현 경계를 묶는다.
- [server-mode] server/team 배포에서 Docker, Control Plane, remote Node registry, multi-user/audit/fleet 기능을 켜는 기준이 정리되어 있다.
- [migration] personal Edge를 server/team 모드로 enrollment하거나 상태를 이전할 때 공유/비공유할 설정과 secret 경계가 정리되어 있다.
- [followups] installer, update plane, config schema, local security, UI/tray, provider setup wizard 같은 후속 구현 Milestone 후보가 분리되어 있다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 스케치 Milestone이며 기능 Task가 아직 충족되지 않았다.
- 검토 항목:
- 사용자가 동일 코어, 배포 모드, personal local UX 방향을 검토했다.
- 승격 조건과 결정 필요 항목이 후속 구현 Milestone으로 분리되었다.
- archive 이동을 승인했다.
- agent-ui 상태 반영: 해당 없음
- 리뷰 코멘트: 없음
범위 제외
- 실제 macOS/Windows installer, tray/app, Docker image 구현
- Edge/Node update runner, host-local manager, rollback 상태 머신 구현
- direct/Plan/Milestone workflow 라우팅 모듈 또는 provider adapter 구현
- 사용자 관리, 조직 RBAC, billing/chargeback, 장기 audit schema 구현
- provider runtime 다운로드, 모델 획득, local model marketplace 구현
- 개인 로컬 모드의 UI onboarding 구현
작업 컨텍스트
- 관련 경로:
apps/edge/**,apps/node/**,packages/go/config/**,packages/go/hostsetup/**,configs/edge.yaml, edge-local-dev-guide.md - 표준선(선택): 로컬용/서버용 코어를 나누지 않고 deployment mode, capability gate, config profile로 기능 표면을 조정한다.
- 표준선(선택): personal/local mode의 사용자 경험은 Node bootstrap이 아니라 provider plug-in과 localhost OpenAI-compatible endpoint를 기본으로 둔다.
- 표준선(선택): 개인 배포의 기본은 macOS/Windows/Linux native package이며, Docker는 서버/팀 배포와 개발/격리 실행의 우선 경로로 둔다.
- 표준선(선택): local mode에서도 보안을 제거하지 않고 localhost bind, local API token, credential storage, 최소 usage ledger 기준을 둔다.
- 선행 작업: Update Plane 안정 프로토콜, Host-local Manager 기반 자체 업데이트, 에이전트 작업 루프 오케스트레이션 MVP
- 후속 작업: personal Edge installer 구현, deployment mode config schema, local provider setup wizard, Control Plane optional enrollment
- 확인 필요:
구현 잠금 > 결정 필요항목