# SDD User Review Log

## 상태

범위 이관 완료

## 검토 대상

- SDD: [SDD.md](SDD.md)
- Milestone: [공통 Agent Task Runtime과 Desktop Agent](../../../phase/automation-runtime-bridge/milestones/shared-agent-task-runtime-desktop-agent.md)

## 사용자 결정 항목

### [D01] macOS Desktop background lifecycle

- 결정 필요: Flutter 창 닫기, 명시 Quit, macOS 로그인 시 시작이 background AgentTaskManager와 실행 중 provider process에 미치는 동작을 결정한다.
- 추천안:
  - 창 닫기는 UI만 숨기고 Desktop Agent와 실행 중 작업을 계속 유지한다.
  - project별 Stop은 해당 project의 현재 process/session과 후속 자동 호출만 중단하며 다른 project는 유지한다.
  - 명시 Quit은 새 dispatch를 막고 실행 중 process/session을 종료한 뒤 Desktop runtime을 완전히 끝낸다.
  - `auto_run`은 앱이 실행된 뒤 기본 on으로 유지하고, `launch_at_login`은 별도 app-owned 설정으로 제공하되 기본 off로 둔다.
- 대안: 창 닫기와 동시에 전체 runtime을 종료하거나 `launch_at_login`을 기본 on으로 둘 수 있다. 이 경우 진행 중 작업의 종료·재개 UX와 설치 시 macOS login item 등록 동작을 함께 변경해야 한다.
- 영향: Desktop process ownership, Flutter lifecycle, project stop과 app quit의 차이, crash/restart recovery, macOS packaging smoke에 영향을 준다. 공통 runtime API, provider 지원 범위, 설정 소유권, quota·오류 정책은 이 결정과 무관하게 Milestone/SDD 표준선을 따른다.
- 적용 위치:
  - SDD: `State Machine`, `Interface Contract`, `Acceptance Scenarios S11/S18`, `작업 컨텍스트`
  - Milestone: `구현 잠금`, `flutter-shell`, `desktop-host`

## 처리 항목

- [x] D01은 현재 IOP Agent CLI 범위의 결정 항목에서 제거했다.
- [x] 결합된 Desktop SDD를 `[대체됨]`으로 전환하고 현재 사용자 리뷰 gate를 종료했다.

## 답변 기록

- 2026-07-27: 사용자는 현재 Milestone을 `iop-agent` CLI까지만 구현하고 Flutter 설정 UI와 Unity Character를 후속 Milestone으로 분리하기로 결정했다.
- D01의 lifecycle 선택 자체는 확정하지 않았으며 후속 Flutter Desktop Milestone을 작성할 때 다시 검토한다.

## 처리 결과

- 이 기록은 D01 추천안 승인 기록이 아니라 현재 범위에서의 이관 근거다.
- 현재 IOP Agent CLI Milestone에는 사용자 결정 항목이 남아 있지 않다.
