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