---
ui_doc_type: component
component_id: install-cta
status: 구현됨
source_evidence:
  - type: code
    path: lib/src/features/builds/builds_page.dart
    notes: "_InstallCta와 _DownloadState"
  - type: docs
    path: README.md
    notes: "APK 다운로드 및 adb install handoff scope"
  - type: user
    path: null
    notes: "agent-ui 생성 요청"
---

# Install CTA

Component ID: `install-cta`

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `lib/src/features/builds/builds_page.dart` | `_InstallCta`와 `_DownloadState` |
| docs | `README.md` | APK 다운로드 및 `adb install` handoff scope |
| user | 없음 | agent-ui 생성 요청 |

## Purpose

선택한 APK artifact를 다운로드/stage하고 디바이스 설치 흐름으로 넘긴다.

## Used By

- `builds`: `builds.install-cta`

## Anatomy

- state icon
- title/status label
- artifact/build metadata
- download progress label and linear progress
- cancel/retry/install button

## Variants

- idle: 설치 준비 또는 다운로드 취소됨
- downloading: received/total bytes와 cancel action
- verified: staged APK path와 install action
- failed: error message와 retry action

## States

- default
- loading
- empty: 해당 없음
- error
- disabled

## Rules

- downloader/stager가 있으면 먼저 다운로드를 수행하고, 검증된 staged APK만 install handoff에 넘긴다.
- 다운로드 실패 메시지는 한 줄로 줄이고 retry action을 유지한다.

## Decision History

- 2026-06-25: APK download/install handoff CTA를 component로 기록했다.
