v1.6.4
v1.6.4 패치노트
기준 범위: v1.6.3 이후부터 v1.6.4까지의 변경 사항입니다.
주요 포함 변경: AMD GPU OCR 런타임과 실패 처리 수정, Apple Silicon Alpha 3 실기 검증 결과를 반영한 macOS 정식 릴리스 추가.
AMD GPU OCR 안정성 수정
이슈 #44 런타임 의존성과 실행 경로 수정
- 이슈 #44에서 확인된 AMD GPU OCR 초기화와 실행 실패를 추적할 수 있도록 ROCm 런타임 검증을 보강했습니다.
- 설치 시점마다 달라질 수 있던 AMD OCR의 Transformers 범위를
transformers==5.13.1로 고정해 호환되는 의존성 조합을 재현합니다. - Paddle OCR 모델은 고정된 revision과 가중치 SHA-256으로 내려받아 원격 파일 변경이나 손상된 캐시를 그대로 사용하지 않습니다.
- AMD OCR에 필요한
torch,torchvision,transformers,paddlex,paddleocr,safetensors의존성을 실제 모델 생성 전에 확인합니다. - 앱이 관리하는 ROCm 런타임을 사용할 때 외부
ROCM_PATH,HIP_PATH, 라이브러리 경로가 섞이지 않도록 실행 환경을 격리하고, 명시적으로 외부 런타임을 허용한 경우에만 해당 경로를 전달합니다. - PyTorch가 실제로 읽는
PYTORCH_ALLOC_CONF에 메모리 allocator 설정을 전달해 AMD GPU 메모리 설정이 누락되지 않도록 했습니다. torchvision과 Transformers 이미지 처리 모듈의 지연 import를 먼저 검사해, 네이티브 DLL이나 연산자 로딩 실패가 일반적인 모델 생성 오류에 가려지지 않고 원인과 함께 표시됩니다.
숨은 GPU → CPU 전환 완전 제거
- GPU OCR 실패 뒤 같은 페이지, 다음 페이지, 배치 또는 앱 세션에서 CPU OCR로 몰래 바꾸던 모든 fallback 경로를 제거했습니다.
- GPU 페이지 오류를 내부에서 다시 시도하거나 오류 난 페이지를 빈 결과로 건너뛰던 경로도 제거해 첫 처리 실패에서 전체 작업을 중단합니다.
- AMD GPU OCR 준비나 실행이 실패하면 현재 OCR·번역 작업을 즉시 중단하고, 누락된 의존성, DLL 로딩, 장치 초기화 또는 페이지 처리 중 발생한 원래 오류를 표시합니다.
- 실패한 페이지를 완료 또는 건너뜀으로 표시하지 않으며, 편집 중인 블록이 있어도 실패 원문을 실행 패널에 계속 표시합니다.
- OCR 캐시는 장치, GPU backend, 품질, provider, engine과 모델 설정별로 분리해 CPU에서 만든 결과가 GPU 설정에서 재사용되지 않도록 했습니다.
- CPU OCR을 사용하려면 사용자가
설정 → 하드웨어 · OCR에서 OCR 장치를 CPU로 직접 선택해야 합니다. 앱은 사용자의 GPU 선택을 임의로 변경하지 않습니다. - 이번 수정은 런타임 경로와 오류 정책을 바로잡고 회귀 테스트로 고정한 것입니다. 실제 RX 9070 계열 장치에서 모든 OCR 작업의 성공을 확인했다는 의미는 아닙니다.
Apple Silicon macOS 정식 릴리스
Windows와 같은 v1.6.4 릴리스에 포함
- 이슈 #18에서 Apple Silicon Alpha 3의 실제 Mac 실행이 확인됐으며, 그 코드와 패키징 수정 사항을 반영한 macOS 빌드를 별도 Alpha 프리릴리스가 아닌 동일한
v1.6.4정식 릴리스에 DMG와 ZIP으로 제공합니다. - 지원 범위는 Apple Silicon M1 이상과 macOS 14 이상입니다. Intel Mac은 지원하지 않습니다.
- macOS의 Paddle OCR은 CPU 경로를 사용하며, Gemma와 지원되는 인페인팅 기능은 Apple Silicon Metal 런타임을 사용합니다.
- 최종 v1.6.4 산출물은 Apple Silicon GitHub Actions 러너에서 설치, 첫 실행, 종료·재실행, 런타임 준비와 캐시 재사용 검증을 통과한 뒤 업로드합니다.
서명과 Gatekeeper 안내
- v1.6.4 macOS 앱과 포함된 실행 파일은 무결성을 위한 ad-hoc 서명만 적용되며, Apple Developer ID 서명이나 공증이 적용된 빌드가 아닙니다.
- 처음 실행이 Gatekeeper에 의해 차단되면 다운로드한 파일의 SHA-256을 먼저 대조한 뒤
시스템 설정 → 개인정보 보호 및 보안에서 해당 앱의확인 없이 열기를 선택해야 할 수 있습니다. - 출처를 신뢰할 수 없는 DMG나 ZIP에는 이 절차를 사용하지 마세요.
재발 방지 및 검증
릴리스 검증 항목:
npm run check전체 검사- Windows
Check에서 Vitest 전체 184개 파일, 1,174개 테스트 통과·2개 건너뜀 - 실제 프로덕션 컴포넌트를 사용한 UI QA와 넓은 화면·좁은 화면 Chromium 캡처 확인
- AMD OCR 의존성, 격리된 런타임 경로, allocator 전달, GPU 실패 즉시 중단과 명시적 CPU 선택 회귀 테스트
- Flux Metal Rust 테스트와 macOS용 Flux·Koharu 인페인팅 실행기 릴리스 빌드
- 실제 electron-builder NSIS 컴파일, 패키지 런타임 검사와 격리된 신규 설치·잠긴 파일 업그레이드·사용자 데이터 보존 제거 smoke test
- Apple Silicon에서 Metal 런타임 smoke, arm64 패키지·연결 라이브러리·ad-hoc 서명·DMG·ZIP·체크섬 검증과 설치·실행·종료·재실행 lifecycle 확인
git diff --check- GitHub Actions
Check통과 후 Windows 릴리스 워크플로가 정식 릴리스와 EXE를 게시하고, macOS 릴리스 워크플로가 검증된 DMG·ZIP·체크섬을 같은 릴리스에 순차 업로드 - 두 릴리스 워크플로가 모두 성공하면 제공되는 산출물:
CarrotMangaTranslator-Setup-v1.6.4.exe— 311,600,309바이트(약 297.2MiB), SHA-2566a892fad31db63d522b2735f554e5a7fec5a498a83f915ad6500b394354da8ccCarrotMangaTranslator-1.6.4-macOS-arm64.dmgCarrotMangaTranslator-1.6.4-macOS-arm64.zipSHA256SUMS-macOS-arm64.txt
Code signing policy
SignPath.io가 제공하고 SignPath Foundation이 인증서를 제공하는 무료 코드 서명 정책을 사용합니다.
v1.6.4 Windows 설치 파일에는 Authenticode 서명이 적용되지 않으므로 SignPath Foundation 정책의 보호 대상이 아닙니다. 유효한 SignPath Foundation 서명이 있는 산출물만 해당 정책의 적용을 받습니다.
v1.6.4 Apple Silicon macOS 산출물은 ad-hoc 서명만 적용되며 Apple이 확인한 개발자 신원이나 공증을 포함하지 않습니다. Gatekeeper 승인 전에 릴리스의 체크섬과 다운로드한 파일을 대조하세요.