appsok/agent-ui/definition/views/console/index.md

94 lines
3.2 KiB
Markdown

---
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로 기록했다.