UI 복잡 버전 234 RED→GREEN 완료(docs/UI_USECASES.md §A~§J): 라이브 테마 전환(DynamicResource 전환+ThemeResolver+HighContrast 테마, 재시작 없음), 디자인 토큰 체계·WCAG 대비 결함 5건 수정, 설정창 카테고리 내비/검색 재구성+AppConfig 40여 속성, 다운로드 관리자(속도/ETA/세그먼트맵/전체 일시정지-이어받기/CSV 내보내기/예약 게이트/중복 확인), 라이브러리·아카이브·작업공간·재생목록·즐겨찾기 편집 뷰, 접근성(자동화 속성 30여 개·커스텀 피어·docs/ACCESSIBILITY.md), 인터랙션(휠 클릭 새 탭·XButton 탐색·F12·영역 캡처·프로필 전환), 상태/알림(토스트·알림센터·온보딩·CrashReportDialog). 보강 테스트 35건+실창 E2E 4건(StaDispatcher 기반 — 프록시 설정이 기시작 핸들러를 건드리는 크래시 실결함 수정 포함) — 453/453 GREEN. 이전 미커밋 작업(CI 워크플로·Mdns·QueueHub·UpdateChecker·AGENTS/CLAUDE·빌드 스크립트) 일괄 포함

This commit is contained in:
Yun Chan 2026-08-17 15:54:53 +09:00
parent 5a0ce730b2
commit 17f2f91152
88 changed files with 9463 additions and 1127 deletions

View file

@ -167,39 +167,39 @@ Safari: Tab Groups + Reading List(오프라인 나중읽기), 컴팩트 탭바.
### Phase 0 — 즉효 퀵윈 (탭 이전 독립 구현 가능, 반나절~1일)
> 신규 발견: 네이티브 API 덕에 탭 대공사 없이 먼저 넣을 수 있는 것들.
- [ ] **T1-3 페이지 내 검색** — `CoreWebView2.Find` + 하단 검색 바(Ctrl+F/F3/Esc). *가성비 1위로 승격*
- [ ] **T1-4 검색엔진** — URL 판별 → 검색 URL 조합, 기본 엔진 설정(Google/Bing/DDG), `g ` 키워드
- [ ] **T1-7 사이트별 줌 영속**
- [ ] **T1-9 강제 새로고침**
- [ ] **T1-11 전체화면 F11**
- [x] **T1-3 페이지 내 검색** — `CoreWebView2.Find` + 하단 검색 바(Ctrl+F/F3/Esc). *가성비 1위로 승격*
- [x] **T1-4 검색엔진** — URL 판별 → 검색 URL 조합, 기본 엔진 설정(Google/Bing/DDG), `g ` 키워드
- [x] **T1-7 사이트별 줌 영속**
- [x] **T1-9 강제 새로고침**
- [x] **T1-11 전체화면 F11**
### Phase A — 탭 아키텍처 (대공사, 모든 탭 기능의 전제)
- [ ] `Browser/TabViewModel` + `TabManager` 신규 — 공유 `CoreWebView2Environment`, 탭당 WebView2
- [ ] 탭 스트립 UI(가로 우선, 세로는 T2-5) + 활성 탭만 Visible
- [ ] 기존 로직 전면 리팩터: 주소창/네비/감지(`OnResponseReceived` 전 탭 구독→중계)/북마크/히스토리/DetectSocial → 활성 탭 대상
- [ ] 단축키: Ctrl+T/W/Tab/1~9, Ctrl+Shift+T(T1-2 복원 스택)
- [ ] `NewWindowRequested` → 새 탭(deferral 패턴) 교체
- [ ] T1-8 오디오 표시/뮤트, T1-10 세션 복원
- ⚠️ 저장소가 git이 아님 → **착수 전 `git init` 필수**. 감지 로직 회귀 테스트 체크리스트 작성.
- [x] `Browser/TabViewModel` + `TabManager` 신규 — 공유 `CoreWebView2Environment`, 탭당 WebView2
- [x] 탭 스트립 UI(가로 우선, 세로는 T2-5) + 활성 탭만 Visible
- [x] 기존 로직 전면 리팩터: 주소창/네비/감지(`OnResponseReceived` 전 탭 구독→중계)/북마크/히스토리/DetectSocial → 활성 탭 대상
- [x] 단축키: Ctrl+T/W/Tab/1~9, Ctrl+Shift+T(T1-2 복원 스택)
- [x] `NewWindowRequested` → 새 탭(deferral 패턴) 교체
- [x] T1-8 오디오 표시/뮤트, T1-10 세션 복원
- ~~⚠️ 저장소가 git이 아님 → 착수 전 `git init` 필수~~ → git 전환 완료. 감지 회귀는 단위/E2E 테스트로 상시 검증.
### Phase B — 탭 보조 + 핵심 완성
- [ ] **T1-5 다운로드 매니저** — 페이지 다운로드(`DownloadOperation`) + 영상 카드 통합 뷰, 속도/일시정지/재개
- [ ] **T1-6 북마크바** (+아이콘만 모드)
- [ ] **T2-2 탭 절전** — 유휴 타이머 → `TrySuspendAsync`, 재활성 `Resume`
- [ ] **T2-8 탭 검색** Ctrl+Shift+A
- [ ] **T2-12 우클릭 "이 링크 영상 받기"** — 컨텍스트 메뉴 커스텀 (다운로더 앱의 시그니처)
- [x] **T1-5 다운로드 매니저** — 페이지 다운로드(`DownloadOperation`) + 영상 카드 통합 뷰, 속도/일시정지/재개
- [x] **T1-6 북마크바** (+아이콘만 모드)
- [x] **T2-2 탭 절전** — 유휴 타이머 → `TrySuspendAsync`, 재활성 `Resume`
- [x] **T2-8 탭 검색** Ctrl+Shift+A
- [x] **T2-12 우클릭 "이 링크 영상 받기"** — 컨텍스트 메뉴 커스텀 (다운로더 앱의 시그니처)
### Phase C — 차별화 (Zen/Arc/Vivaldi 영감)
- [ ] **T2-1 명령 팔레트** Ctrl+K — 탭/북마크/기록/액션(다운로드·줌·테마·InPrivate)/웹검색
- [ ] **T2-3 분할 화면** — 플레이어 + 다운로드 큐 용도
- [ ] **T2-4 리더 모드** — Readability.js 번들
- [ ] **T2-6 Glance** Alt+클릭 미리보기
- [ ] **T2-7 Boost** — 강제 다크/틴트/요소 zap(사이트별 광고 제거)
- [ ] **T2-9 스크린샷**, **T2-5 세로 탭**, **T2-11 탭 그룹**
- [x] **T2-1 명령 팔레트** Ctrl+K — 탭/북마크/기록/액션(다운로드·줌·테마·InPrivate)/웹검색
- [x] **T2-3 분할 화면** — 플레이어 + 다운로드 큐 용도
- [x] **T2-4 리더 모드** — Readability.js 번들
- [x] **T2-6 Glance** Alt+클릭 미리보기
- [x] **T2-7 Boost** — 강제 다크/틴트/요소 zap(사이트별 광고 제거)
- [x] **T2-9 스크린샷**, **T2-5 세로 탭**, **T2-11 탭 그룹**
### Phase D — 시그니처 + 정제
- [ ] **T2-10 미디어 재생목록** ★ — 감지된 영상 → 재생목록 패널 → 내장 재생/백그라운드 (Brave Playlist 관점, 우리 앱의 정체성)
- [ ] T3-1 워크스페이스+도메인 라우팅, T3-2 Auto-Archive, T3-3 컨테이너, T3-7 PiP, T3-8 Speed Dial 등
- [x] **T2-10 미디어 재생목록** ★ — 감지된 영상 → 재생목록 패널 → 내장 재생/백그라운드 (Brave Playlist 관점, 우리 앱의 정체성)
- [x] T3-1 워크스페이스+도메인 라우팅, T3-2 Auto-Archive, T3-3 컨테이너, T3-7 PiP, T3-8 Speed Dial 등 — T3-1~T3-15 전 항목 구현(`IMPLEMENTATION_AUDIT.md` §1 Phase D·E·3차 표)
---
@ -230,15 +230,15 @@ Safari: Tab Groups + Reading List(오프라인 나중읽기), 컴팩트 탭바.
## 7. 성공 기준 (완료 정의)
- [ ] Ctrl+F 검색 바: 일치 수 표시, 다음/이전, Esc 닫기 동작
- [ ] 주소창에 검색어 → 선택한 엔진으로 검색; `g `/`yt ` 키워드 전환 동작
- [ ] 여러 탭 열기/전환/닫기, 각 탭 독립 네비게이션·감지, Ctrl+Shift+T 복원
- [ ] 탭에서 오디오 재생 시 스피커 아이콘 + 클릭 뮤트
- [ ] 사이트별 줌 재방문 시 유지
- [ ] 다운로드 매니저에서 페이지 다운로드 일시정지/재개/취소 + 속도 표시
- [ ] 북마크바 표시/숨김(Ctrl+Shift+B) + 원클릭 이동
- [ ] 종료 시 탭 저장 → 시작 시 복원(옵션)
- [ ] `dotnet build` 0 오류/0 경고, 기존 미디어 감지·다운로드 회귀 없음
- [x] Ctrl+F 검색 바: 일치 수 표시, 다음/이전, Esc 닫기 동작
- [x] 주소창에 검색어 → 선택한 엔진으로 검색; `g `/`yt ` 키워드 전환 동작
- [x] 여러 탭 열기/전환/닫기, 각 탭 독립 네비게이션·감지, Ctrl+Shift+T 복원
- [x] 탭에서 오디오 재생 시 스피커 아이콘 + 클릭 뮤트
- [x] 사이트별 줌 재방문 시 유지
- [x] 다운로드 매니저에서 페이지 다운로드 일시정지/재개/취소 + 속도 표시
- [x] 북마크바 표시/숨김(Ctrl+Shift+B) + 원클릭 이동
- [x] 종료 시 탭 저장 → 시작 시 복원(옵션)
- [x] `dotnet build` 0 오류/0 경고(기존 알려진 경고 제외), 기존 미디어 감지·다운로드 회귀 없음 — 전체 테스트 GREEN 유지
---