Commit Graph

8 Commits (aea1ec5eba5cf1217830099ce48615c7a8e111e7)

Author SHA1 Message Date
RyuJongJin 428fe99a82 설정 A 분야 1: 파일 탐색기 (ExplorerSettings) - 키 31 · 옮김 표시 3
- lib/app/settings/explorer_settings.dart: 탐색기 설정의 이름 · 처음 값 · 읽기 · 쓰기를 한 곳에
- AppSettings 는 explorer 분야를 갖고 분야 목록을 돌며 합치기만 (toJson · fromJson 에서 탐색기 키를 지움)
- 부르는 곳: s.explorerLayout → s.explorer.layout 꼴 (옛 이름 getter 없음), 저장 키 이름은 그대로
- 고침: fromJson 이 바뀐 기본값 알림 (_migrated) 을 분야를 읽기 전에 계산하던 것 - 분야를 먼저 읽음
- JSON 약속 시험: 알림 목록 (__migrated) · 옛 판 설정 경우를 더함, 기준은 옛 판 (db45f80) 에서 다시 만듦

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 22:08:55 +09:00
RyuJongJin de4ba076b8 탐색기 시험용 정적 이름 5개를 주입으로 (ExplorerDevice)
- lib/app/explorer_device.dart: ExplorerDevice 약속 (저장 장치 목록 · 드라이브 열림 · Android 경로 · 앱 휴지통 · .nomedia) + RealExplorerDevice (이 기기 그대로)
- ExplorerPage 생성자 인자 device (clock 처럼, 처음 값은 RealExplorerDevice)
- 지움: ExplorerPage.probeDrive · debugVolumes · debugAndroidPaths · debugAndroidTrash · debugNomedia
- 시험: test/support/test_explorer_device.dart (정한 것만 바꿈), harness 가 시험마다 새로 만들어 넘김
- 약속 시험: test/explorer_device_contract_test.dart

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:04:38 +09:00
RyuJongJin fad723355f E5e: explorer_test (2,009) 를 6개로 나눔 · 공용 준비 explorer_harness · 시험용 이름 지움 · 약속 시험 4개
- test/support/explorer_harness.dart: 시험 폴더 · 셸 · open · act · settle · calm · doubleTap · markOf · chevronOf
- explorer_panes · archive_trash · select_ops · filter_rsync · keys_drag · hidden_find (모두 600 이하)
- 다른 시험 8개는 explorer_test.dart 대신 harness 를 부름
- lib: ExplorerPage.checkPathForTest · debugOpenTrash 지움 (시험은 checkEnteredPath · 실제 [휴지통] 버튼)
- 약속 시험: test/explorer_more_flows_contract_test.dart (explorer_body · search_flow · tools_flow · rsync_flow)
- 시험 이름 1,196 개 나누기 전후 같음, 전체 단위 1,357 (= 1,353 + 4) 2회 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:21:38 +09:00
RyuJongJin 9a786f3496 WIP 88 SFTP 2/3: 화면 - 환경 설정 SFTP 서버 · 탐색기 탭 · 처음 키 확인 · 고르는 곳 · 라이선스 고지 (미완)
- 환경 설정 > 파일 탐색기 > SFTP (lib/ui/sftp_settings.dart): 추가 · 고치기 · 지우기 (쓰는 곳 알림), 서버 주소 · 포트 · 아이디 ·
  비밀번호 · 개인 키 파일 고르기 (내용만 안전 저장소에, 원래 경로는 저장하지 않음) · 키 암호 · 시작 폴더 · 오래된 ssh-rsa 허용,
  [연결 확인] 에서 처음 보는 키는 지문을 보이고 [믿고 연결], 믿은 키 보기 · [믿은 키 지우기] (마스터 비밀번호 뒤).
- 파일 탐색기 · Rsync 화면: SFTP 서버 탭 (🔑), 탭 길게 누르기 = 고치기, 끝 버튼에 [SFTP 서버 추가] (좁으면 ⋮ 메뉴에).
  처음 연결: 목록 대신 "처음 연결하는 서버입니다 · 지문" 안내와 [지문 확인하고 연결] → 확인 창 [믿고 연결] → 지문을 설정에 저장하고 읽음.
  바뀐 키: 막고 예전 · 지금 지문, [서버 설정 고치기]. 경로 복사는 sftp://아이디@서버:포트/경로 (비밀번호 없음).
- 실시간 동기화 · 모니터링의 폴더 고르기에 SFTP 서버도. 화면 경로 "🔑 서버 › 폴더".
- WebDAV 에만 맞던 글 6개를 "WebDAV · SFTP" 로 (풀기 · ZIP · 분석 · MKV 목록 · Rsync 안내 · 빠른 보기). 탐색기 ⋮ 이름 "경로 입력 · 네트워크 서버".
- 파일 고르기: 확장자 목록이 비면 모든 파일 (확장자가 없는 개인 키 파일 - Windows · Android).
- 라이선스: dartssh2 4.1.0 (MIT) 를 두 고지에 (pointycastle · pinenacl · asn1lib 원문은 패키지 라이선스 화면), 판이 바뀌면 시험이 알림.
- 번역 en · ja · zh-Hans (빠진 번역 0).
- 시험: sftp_explorer_test (시험 서버로 처음 연결 → 지문 → 믿고 연결 → 목록 · 지문 저장), test/support/sftp_server.dart 로 서버 띄우기 공용,
  글이 바뀐 시험 3곳 고침. 전체: 이 4곳 말고 통과, 새로 남은 임시 폴더 0 (move_settled 1번은 powershell 실행 "액세스 거부" - 다시 돌려 통과).
- 내 판단: 끝 버튼 줄에 [SFTP 서버 추가] 아이콘을 하나 더 (WebDAV 와 따로 바로 보이게).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 22:28:35 +09:00
RyuJongJin a20a7bfe79 시험 흔들림: 탐색기 시험의 pumpAndSettle 을 calm (목록 읽기가 끝난 뒤) 으로
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:06:46 +09:00
RyuJongJin df508e3d2d 탐색기 탭 줄이 넘쳐도 경로 입력 · WebDAV (202) · 모르는 크기 · 날짜 "—" (203) · E10 시험 건너뛰기
- 202 (관리자 지시, 사용 막힘): 빈 드라이브가 많은 PC 에서 창 위 줄이 넘쳐 [경로 입력] · WebDAV 를 누를 수 없었다.
  [← → ★] · 저장 장치 탭 (이것만 옆으로, 마우스 휠 · 끌기) · [WebDAV · 경로 입력] (늘 보임) 으로 나눈다.
  비어 있거나 연결 안 된 드라이브는 숨기지 않고 뒤쪽으로. 창이 320 보다 좁으면 끝 버튼은 [⋮] 하나로.
- 203: 잠긴 시스템 파일의 크기 · 바뀐 날 ("-1B · 1970-01-01") 은 "—"
- 시험: 권한 없는 폴더 (E10) 가 읽히는 환경 (Git Bash · MSYS 는 백업 권한을 켬) 에서는 이유를 남기고 건너뜀.
  explorer_parallel_test 37 · 122 는 202 때문에 [경로 입력] 을 못 찾던 것 - 이제 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:39:50 +09:00
RyuJongJin e6556a086e 시험: 흔들림 고침 (dismiss 105 · 165 드라이브)
- dismiss_test 105: 창이 뜨기 전에도 "비교하는 중" 이 없어 조건이 먼저 참이 되었다 → 창 제목이 뜨고 비교가 끝날 때까지 기다린다
- explorer_drives_test 165: 걸린 시간 (5초, 전체 시험 중 바쁘면 넘김) 대신 응답 없는 드라이브가 끝내 대답하지 않은 채로 목록이 떴는지 본다

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 18:49:04 +09:00
RyuJongJin 7d76af382d 165 탐색기 첫 열기 멈춤: 드라이브 목록은 GetLogicalDrives (열어 보지 않음) · 드라이브마다 비동기 확인 · 연결 안 됨 ⟳
- 예전: 드라이브 26개를 isDirectorySync 로 열어 봄 → 끊긴 · 느린 NAS 드라이브에서 화면이 멈춤 (이 PC 11,181ms → 2ms)
- 끊긴 드라이브도 숨기지 않고 탭에 "X: · 연결 안 됨 ⟳" - 누르면 다시 연결 (다시 확인), 안 되면 이유
- 네트워크 드라이브는 GetDriveTypeW 로 알아 네트워크 아이콘
- 지난 폴더는 비동기로 확인 (2초 넘으면 열어 보고, 못 읽으면 그 창에 이유)
- 시험: 응답 없는 드라이브가 있어도 첫 화면이 바로 뜬다 · 연결 안 됨 · 다시 연결

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:41:05 +09:00