---
ui_doc_type: component
component_id: install-banner
status: 구현됨
source_evidence:
  - type: code
    path: lib/src/features/devices/devices_page.dart
    notes: "_PendingInstallBanner와 _InstallResultBanner"
  - type: docs
    path: README.md
    notes: "APK 설치와 결과 확인 scope"
  - type: user
    path: null
    notes: "agent-ui 생성 요청"
---

# Install Banner

Component ID: `install-banner`

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `lib/src/features/devices/devices_page.dart` | `_PendingInstallBanner`와 `_InstallResultBanner` |
| docs | `README.md` | APK 설치와 결과 확인 scope |
| user | 없음 | agent-ui 생성 요청 |

## Purpose

디바이스 화면 상단에서 pending install과 현재 설치 결과를 즉시 확인하고 필요한 후속 action을 제공한다.

## Used By

- `devices`: `devices.pending-install`
- `devices`: `devices.install-result`

## Anatomy

- state icon
- artifact filename
- build/job/size/path metadata
- cancel action
- success/error title and label
- masked output summary
- copy report action
- clear action

## Variants

- pending-install: 설치 대기 APK 표시
- install-result-success: 성공 결과 표시
- install-result-failure: 실패 결과와 exit code/output 표시

## States

- default
- loading: install 진행 중 cancel disabled
- empty: banner 없음
- error
- disabled

## Rules

- pending install path와 output은 길어질 수 있으므로 ellipsis 처리한다.
- 복사 리포트는 masked report만 사용한다.

## Decision History

- 2026-06-25: pending install/result banner를 component로 기록했다.
