- MemorySecretStore.failRead/failWrite 를 없앰 → 시험 쪽 test/support/flaky_secret_store.dart
- WebProxy.debugAndroid/debugSetProxy 를 없앰 → WebViewProxyTarget 주입 (Android=ProxyController, 그 밖=없음)
- ExitGuard.forceAndroid 를 없앰 → PlatformServices.platform (PlatformInfo)
- JJ_NLLB_LOW_MEMORY 환경 변수를 없앰 → NllbTranslator(lowMemory:), 처음 값은 PlatformInfo.host
- archive_ops · rsync_launch · file_error 의 기본값을 PlatformInfo.host 로 모음
- 이름 바꿈: WebProxy.shownForTest → shown, debugReset → reset
- 보안: 남은 Tor 웹 뷰가 있는 동안에도 removeImplicitRules (localhost 까지 Tor 로)
- 약속 시험 platform_info_contract_test 3개
확인: analyze 0 · 단위 1470 ×2 · 통합 6/6 ×2 · base10 214장 0px
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
관리자 지시 (10/17): integration_test/secret_store_platform_test 는 Windows 에서 사용자의 앱 데이터 폴더
(%APPDATA%\com.jj\jj_mkvmaker\secrets.dat) 에 시험 열쇠를 쓰고 지웠다 (값은 지웠지만 파일을 다시 쓰고, 그동안 다른 실행과 겹칠 수 있음).
- SecretStore.dpapiAt(dir) (@visibleForTesting): DPAPI 저장소를 정한 폴더의 secrets.dat 로. 앱 동작은 그대로 (platform() 은 앱 데이터 폴더)
- test/secret_store_dpapi_test.dart (새, 보통 flutter test 에서 돎 - DPAPI 는 FFI 라 플러그인 없이 됨):
쓰기 · 읽기 · 바꾸기 · 지우기 · 파일에 평문 없음 · .tmp 안 남음, 130 두 창 번갈아 쓰기, 풀 수 없는 파일은 보관 뒤 새로 시작 (40-5).
끝날 때마다 사용자 secrets.dat 의 바뀐 때 · 크기가 그대로인지 확인
- integration_test 의 같은 시험: Windows 는 임시 폴더 저장소로, Android 는 기기 Keystore 그대로 (시험 열쇠만 쓰고 지움)
시험: secret_store_dpapi 3 · secret_store · secret_issue 15 통과, analyze 문제 없음, 사용자 secrets.dat 생기지 않음 · jj_secret* 흔적 0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 124: 최상 · 마스터 비밀번호 (솔트 PBKDF2-HMAC-SHA256, 안전 저장소에 해시만), 묻는 때 (안전 저장소),
저장된 비밀번호를 쓰는 곳의 문 (WebDAV · OpenSubtitles · 재생 · 환경 설정), 최상으로 초기화 · 잊었을 때 초기화,
틀리면 기다리기, 서버 지우기 전 쓰는 곳 알림, 실시간 동기화 폴더에 WebDAV 고르기
- 127: 서버 고치기 창은 마스터 뒤에 (저장된 비밀번호가 보이지 않게)
- 128: 마스터 창은 하나로 · 취소하면 배경 작업은 묻지 않고 "기다리는 중" 으로 표시
- 129: 묻는 때를 설정 파일이 아니라 안전 저장소에 (값이 없거나 틀리면 쓸 때 묻기)
- 130: Windows secrets.dat 를 쓰기 · 지우기 전에 다시 읽어 다른 창의 값과 합침
- 131: 앱 안 브라우저 쿠키를 쓰지 않게 바꾸면 내보낸 쿠키 파일을 지움
- 132: 최상 비밀번호 [끄기] 가 넓은 화면에서 잘리지 않게
- 53: 쿠키 파일 안내 · 넘길 사이트 고르기 · 쿠키 · 방문 기록 지우기 · 범위 넓힘 알림
- 56: http:// WebDAV 경고 · 인증서 확인 끄기가 다른 재생에 남지 않게
- 116 · 125 · 126: 권한 안내 다시 · "2-1 / 3장" · 바뀐 기본 설정 창을 닫으면 바로 저장
- 시험판 데이터 폴더 (JJ_MKVMAKER_DATA, Windows) · 휴지통 판정을 $I 정보로 · 모니터링 시험 기다림
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 40/54: WebDAV · OpenSubtitles 비밀번호를 안전 저장소 (Android Keystore · Windows DPAPI) 로
- 95~114: rsync 지우기 확인 · 미리 보기 · 좁은 화면 확인 창 · 실시간 동기화 멈춤 알림
- 99: 시작 메뉴 바로 가기 (AUMID) · jjmkvmaker:// · Windows 알림 꺼짐 안내
- 102: 질문을 설정으로 · 시스템 언어 따르기
- 113 · 117~120: 보기 화면 막대 · 계속 보기 · 두 쪽 나눠 보기 · 회전 · 반전 · 좁으면 ⋮ 메뉴
- 115 · 116: 자동 백업 복원 알림 · 권한 안내와 자동 다시 분석
- 118 · 122: 탐색기 좌우 ⇆ / 위아래 ⇅ 버튼 · 경로로 가면 새로 읽어 펼침
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>