# Complete - m-architecture-refactor-foundation/02_edge_service_split

## 완료 일시

2026-06-06

## 요약

Edge service 책임 분리와 status-backed `health.check` 전환을 첫 리뷰 루프에서 PASS로 완료했다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G05_0.log` | `code_review_cloud_G05_0.log` | PASS | Service public API를 유지한 파일 분리, `HealthStatus()` 기반 health summary, service/edge 테스트와 mock edge-node smoke 통과를 확인했다. |

## 구현/정리 내용

- `apps/edge/internal/service`의 책임을 `service.go`, `status_provider.go`, `run_dispatch.go`, `node_command.go`, `control_command.go`로 분리했다.
- `ExecuteCommand("health.check")`의 fixed sleep/fake success를 제거하고 `ListNodeSnapshots()`와 `GetCapabilities()`로 만든 `HealthStatus()` summary를 응답과 completed event에 사용했다.
- 기존 openai/A2A/opsconsole/controlplane call-site가 같은 public service API로 컴파일되는지 확인하고, health command status summary 테스트를 추가했다.

## 최종 검증

- `go test -count=1 ./apps/edge/internal/service` - PASS; `ok iop/apps/edge/internal/service 0.006s`
- `go test -count=1 ./apps/edge/...` - PASS; edge 하위 모든 Go package 통과
- `./scripts/e2e-smoke.sh` - PASS; mock profile에서 node registration, `/nodes`, `/capabilities`, `/transport`, 메시지 2회, background run, `/sessions`, `/terminate-session` 확인

## Roadmap Completion

- Milestone: `agent-roadmap/phase/automation-runtime-bridge/milestones/architecture-refactor-foundation.md`
- Completed task ids:
  - `edge-service-split`: PASS; evidence=`agent-task/archive/2026/06/m-architecture-refactor-foundation/02_edge_service_split/plan_cloud_G05_0.log`, `agent-task/archive/2026/06/m-architecture-refactor-foundation/02_edge_service_split/code_review_cloud_G05_0.log`; verification=`go test -count=1 ./apps/edge/internal/service`, `go test -count=1 ./apps/edge/...`, `./scripts/e2e-smoke.sh`
- Not completed task ids: 없음

## 잔여 Nit

- 없음

## 후속 작업

- 없음
