현재 버전 v1.3.0-ko.1

릴리즈 노트

CrossPoint Reader 한국어 펌웨어 버전별 변경사항

1.2.0-ko.11

1.2.0-ko.112026년 4월 24일
GitHub

1.2.0-ko.11 — TXT 리더 업스트림 리뷰 반영

upstream PR #1747의 CodeRabbit 리뷰 피드백을 한국어 포크에도 백포트했습니다. 기능 추가는 없고 TXT 리더의 버그 및 UX 수정입니다.

수정

  • UTF-8 코드포인트 보호findBreakPosition의 최소 진행 경로가 한 번에 한 바이트만 소비해서 한국어처럼 UTF-8 다바이트 문자를 쓰는 경우 페이지 경계에서 잘못된 바이트로 파싱될 수 있었음. 이제 최소 한 개의 완전한 코드포인트만큼만 진행.
  • 뒤로 점프 시 Back 동작 정상화jumpPages가 뒤로 점프할 때 이전 오프셋을 history에 밀어넣어, 다음 Back 눌림이 오히려 앞으로 점프하던 문제. 이제 뒤로 점프 시 history를 초기화해서 Back이 계속 뒤로 이동.
  • EOF 복구 개선render() 진입 시 currentOffset >= fileSize이면 snapToLineStart(fileSize)를 호출했는데, 그 함수가 fileSize 자체를 반환해서 빈 페이지만 렌더됨. 이제 findBackwardPageStart(fileSize)로 진짜 마지막 페이지 시작점을 찾음.
  • 저장된 진행률 경계 수정loadProgresssavedOffset == fileSize(EOF)를 허용해서 재실행 시 빈 페이지가 나왔음. 이제 <로 엄격하게 검사.
  • 메뉴 진행률 표시 방향 인식 — 리더 메뉴 상단의 "n/m pages | Book: n%" 라인이 가로/역세로에서 hint gutter를 무시하고 화면 전체 기준으로 중앙 정렬되던 문제. 이제 contentX/contentWidth 기준으로 정렬해서 제목과 동일하게 gutter를 존중.

검증

  • pio run 성공
  • pio check --fail-on-defect low/medium/high PASS
  • bin/clang-format-fix (llvm@21) idempotent

1.2.0-ko.10

1.2.0-ko.102026년 4월 23일
GitHub

1.2.0-ko.10 — TXT 리더 옵션 메뉴 추가

TXT 리더에 EPUB 리더와 동일한 리더 옵션 메뉴를 추가했습니다. 리딩 중 Confirm 버튼을 눌러 메뉴를 열 수 있습니다.

새 기능

  • 읽기 방향 — 세로 / 가로(시계) / 반전 / 가로(반시계) 순환 선택
  • 자동 넘김 (분당 페이지) — OFF / 1 / 3 / 6 / 12 pages-per-minute, 활성화 시 상태바에 현재 속도 표시
  • 길게 눌러 페이지 점프 — OFF / 10 / 20 / 50 / 100 페이지. 옵션 활성화 시 좌/우 또는 측면 버튼을 1초 이상 누르면 설정된 step만큼 이동. 짧게 누르면 기존처럼 1페이지 이동
  • % 위치로 이동 — 슬라이더로 책의 원하는 % 지점으로 점프 (EPUB의 퍼센트 선택기 재사용)
  • 스크린샷 촬영 — 현재 페이지를 BMP로 SD 카드에 저장
  • 홈으로 이동 — 리더 종료

세부 동작

  • 다중 페이지 점프는 러닝 bytes-per-page 추정치를 사용하며, 점프 후 Back으로 이전 위치 복귀 가능
  • 읽기 방향은 전역 설정(SETTINGS.orientation)에 저장되어 다음 실행에서도 유지됨
  • 자동 넘김 / 페이지 점프 step은 리더 세션 내에서만 유효 (ephemeral)

변경된 파일

  • src/activities/reader/TxtReaderActivity.{h,cpp} — 리더 메뉴, 자동 넘김, 점프 로직
  • src/activities/reader/TxtReaderMenuActivity.{h,cpp} — 신규
  • src/activities/ActivityResult.hMenuResult.pageJumpOption 추가
  • lib/I18n/translations/{english,korean}.yamlSTR_PAGE_JUMP_STEP 추가

v1.2.0-ko.8

1.2.0-ko.82026년 4월 21일
GitHub

요약

OTA 업데이트 관련 문제들을 수정했습니다.

Upstream 변경 사항

  • 없음 (upstream 1.2.0 기준 유지)

한국어 버전 변경 사항

  • ko.N 접미사 감지: OtaUpdateActivity 가 업스트림 isUpdateNewer() (semver만 비교) 대신 isUpdateNewerKO() 를 호출하도록 수정. 1.2.0-ko.N1.2.0-ko.M (M>N) 범프가 이제 정상적으로 업데이트로 감지됩니다.
  • 첫 시도 실패: checkForUpdate()timeout_ms=15000 추가 + WiFi 연결 직후 TLS 지연을 대비해 1회 자동 재시도.
  • chunked 응답 처리: GitHub API 가 간헐적으로 Transfer-Encoding: chunked 로 응답할 때 버퍼가 할당되지 않던 문제. 초기 16KB seed 후 realloc 로 확장.
  • 진행률 0% 고정: installUpdate()loop() 를 block 하는 동안 render task 가 깨어나지 않아 UI 가 0% 로 머무르던 문제. ProgressCallback 을 추가해 OTA perform 루프에서 직접 requestUpdate() 호출.
  • 2초 간격 heartbeat 로그([OTA] perform: read=...) 추가 — 느린 TLS/redirect 구간에서도 시리얼로 진행 여부 확인 가능.
  • "업데이트 없음" 문구를 "현재 최신 버전입니다" 로 변경.
30개의 릴리즈 중 13-15