Commit Graph

10 Commits (0d2b14ce68ae89fb4d7f09dca7c081532c79f680)

Author SHA1 Message Date
RyuJongJin d18b3b02ad WIP HWP 고침 (관리자 지시 10/20, 28 지적): ① 라이선스 - .so 에 실제로 링크되는 crate 167개 (Android 대상 · 일반 의존 · proc-macro 뺌) 마다 이름 · 판 · 라이선스 · 원문을 tool/licenses/rhwp_crates.py 가 RHWP_LICENSES.txt 로 (빌드 스크립트가 부름, npm 쪽 THIRD_PARTY_LICENSES.md 는 뺌), licenses_test 가 Cargo.lock 과 견줌 ③ 진짜 멈추기 - jj_rhwp_cancel (AtomicBool, 쪽마다 확인), 시간 제한 · 닫을 때 부름 ④ 오류 종류 코드 (JJ_RHWP_E_*) → 번역 글, 원문은 [자세히] · 작업 기록 (.so 다시 빌드 전, 검토 대기)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:58:15 +09:00
RyuJongJin 34efa34193 WIP HWP 2단계 (관리자 지시 10/20): 열어 두는 PDF 묶음은 최근 3개까지 (몇백 쪽도 메모리가 늘지 않게, 그리는 묶음은 닫지 않음, 닫은 묶음은 파일만 다시 열기) · 보기 화면의 "열 수 없습니다" 에 [다시 시도] (그 장의 기억을 지우고 다시 부름 - 모든 보기 원본) · 닫을 때 만드는 중인 묶음을 기다리지 않음 · 묶음 여는 부분을 바꿔 끼울 수 있게 (HwpChunkOpener) 해서 단위 시험 hwp_source_unit_test (PDFium 없이 4개) (검토 대기)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:46:30 +09:00
RyuJongJin ced0ae9e5d WIP Android HWP · HWPX 보기 1단계 (관리자 지시 10/20): rhwp v0.8.7 (MIT, 커밋 1a76570 고정) 를 얇은 C ABI (tool/rhwp_ffi) 와 함께 NDK 로 빌드 (tool/build_rhwp_android.sh - git sparse 받기 · Rust 1.93.1 · Cargo.lock --locked · 16KB 정렬 · 경로 /jj 로 바꿈) → APK 의 libjj_rhwp.so 를 dart:ffi 로 · 보기 화면 HwpSource: 보는 쪽의 5쪽 묶음만 PDF 로 바꾸고 다음 묶음을 미리, 묶음마다 3분 제한, 실패한 묶음은 그 쪽에 이유 · 다시 보면 다시 · 닫으면 멈춤 · 파일 탐색기: 보기 컴포넌트를 켰을 때 앱 안에서, 열지 못하면 이유를 알리고 다른 앱으로 · 문서의 가로 쪽은 자동으로 반 나누지 않음 (내 판단) · 라이선스 화면 · Android 고지 · 시험 hwp_source_test (가짜 엔진, Windows 통합) (검토 대기)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:43:20 +09:00
RyuJongJin eee38aa2fd WIP AI 해상도 올리기: 배율 "1배 (선명하게)" · 보기 화면 [품질 올리기] (그림 → 그림 약하게 + 해상도 올리기, 처음 숨김) (검토 대기)
관리자 판단 (10/17): 답이 없는 사용자 질문이라 둘 다 넣고 기본 꺼짐.
(a) 환경 설정 > AI 해상도 올리기 > 배율에 "1배 (선명하게)" - 크기는 그대로, 모델로 선명하게만 (4배 결과를 원본 크기로).
    처음 값은 지금 그대로 2배. 이름은 "이름_x1". 확인 창 글도 "크기는 그대로 두고 선명하게".
(b) 보기 화면 [품질 올리기 (이 장)] - 설정 "품질 올리기 단추 보이기" (처음 값 끔) 를 켰을 때만.
    1/2 AI 그림 (그림 → 그림, 바꾸는 정도 0.25 · 원본 비율 · 긴 쪽 1024 까지 · 64 배수) 으로 다듬고
    2/2 해상도 올리기 (설정의 배율 - 원본 크기 기준). 새 파일 "이름_q" (덮어쓰지 않음, 원본 그대로).
    AI 그림 모델이 없으면 "환경 설정 > AI 그림에서 받으라" 는 안내. 진행 창 · 취소, 작업 (AiJobs) 으로 작업 알림에.
  - 내 판단: 바꾸는 정도 0.25 · 다듬기 글 (high quality, detailed …) 은 고정 (설정 없음).
- 시험: ai_quality_test (설정 · 1배 크기 · "_q" 이름 · 그림 → 그림 크기 · 모델 없음 안내).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 14:05:26 +09:00
RyuJongJin f59e2f75a1 이동 경고 문구 (222) · 자동 두 쪽 나누기는 두 쪽 스캔일 때만 (223) · 보는 동안 지운 그림 (224)
- 222 (관리자 지시): 원본이 대상 안일 때 이동이면 "옮겨집니다 (원본 파일은 지워지고, 원본 폴더는 아래에서 고른 대로)" - 예전에는 이동일 때도 "복사됩니다 · 원본 폴더 그대로".
- 223 (관리자 지시): 보기 화면 "두 쪽 나눠 보기: 자동" 이 평범한 가로 사진도 반으로 잘랐다. ZIP · CBZ · PDF 묶음의 가로 그림은 예전처럼 나누고,
  폴더의 그림은 다른 그림 대부분 (3/4 이상, 2장 이상) 이 세로일 때만 나눈다. 나눠 볼 때 위 막대 맨 앞에 [두 쪽 나눔 끄기]. 설정 값 · 처음 값은 그대로.
- 224 (관리자 지시): 보기 화면이 앱으로 돌아올 때 폴더의 그림 중 없어진 것을 목록에서 빼고, 보던 그림이 없어졌으면 "파일이 없어졌습니다" 와 다음 그림, 다 없으면 닫는다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:43:32 +09:00
RyuJongJin 986688eafa AI 해상도 올리기 (121) · AI 마무리 (150~153) · 받기 범위 확인 · 확인됨 표시
- 121: Real-ESRGAN (BSD-3) x4plus · x4plus anime 6B, 공식 주소 · SHA-256 고정. sd-cli -M upscale 로 4배 → 2 · 3배로 줄임
  · 보기 화면 [AI 해상도 올리기 (이 장 · 모든 장)], 진행 · 취소, [원본 / 올린 것] 비교 → 새 파일로 저장 (덮어쓰지 않음, ZIP 은 옆 폴더)
  · 모든 장은 백그라운드 (작업 알림 · 작업 현황, 남은 장 · 예상 시간)
  · 설정: 모델 (자동 = GPU 면 사진용 · CPU 면 만화용) · 배율 · 형식 · 저장 위치 · 저장한 뒤, 자동 장치는 Vulkan → CUDA → CPU
- 150: 취소는 "취소했습니다" 만 (회색), 실패는 쉬운 한 줄 + 엔진 원문은 [자세히]
- 151: 그리는 · 올리는 동안 쓰는 모델은 지우기를 끔
- 152: 모델 읽는 동안 남은 시간 없음 · 돌아와도 자판이 올라오지 않음
- 153: 지워진 결과 그림은 "파일이 없습니다" · [목록에서 빼기]
- 받기: 206 의 범위 시작이 다르거나 맞지 않는 416 이면 조각을 버리고 처음부터, 받은 파일에 "확인됨" (SHA-256)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 15:31:13 +09:00
RyuJongJin 7d6c653d5f AI 그림 1차 (123) · WebDAV 안내 (133 · 134 · 142 · 143) · 긴 경로 휴지통 보호 · AI 화면 작은 것 (139 · 140 · 141)
- 123: 기기 안 그림 만들기 (stable-diffusion.cpp 228c707, SD1.5 + LCM-LoRA + TAESD)
  · 공식 배포처 · SHA-256 고정, OpenRAIL-M 용도 제한을 보이고 동의 뒤 받기, 공간 확인
  · Windows 실행 파일은 받음 (Vulkan, NVIDIA 면 CUDA 12), Android 는 APK 에 libsdcli.so (tool/build_sdcpp_android.sh)
  · 처리 장치 자동 (짧게 재서 가장 빠른 것), 진행 · 남은 장 · 예상 시간 · 취소, 작업 알림 · 작업 현황
  · 글 → 그림 · 그림 → 그림, 결과는 새 PNG + json (프롬프트 · 시드 · 모델), 보기 화면의 [AI 그림으로]
  · 사용자가 추가하는 서버 · 서비스 (Automatic1111 · ComfyUI · OpenAI 형식), 기기 밖으로 나간다고 늘 알림, API 키는 안전 저장소
  · 컴포넌트 "AI 그림" · 환경 설정 > AI 그림 · 라이선스 고지
- 133 · 134 · 142: WebDAV 를 읽는 곳에서 마스터로 막히면 [마스터 비밀번호 넣기], 서버에 닿지 않으면 알아볼 수 있는 말
- 143: WebDAV 서버 고치기 창에서도 지우기
- 긴 경로 (260자 넘음) 는 휴지통이 받지 않아 Windows 가 묻지 않고 영구 삭제하던 것 - 보내기 전에 막고 이유를 알림
- 139 · 140 · 141: 받을 크기 한 값으로 · 뒤로 버튼 이름 · 시드 칸 이름, 바탕 그림 작은 그림
- Windows 확인용 화면 캡처 시험 (integration_test/windows_check_shot_test.dart)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 14:35:57 +09:00
RyuJongJin 70056b0db3 보안 · 비밀번호 (124 · 127~132) · 쿠키 (53) · http 경고 (56) · 안내 고침 (116 · 125 · 126) · 시험 안정화
- 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>
2026-10-09 12:22:47 +09:00
RyuJongJin 597d853943 비밀번호 안전 저장 · 동기화 안전장치 · 휴지통 · 시작 메뉴 알림 · 보기 화면 (계속 보기 · 두 쪽 · 회전) · 탐색기 배치 등
- 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>
2026-10-09 10:25:08 +09:00
RyuJongJin ac8fd8ad9a 이미지 · PDF · ZIP 보기 (컴포넌트 "viewer")
- reader_page: 그림 · 만화 · PDF 보기. 오른쪽 1/3 누르면 다음, 왼쪽은 이전, 가운데는 막대 보이기 · 숨기기,
  좌우로 밀어도 넘김. 한 쪽 맞추기 · 좌우 맞추기, 넘기는 방향 (오른쪽→왼쪽 만화), 어둡게 · 밝게, 쪽 막대.
- 그림: 탐색기의 지금 정렬 순서대로 같은 폴더 그림을 넘김. 대상 확장자는 환경 설정 > 파일 탐색기에서 고름.
- PDF (pdfrx): 보기, 페이지 지우기, 그림을 페이지로 넣기, 저장 (빈 새 문서에 보이는 순서대로 조립 -
  원본 문서 페이지 목록을 바꾸면 pdfrx 가 엉뚱한 페이지를 남겼음). 원본은 사본으로 열어 덮어쓰기 가능하게.
- 그림 → PDF: 탐색기 메뉴 "PDF 로 만들기" (표시한 그림들을 한 장씩).
- ZIP · CBZ: 목록 · 골라서 / 모두 풀기 (다른 창 · 새 폴더 · 같은 폴더), 만화 보기 (설정에서 바로 보기 켜기 · 끄기).
- 탐색기 메뉴 "보기", WebDAV 파일도 (받아서).
- 시험: reader_test (ZIP · 넘기기 · 설정), integration_test/pdf_test (실제 pdfium).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 15:24:47 +09:00