Skip to content

Release/v1.4.0#357

Merged
uxjulia merged 601 commits into
mainfrom
release/v1.4.0
Jul 10, 2026
Merged

Release/v1.4.0#357
uxjulia merged 601 commits into
mainfrom
release/v1.4.0

Conversation

@uxjulia

@uxjulia uxjulia commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Summary

New

  • Added a new home and sleep screen theme called "Dashboard" that displays the current book cover alongside reading stats.
  • Added Nearby Position Sync for sending or applying your EPUB reading position between two CrossInk devices. It uses the same file matching method (binary or filename) set in your KOReader sync settings. Get to it from the book's reader menu > Nearby Position Sync.
  • EPUBs optimized via the built-in web uploader will see a new option to display Stable Page Numbers by defaulting to 1500 characters per page (roughly 230-300 words per page). You can adjust the number of characters to use in the EPUB optimizer's advanced settings.
  • Added reading stats support for XTC and XTCH files.

Improved

Fixed

PaulDelestrac and others added 30 commits June 21, 2026 10:46
…-reader#2349)

* Adds a live font preview pane to the font selection screen so users
can see how a font looks before committing to it.
* Changes
* A preview pane occupying the top 30% of the font selection screen,
rendering sample pangram text in the previewed font
* A two-step confirm flow: first press (enter button) previews the font,
second press selects it
* Back restores the original font settings, so browsing has no side
effects
* Layout dimensions cached in `onEnter()` to avoid redundant
recalculation between `loop()` and `render()`
* Preview sample text is hardcoded English; didn't want to use AI for
translation as I would not be able to verify the output in most
languages...
* The preview pane reduces visible list height; this is compensated by
passing the reserved height into `getNumberOfItemsPerPage`

---
Did you use AI tools to help write this code? **PARTIALLY**
AI use for assisting in coding and in writing the PR description.
Replace std::vector inlineStyleStack and blockStyleStack in
ChapterHtmlSlimParser with arena-backed fixed-size arrays allocated
from parseArena_ at the start of each chapter parse. The arena is
initialized once, used for the full parse, then released in one
shot instead of per-object frees.
@uxjulia uxjulia linked an issue Jul 9, 2026 that may be closed by this pull request

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 476417d333

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/release.yml
@uxjulia
uxjulia merged commit 0b80e26 into main Jul 10, 2026
4 checks passed
@uxjulia
uxjulia deleted the release/v1.4.0 branch July 10, 2026 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment