# Milestone: Operations Observability

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/control-surface-operations-ux/PHASE.md`

## 목표

operation log, repo revision, workspace lease, runner heartbeat, provider event를 사람이 추적할 수 있게 만든다. UI와 API는 실패 원인, retry 가능 여부, waiting gate를 명확히 보여줘야 한다.

## 상태

[계획]

## 승격 조건

- 없음

## 구현 잠금

- 상태: 해제
- 결정 필요: 없음

## 범위

- operation timeline
- command log stream display
- workspace lease/dirty/error 표시
- runner heartbeat 표시
- provider webhook/reconcile event 표시
- retry/cancel action entrypoint 후보

## 기능

### Epic: [timeline] Operation timeline

작업 진행과 실패 지점을 추적 가능한 timeline으로 보여준다.

- [ ] [op-events] operation event를 시간순 timeline으로 표시한다.
- [ ] [logs] command stdout/stderr chunk를 operation log view로 표시한다.
- [ ] [state-badge] queued/running/succeeded/failed/cancelled state를 일관된 badge로 표현한다.

### Epic: [runtime-status] Runtime status

workspace와 runner의 현재 상태를 운영자가 파악할 수 있게 한다.

- [ ] [lease-view] workspace lease, dirty, error 상태를 표시한다.
- [ ] [runner-view] agent-shell heartbeat와 capability를 표시한다.
- [ ] [provider-view] provider webhook/reconcile event를 표시한다.

## 완료 리뷰

- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
  - [ ] 사용자가 완료 결과를 확인했다
  - [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음

## 범위 제외

- complex analytics dashboard
- alerting integration
- mobile notification
- multi-tenant permission UI

## 작업 컨텍스트

- 관련 경로: `apps/client/`, `services/core/internal/events/`, `packages/contracts/notes/gito-control-plane.md`
- 표준선(선택): 관찰 UI는 Postgres event/outbox와 proto-socket event stream의 read model을 소비한다.
- 선행 작업: Flutter Control Surface Baseline
- 후속 작업: Multi Runner Management
- 확인 필요: 없음

