---
ui_doc_type: view
view_id: console
status: 구현됨
frame: null
source_evidence:
  - type: code
    path: lib/src/features/console/console_page.dart
    notes: "ConsolePage, logcat filter controls, _LogcatLevelFilter, log viewer"
  - type: docs
    path: README.md
    notes: "adb logcat 콘솔 뷰어 scope"
  - type: user
    path: null
    notes: "agent-ui 생성 요청"
regions:
  - console.device-context
  - console.filter-controls
  - console.stream-actions
  - console.log-output
---

# Console

View ID: `console`

Frame:
- 없음

Status: `구현됨`

## Source Evidence

| Type | Path | Notes |
|------|------|-------|
| code | `lib/src/features/console/console_page.dart` | `ConsolePage`, logcat filter controls, `_LogcatLevelFilter`, log viewer |
| docs | `README.md` | `adb logcat` 콘솔 뷰어 scope |
| user | 없음 | agent-ui 생성 요청 |

## Purpose

선택된 Android device의 logcat stream을 보고, text/level filter와 pause/clear/copy action으로 설치 후 문제를 빠르게 확인한다.

## Primary Users

- 설치 후 앱 실행 로그를 확인하는 개발자 또는 QA 담당자

## Primary Tasks

- device 선택 여부를 확인한다.
- 패키지, 태그, 텍스트 기준으로 log line을 필터링한다.
- ALL/DEBUG/INFO/WARN/ERROR level을 선택한다.
- log stream을 일시정지/재개, 지우기, 복사한다.

## Information Priority

1. 현재 선택 device 또는 device 미선택 상태
2. filter/level/action controls
3. dark log output region과 error/loading state

## Regions

| Region ID | Purpose | Component | Priority | Notes |
|-----------|---------|-----------|----------|-------|
| `console.device-context` | 현재 device displayName/serial 또는 미선택 상태 표시 | 없음 | medium | `console-selected-device-label`, `console-no-device-label` |
| `console.filter-controls` | text filter와 level segmented control | 없음 | high | filter TextField, `_LogcatLevelFilter` |
| `console.stream-actions` | pause/resume, clear, copy visible logs | 없음 | high | icon button group |
| `console.log-output` | level-colored log line list | `logcat-viewer` | high | dark `DecoratedBox` 안의 `ListView.builder` |

## Actions

| Action ID | Trigger | Result | Guard |
|-----------|---------|--------|-------|
| `console.filter-text` | filter TextField 변경 | visible log lines를 text 기준으로 필터링 | 없음 |
| `console.clear-filter` | suffix close icon | filter text 초기화 | 없음 |
| `console.filter-level` | level segmented control 선택 | selected level 이상/해당 log 표시 | 없음 |
| `console.pause-toggle` | pause/play icon | stream 반영을 일시정지 또는 재개 | 없음 |
| `console.clear-logs` | delete icon | 현재 log lines 제거 | 없음 |
| `console.copy-visible-logs` | copy icon | visible log lines를 clipboard로 복사 | live logs 있음 |

## States

- loading: logcat session 시작 중 indicator를 표시한다.
- empty: device가 없거나 log line이 없으면 빈 log viewer 상태가 된다.
- error: logcat starter error를 log output 중앙에 표시한다.
- permission-denied: device 접근 문제는 error state로 표시한다.

## Open Questions

- 없음

## Decision History

- 2026-06-25: logcat 제어와 출력 영역을 `console` view로 기록했다.
