# Milestone: 설치 세션 이력과 오류 리포트 ## 위치 - Roadmap: `agent-roadmap/ROADMAP.md` - Phase: `agent-roadmap/phase/workflow-integration/PHASE.md` ## 목표 최근 설치한 build, device, 결과, 오류 메시지를 로컬에서 다시 확인할 수 있게 한다. 반복 설치와 실패 재현에 필요한 정보를 남기되, secret이나 민감한 logcat 원문을 무분별하게 저장하지 않는다. ## 상태 [계획] ## 승격 조건 - 없음 ## 구현 잠금 - 상태: 잠금 - 결정 필요: 아래 체크리스트 - [ ] 설치 이력을 로컬에만 둘지, 중앙 감사 로그 후보를 열어둘지 결정한다. - [ ] 저장할 device 식별자 수준을 serial 원문, masked serial, model 단위 중 선택한다. - [ ] logcat/error output 저장 범위와 보관 기간을 정한다. ## 범위 - 최근 설치 세션 목록 - install success/failure, Jenkins job/build/artifact, device metadata - 오류 메시지 복사/공유 - 민감 정보 masking과 보관 기간 정책 ## 기능 ### Epic: [history] 로컬 설치 이력 반복 업무에서 최근 설치 맥락을 빠르게 되찾을 수 있게 한다. - [ ] [session-model] install session 모델을 정의한다. - [ ] [local-store] 최근 설치 이력을 로컬 저장소에 저장한다. - [ ] [recent-list] 최근 설치 build와 결과를 앱에서 확인할 수 있다. - [ ] [rerun] 최근 세션의 build/artifact를 다시 설치 흐름으로 불러온다. ### Epic: [report] 오류 리포트 실패 원인을 사용자와 개발자가 빠르게 공유할 수 있게 한다. - [ ] [error-summary] install stderr/stdout의 주요 실패 원인을 요약 표시한다. - [ ] [copy-report] build/device/install result를 포함한 텍스트 리포트를 복사할 수 있다. - [ ] [masking] token, private URL, device serial masking 규칙을 적용한다. - [ ] [retention] 이력 보관 기간과 삭제 버튼을 제공한다. ## 완료 리뷰 - 상태: 없음 - 요청일: 없음 - 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증 충족 후 기록한다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다 - 리뷰 코멘트: 없음 ## 범위 제외 - 중앙 서버 기반 감사 로그 - logcat 원문 장기 저장 - 조직 개인정보/보안 정책을 우회하는 식별자 저장 ## 작업 컨텍스트 - 관련 경로: `lib/src/features/builds/`, `lib/src/features/devices/`, `lib/src/features/console/`, `lib/src/services/adb_service.dart` - 표준선(선택): MVP 후 로컬 이력부터 시작하고 중앙 감사는 보안 Phase 후보로 둔다. - 선행 작업: USB 설치와 device 선택, ADB 콘솔과 logcat - 후속 작업: macOS 배포와 sandbox 검증 - 확인 필요: 이력 저장 범위, 보관 기간, device 식별자 masking 정책