# Phase: Update Plane과 자체 업데이트 기반

## 상태

[진행중]

## 목표

frontend와 Control Plane만 재배포해도 Edge와 Node가 desired release state에 자동으로 수렴하는 업데이트 기반을 정리한다.
Control Plane은 release manifest, desired version, rollout/audit view를 제공하고, Edge와 Node는 자기 상태와 연결 peer 상태를 로컬 캐시에 보관하며 업데이트 필요 여부와 적용 흐름을 스스로 판단한다.
실제 프로세스 교체는 Edge/Node 앱 프로세스가 직접 수행하지 않고, host-local manager 또는 updater helper가 담당하는 방향을 기준으로 한다.

## Milestone 흐름

완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다.
이 흐름은 해당 Phase 안의 상태 정리이며, Phase를 가로지르는 실행 순서는 아니다.
Milestone은 완료, 검토중, 진행중, 계획, 스케치 또는 보류 상태 그룹으로 정리한다.
Phase를 가로지르는 실제 다음 작업 선택은 [전역 마일스톤 실행 순서](../../priority-queue.md)를 우선한다.
스케치 Milestone은 아직 구현 가능한 계획이 아니므로 사용자 검토와 구체화 후 `[계획]`으로 승격한다.

- [완료] Edge/Node Runtime Reconnect와 Config Refresh
  - 경로: [runtime-reconnect-config-refresh](../../archive/phase/update-plane-self-update-foundation/milestones/runtime-reconnect-config-refresh.md)
  - 요약: Edge 단절 후 Node 10초 간격 10회 재접속과 종료 정책, 운영 중 config refresh/diff/apply/Node 전파의 MVP 경계를 구현 가능한 계획으로 정리한다.

- [스케치] Update Plane 안정 프로토콜
  - 경로: [update-plane-stable-protocol](milestones/update-plane-stable-protocol.md)
  - 요약: 전체 운영 프로토콜이 바뀌어도 업데이트를 지속할 수 있는 hello/status, manifest, command, event, recovery 최소 계약을 스케치한다.

- [스케치] Host-local Manager 기반 자체 업데이트
  - 경로: [host-local-manager-self-update](milestones/host-local-manager-self-update.md)
  - 요약: Edge/Node 앱 프로세스 바깥의 manager/updater가 release staging, 검증, 프로세스 종료/재시작, rollback을 담당하는 cross-OS 실행 모델을 스케치한다.

- [스케치] Edge/Node 롤아웃과 복구 정책
  - 경로: [edge-node-rollout-recovery-policy](milestones/edge-node-rollout-recovery-policy.md)
  - 요약: Edge가 Node rolling update와 자기 업데이트를 조율하고, 실패/재연결/rollback 상태를 Control Plane에 보고하는 운영 정책을 스케치한다.

## Phase 경계

- Control Plane은 Edge/Node의 installed state와 runtime registry의 canonical store가 되지 않고, desired state와 release/audit view를 제공한다.
- Edge는 자신의 상태와 Node 관찰 상태를 캐시하고, Node 업데이트 오케스트레이션의 실행 주체가 된다.
- Node는 자신의 버전, platform, update protocol version, 연결된 Edge의 버전 정보를 캐시하고, 필요한 경우 manager/updater를 통해 자체 업데이트한다.
- host-local manager/updater는 Edge 또는 Node로 등록되지 않으며, adapter 실행, routing, Node registry, Control Plane 운영 프로토콜을 담당하지 않는다.
- 업데이트 파이프라인 프로토콜은 장기 안정 레이어로 유지하되, 일반 운영/실행 프로토콜은 Control Plane 재배포와 Edge/Node 업데이트 수렴을 통해 최신 기준으로 따라가게 한다.
- container/orchestrator 기반 배포를 기본 전제로 삼지 않고, field host의 systemd, launchd, Windows Service 환경에서도 동작 가능한 구조를 우선한다.
