Commit Graph

7 Commits (06a6b1e8aaee96feb5e40b62f0abe86c3ea2ef69)

Author SHA1 Message Date
RyuJongJin 9324e4100f WIP X-plore 비교 5-1 ⑦ 밝은 테마 바탕: 색이 테마를 따름 · 설정 "화면 밝기" (시험) (검토 대기)
관리자 지시 10/21 (⑦ (가) 바탕): 처음 값은 어둡게 (예전 색 그대로), 설정 "화면 밝기: 어두운 화면 / 밝은 화면 / 기기 따라" 에 "시험" 표시.
- JjColors 를 두 벌 (JjPalette.dark = 예전 값 그대로 · light) 에서 고르는 값으로. 그래서 JjColors 를 쓰던 const 는 뺐다 (기계적으로, 62개 파일 294곳)
- 밝기를 바꾸면 테마와 함께 화면 조각 전체를 다시 그림 (상태는 그대로) - JjColors 를 직접 읽는 곳도 바로 새 색
- 기기 따라: 기기 밝기가 바뀌면 따라감. 모르는 값 · 없는 값은 어둡게
- 밝은 색은 바탕 · 칸 위 글 · 흐린 글 · 강조 · 경고 · 성공 대비 4.5:1 이상 (시험으로 확인)
- 화면별 맞추기 ((나): 탐색기 → 보기 → 설정 → 나머지) 는 다음 커밋들에서

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:08:47 +09:00
RyuJongJin f596ef7253 WIP 266 폰 세로 MKV 화면: DNS 닿지 않음 줄을 한 줄로 (글 줄임 · 길게 누르면 전체 · 버튼 같은 줄) - 세부 정보의 자막 버튼이 밀려나지 않게 (검토 대기)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 09:49:36 +09:00
RyuJongJin c350499b79 248 다듬기: 아래 DNS 알림은 상태가 풀리면 닫고, 같은 안내를 보이는 화면 (브라우저 덮개 · 설정 DNS 칸) 에서는 띄우지 않음
a4 의 933 기기 확인 · 관리자 지시 (10/12, 이번 릴리스 전에):
- DNS 를 고친 뒤 (정한 서버가 다시 답함 · 설정을 바꿈) 에도 옛 문구 "DNS 서버 (192.0.2.1) 에 닿지 않아…" 가 남아
  설정의 DNS 칸을 가렸다 → 알림 내용 위젯 (DnsFailureNotice) 이 상태를 듣다가 풀리면 스스로 닫는다
  (Flutter 의 알림 닫기는 "지금 보이는 알림" 에만 해야 해서, 보이는 동안 그려지는 내용이 닫는다).
- 브라우저 덮개와 함께 떠 [시스템 DNS 로 바꾸기] 가 두 개 보였다 → 덮개 · 환경 설정의 DNS 칸이 열려 있는 동안은
  띄우지 않고, 떠 있다가 그런 화면이 열리면 닫는다 (NetGuard.noticeBlockers). 상태는 설정 · 작업 기록 줄 (249) 에 그대로.
- 버튼이 있는 알림이 저절로 사라지지 않는 것 (248 처음 지시) 은 그대로.
- 시험: 상태 풀림 → 닫힘 · 막는 화면이 있으면 안 뜸 · 뜬 뒤 열리면 닫힘 · 설정 DNS 칸 · 덮개가 막는 수를 올리고 내림.
  실제 Edge 통합 시험 다시 통과.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 07:47:50 +09:00
RyuJongJin 6470368c2e 닿지 않는 DNS: 새 버전 확인 실패를 사용자 글로 · 안내는 닫을 때까지 · 상태를 설정 · 작업 현황에 (247 · 248 · 249)
테스터 a4 의 914 기기 확인 · 관리자 지시 (10/12, 버그 수정 · 편의):
- 247: 새 버전 확인 실패가 영어 원문 (HttpException: Proxy failed to establish tunnel (502 ...)) 이던 것.
  DNS 강제 프록시에서 실패했으면 "DNS 서버 (…) 에 닿지 않아 새 버전을 확인하지 못했습니다" (원문은 작업 기록).
- 248: [시스템 DNS 로 바꾸기] 가 붙은 안내가 12초 만에 사라지던 것 → 사용자가 닫거나 누를 때까지.
- 249: 안내가 1분마다 다시 뜨던 것 → 처음 실패 때 한 번. 상태는 서버가 다시 답하거나 DNS 설정을 바꿀 때까지
  환경 설정 > 네트워크 · DNS 와 작업 현황에 "DNS 서버 (…) 에 닿지 않음 (시각부터) · [시스템 DNS 로 바꾸기]".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 01:27:00 +09:00
RyuJongJin e4b6e33a97 모르는 구성 요소 보존 (225) · Tor 대기 표시 (226) · 막은 파일 주소 되돌림 (227) · 포트 다시 잡기
- 225 (기기 확인 a4): Tor 를 모르는 판을 거치면 구성 요소 'tor' 가 지워지던 것. 설정을 읽을 때 components · navOrder 의
  모르는 id 를 버리지 않고 그대로 둔다 (40 과 같은 원칙). 화면 · 버튼은 아는 것만. 화면 순서를 바꿔 저장할 때도 모르는 id 를 남긴다.
- 226: Tor 화면을 떠난 뒤 tor 를 켜 두는 동안 "Tor 대기 중 (n분 뒤 끔)" 을 환경 설정 > Tor 와 일반 브라우저 띠에 [지금 끄기] 와 함께.
- 227: Tor 화면에서 막은 파일 링크 뒤 주소 칸을 마지막으로 보인 페이지 주소로 되돌린다.
- 포트 (관리자 지적): Windows 는 TCP · UDP 마다 막아 둔 포트 범위 (Hyper-V · WSL) 가 있어 번호를 정해 bind 하면 10013 이 날 수 있다.
  시험의 가짜 DNS 는 TCP 를 OS 가 고른 번호로 먼저 열고 그 번호로 UDP (안 되면 다시). aria2 는 넘긴 번호를 열지 못해 끝나면 새 번호로 다시 (2번).
  앱 안 프록시 · Tor 다리 (같은 번호 → 실패하면 OS 가 고름), Tor (auto), Android 웹 뷰 문 (0) 은 이미 그렇다.
- analysis_options: packages/whisper_ggml 도 분석에서 뺌 (자기 analysis_options 가 flutter_lints 를 찾지 못함).
- 시험: components_test 1 · tor_test 2 (226 · 227).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:56:22 +09:00
RyuJongJin 697235073e Tor · DNS 보완: 앱 안 프록시 인증 · Android 웹 뷰 문 · Tor 화면 떠남 정리 · 다운로드 막기
관리자 결정 (10/11) · 기기 확인 (노트 10+, 911 시험판 1~6 통과) 에 따라 0d1ea93 을 보완.
- 앱 안 프록시 (DNS 강제 · Tor 다리) 인증: 실행마다 새 무작위 비밀값 (저장 안 함) 으로 Basic Proxy-Authorization, 틀리면 407.
  HttpClient (findProxy) · yt-dlp (--proxy) · aria2 (--all-proxy-user/passwd) · Edge (WebView2 BasicAuthenticationRequested) ·
  Chrome 엔진 (webview_cef 패치 7, GetAuthCredentials) 이 이 프록시에만 답한다. 127.0.0.1 에만 묶음.
- Android 웹 뷰는 프록시 인증에 답하지 못해 (기기 확인) 인증 없는 "문" 을 따로: 실행마다 고른 127.x.y.z 의 빈 포트,
  웹 뷰 화면 (일반 브라우저 · Tor 화면) 이 맨 앞에 보이고 앱이 앞일 때만 연다 (그 밖엔 닫힌 포트 127.0.0.1:9).
  "다른 화면으로 가면 소리 멈춤" 을 끈 사용자는 일반 브라우저가 살아 있는 동안 DNS 문 유지 (사용자 설정을 따름). Tor 문은 따로.
- Tor 화면을 떠나면 (다른 화면 · 앱이 뒤로) 바로 웹 뷰 · 쿠키 정리, 프록시 · 다리 되돌림. tor 는 설정 시간 (처음 2분, 0 = 바로) 뒤 끔.
  남은 Tor 웹 뷰가 있는 동안은 Tor 문 · 닫힌 포트만 건다 (앱이 뒤에 있어 화면을 그리지 않아도 일반 쪽으로 나가지 않게).
- Tor 화면 파일 링크는 받지 않고 안내 (Windows: flutter_inappwebview_windows 0.6.0 사본에 DownloadStarting, JJ_PATCH.md · 고지).
- 시험: web_proxy_gate_test (새), tor_test · dns_proxy_test 보강, integration_test tor_dns_real_test 보강 · cef_dns_real_test (새, 207 확인용).
- analysis_options: packages/flutter_inappwebview_windows 를 분석에서 뺌 (다른 고친 외부 부품과 같게).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:36:32 +09:00
RyuJongJin 0d1ea93fd3 Tor 브라우저 (컴포넌트) · DNS 강제 (기본 8.8.8.8 / 8.8.4.4)
사용자 요청 (10/10): "Tor 브라우저를 현재 브라우저 옆에 추가 · 설정에서 컴포넌트처럼 추가 ·
DNS 주소를 강제로 내가 설정한 주소로, 기본 8.8.8.8" (보조 8.8.4.4 는 관리자 결정).

DNS 강제 (환경 설정 > 네트워크 · DNS: 시스템 DNS (끄기) / 직접 지정 (기본) / DNS over HTTPS)
- 앱 안 HTTP 프록시 (127.0.0.1, CONNECT + http) 가 정한 서버로 이름을 푼다 (UDP, 잘리면 TCP, DoH,
  TTL 동안 기억). 닿지 않으면 기기 DNS 로 몰래 바꾸지 않고 502 + 알림 [시스템 DNS 로 바꾸기].
- 따르는 것: 앱의 HttpClient (HttpOverrides: 업데이트 · 컴포넌트 · AI 모델 · WebDAV · 번역 · 자막),
  Edge (--proxy-server) · Chrome 엔진 (webview_cef 패치 6), Android 웹 뷰 (ProxyController),
  yt-dlp --proxy, aria2 --all-proxy (+ c-ares 가 있으면 --async-dns-server).
- IP 주소 · 같은 집 안 이름 (점 없는 이름, *.local, Tailscale *.ts.net 등) 은 기기 DNS (내 판단: NAS · WebDAV 가 그대로 열리게).

Tor 브라우저 (컴포넌트 'tor', 처음 꺼짐, 화면은 웹 브라우저 바로 뒤)
- Windows: 공식 Tor Expert Bundle 15.0.24 (tor 0.4.9.13) 을 받아 SHA-256 확인
  (e9dc6ccc…2b65) → 앱 데이터 components/tor. Android: 같은 판의 libTor.so 를 APK 에 (tool/fetch_tor_android.ps1).
- tor 를 자식 프로세스로 (SOCKS · 제어 포트는 빈 포트, 쿠키 인증, __OwningControllerProcess), Tor 화면을 닫으면 끔.
- 웹 뷰 → Tor 다리 (HTTP 프록시 → SOCKS5, 이름은 Tor 에 넘김). Tor 100% · 프록시 적용 · 전용 프로필이
  모두 된 뒤에만 웹 뷰를 만든다. WebRTC 끔, 권한 거절, 검색은 DuckDuckGo.
- Windows: 따로 WebView2 환경 (tor_webview, InPrivate). Android: 웹 뷰 프록시가 앱 전체라 Tor 화면이
  열려 있는 동안 일반 브라우저도 Tor (안내 띠, 관리자 결정), androidx.webkit 프로필 'jj_tor'
  (flutter_inappwebview_android 패치 jjProfile). 기능이 없으면 화면을 열지 않음.
- 상태 줄 (연결 중 % / 연결됨 / 실패 + 다시 시도), [새 경로] (NEWNYM), 처음 열 때 "공식 Tor Browser 아님" 안내.
- 라이선스: TOR_LICENSES.txt (Tor BSD-3 · Libevent · OpenSSL · zlib · zstd), tor 실행 파일은 GPL 빌드 → GPL-3.0.

시험: dns_proxy_test (가짜 DNS · 프록시 · SOCKS 다리), tor_test (새는 것 막기 · 번들 해시 · torrc),
integration_test/tor_dns_real_test (Windows 실제: 8.8.8.8 로 풀기, 닿지 않는 DNS 는 실패,
check.torproject.org "Congratulations").

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