# Milestone: ADB 콘솔과 logcat

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/usable-mvp/PHASE.md`

## 목표

설치 직후 앱 동작을 확인할 수 있도록 logcat stream을 앱 안에서 보여준다. MVP에서는 완전한 interactive shell보다 logcat viewer, 필터, pause/clear, 저장 후보를 우선한다.

## 상태

[완료]

## 승격 조건

- 없음

## 구현 잠금

- 상태: 해제
- 결정 필요: 없음

## 범위

- 선택 device 기준 `adb logcat` stream
- package/tag/level 필터 UI
- pause, clear, auto-scroll 제어
- 로그 저장 또는 복사 후보

## 기능

### Epic: [logcat] logcat viewer

설치 후 바로 디버깅할 수 있는 기본 로그 화면을 제공한다.

- [x] [stream] 선택 device의 `adb logcat` stream을 시작하고 화면에 append한다.
- [x] [lifecycle] 화면 이탈 또는 device 변경 시 logcat process를 정리한다. 검증: stream subscription/process cleanup unit 또는 integration test 후보를 마련한다.
- [x] [level-color] info/debug/warn/error를 구분해 읽기 쉽게 표시한다.
- [x] [auto-scroll] 새 로그가 들어올 때 자동 스크롤하되 pause 상태에서는 사용자의 위치를 유지한다.

### Epic: [filter] 필터와 작업 도구

반복 디버깅 중 필요한 로그만 빠르게 볼 수 있게 한다.

- [x] [query-filter] package/tag/text query 필터를 제공한다.
- [x] [level-filter] ALL/DEBUG/ERROR 같은 level filter를 제공한다.
- [x] [clear-pause] clear와 pause/resume 버튼을 제공한다.
- [x] [export] 현재 로그를 파일 저장 또는 clipboard 복사할 수 있는 방향을 정리한다.

## 완료 리뷰

- 상태: 승인됨
- 요청일: 2026-06-14
- 완료 근거: logcat stream, lifecycle cleanup, level color, auto-scroll, query/level/clear-pause, export Task가 모두 완료 근거와 함께 체크되었다.
- 완료 근거: `04+03_export_tools` PASS complete log에서 `export` Roadmap Completion과 remote Mac runner `flutter analyze`, `flutter test`, `flutter test test/console_page_test.dart` PASS가 확인되었다.
- 완료 근거: 완료 전 코드 레벨 검토에서 brief-format live log level filter와 pending session sample-mode 전환 이슈를 보강했고, remote Mac runner 검증이 통과했다.
- 리뷰 필요:
  - [x] 사용자가 완료 결과를 확인했다
  - [x] archive 이동을 승인했다
- 리뷰 코멘트: 사용자 요청에 따라 코드 레벨 검토 후 남은 큰 이슈가 없어 완료 및 archive로 전환한다.

## 범위 제외

- 완전한 interactive `adb shell` terminal
- logcat 중앙 업로드
- crash 분석 자동화

## 작업 컨텍스트

- 관련 경로: `lib/src/features/console/`, `lib/src/services/adb_service.dart`
- 표준선(선택): MVP에서는 logcat viewer를 우선하고 interactive shell은 후속 후보로 둔다.
- 선행 작업: USB 설치와 device 선택
- 후속 작업: 설치 세션 이력과 오류 리포트
- 작업 현황:
  - `01_logcat_process`: PASS 완료. archive: `agent-task/archive/2026/06/m-logcat-console/01_logcat_process/complete.log`. `Roadmap Completion`이 없어 기능 Task 체크는 no-op.
  - `02+01_console_stream`: PASS 완료. archive: `agent-task/archive/2026/06/m-logcat-console/02+01_console_stream/complete.log`. Roadmap Completion: `stream`, `lifecycle`.
  - `03+02_auto_scroll`: PASS 완료. archive: `agent-task/archive/2026/06/m-logcat-console/03+02_auto_scroll/complete.log`. Roadmap Completion: `auto-scroll`.
  - `filter-small`: 직접 완료. query/level/clear-pause 연결 및 widget test 추가. Evidence: remote runner `flutter analyze`, `flutter test`.
  - `04+03_export_tools`: PASS 완료. archive: `agent-task/archive/2026/06/m-logcat-console/04+03_export_tools/complete.log`. Roadmap Completion: `export`.
  - 완료 전 코드 리뷰: brief-format live log level filter와 pending session sample-mode 전환을 보강했다. Evidence: remote runner `dart format`, `flutter analyze`, `flutter test test/console_page_test.dart`, `flutter test`, `adb devices -l`, `flutter devices`.
- 확인 필요: 없음
