Skip to content

Merge uxjulia/crossink development 3efe61b into development - #70

Merged
prokrypt merged 25 commits into
developmentfrom
claude/project-thread-i8sii6
Oct 4, 2026
Merged

prokrypt merged 25 commits into
developmentfrom
claude/project-thread-i8sii6

Conversation

@prokrypt

@prokrypt prokrypt commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Requested by Clankmaster · project thread

Before: development was 23 upstream commits behind uxjulia/crossink development.

After: development carries upstream through 3efe61b. Upstream has no dev branch; development is the one that moves.

Merged range: 9dd334d..3efe61b (our base fe30164). SDK pin unchanged (upstream didn't touch it).

Upstream commits

  • 9e7cf2f feat: show inline images within EPUB text
  • 8bd0001 fix: prevent optimized EPUBs opening at End of Book
  • 3fa6b63 fix: align File Browser settings spacing with other screens
  • bfba2bb fix: make keyboard more responsive
  • 8ccb543 fix: give margin previews a dedicated viewing area
  • e111710 fix: reuse carousel artwork after reading
  • 5048155 chore: remove touch keyboard diagnostics
  • bde0b8a fix: improve SD font previews in global settings
  • 1162fa4 feat: make menu buttons follow the device's physical layout
  • b4b5be8 fix: restore native test builds and fixtures
  • 3b67ad6 chore: prepare v1.6.1 release
  • 8d6831f fix: keep edge gesture values when fingers drift inward
  • e1fd43e perf: improve library responsiveness
  • c3e2d42 perf: speed up sleep entry
  • b61acd1 fix: preserve reading data when renaming in the web portal
  • 832f1da fix: use toggle switches for boolean settings
  • 3b62abc fix: highlight current values in book settings
  • 6b3b51e feat: redesign KOReader sync progress choice
  • 15f1f27 fix: refresh Home after changing themes in the drawer
  • 46f641e fix: handle whitespace at split section boundaries correctly
  • 3ebedbf fix: show recently opened books without a library scan
  • 461b707 fix: keep frontlight state after rebooting from usb host mode
  • 3efe61b fix: inherit EPUB paragraph indents from root styles

Display-safety review (timing / sleep-wake)

No LUT, VCOM, PLL or waveform changes upstream. Touching sleep/wake or refresh choice:

  • c3e2d42 sleep entry: drops the pre-sleep settle delay, draws PSRAM sleep screens before reader onExit(), Direct grayscale skips the B/W decode. We already had the same (bf19c41/perf(sleep): show image and cover sleep screens sooner #45); kept ours, see conflicts.
  • e1fd43e adds an RTC_NOINIT ScanSleepToken saved just before Storage.shutdown() in enterDeepSleep() and consumed on deep-sleep wake (main.cpp). Merged in.
  • 461b707 silent-restart frontlight state. Ours (bfb3622) already does this via a separate RTC word; kept ours.
  • 15f1f27 re-renders Home with FAST_REFRESH after a theme change in the drawer.
  • 9e7cf2f inline EPUB images (page content only; section cache bumped to v81 / 0xC2, so caches rebuild).

Conflicts (24 files)

File Choice
CHANGELOG.md Ours, plus upstream's new Fixed line; dropped two duplicated Added lines
platformio.ini Our check_flags (more suppressions), plus upstream's comment
lib/LibraryIndex/LibraryBuilder.cpp Both: upstream restoreLibraryIndexAfterSleep() + our buildLibraryIndex signature
src/CrossPointState.{h,cpp} Ours (one String serialize + CRC), plus upstream's Storage.exists() check so a deleted state file is rewritten (upstream test RecreatesDeletedStateFile); dropped upstream's unused StateCrcWriter
src/SettingsList.h Ours (list lives in SettingsList.cpp, #69); ported upstream's Orientation Aware Toggle into the .cpp
src/activities/ActivityManager.cpp Edge slide: our two-way liveAmount tracking inside upstream's leftEdgeBand guard. goToSleep: our static rendersBeforeExit, plus upstream's makeUniqueNoThrow + allocation-failure fallback
src/activities/boot_sleep/SleepActivity.{h,cpp} Ours (static rendersBeforeExit, compile-time S3 gate, Extend margin sizing)
src/activities/home/HomeActivity.cpp Carousel key: upstream (progress/stats now drawn live, e111710). Our openBook name kept; upstream's removed updateSlidingWindowCache stub dropped
src/activities/library/LibraryActivity.{h,cpp} Ours, whole file. See below
src/activities/reader/EpubReaderDrawerActivity.{h,cpp} Upstream #if CROSSINK_APP_READER_SAMPLE_PREVIEW blocks; upstream touch-aware default drawer state, kept as const ref to match our .cpp
src/activities/reader/XtcReaderActivity.cpp Ours (comment only)
src/main.cpp Silent-reboot light: ours (removed upstream's duplicate SILENT_REBOOT_FRONTLIGHT_* bit flags). Sleep: ours + upstream libraryScanSleepToken.save(). Wake: our releaseAfterWake() + upstream boot-state log. Loop: InputWake::wait(inputPollDelayMs) (our wake-early wait at upstream's per-activity rate)
src/network/CrossPointWebServer.cpp Union of includes
src/util/BookCacheUtils.cpp, src/util/ReaderStatusBarConfig.h Ours (same logic)
test/content_opf_parser/ContentOpfParserTest.cpp Upstream (real DC namespace, needed after 8bd0001)
test/section_persistence/* Upstream (v81 versions; CssParser now linked, stubs removed)
test/chapter_html_slim_parser/* Ours; dropped upstream's ImageDimsProbe stubs (our CMake links the real file)

Also: scripts/test_silent_restart_frontlight.py removed (it drives upstream's bit-flag encoding, which we don't use); src/simulator/SimulatorSmokeTest.cpp keeps our Library steps instead of upstream's Recent Library / input-buffer steps.

Not carried: e1fd43e + 3ebedbf Library parts

Both sides rewrote LibraryActivity (~400 lines each). Ours already latches input while rendering and reuses the index by storage generation, with the background prewarm and row cache built on that. Upstream's ordered input queue (LibraryInputBuffer) and the Recently Read path that skips the index are built on its index-dirty model. Porting them is a follow-up, not a merge resolution. LibraryInputBuffer.h and its test come in unused.

Checks

  • Native tests: 872/872 pass.
  • pio run -e default (C3): flash 96.1% (6,300,901 B) vs base fe30164 96.0% (6,288,745 B): +12,156 B. RAM unchanged (19.8%).
  • cppcheck: upstream code tripped 4 low findings under our flags (BookmarkStore/ClippingStore raw loops from b61acd1, LyraCarouselTheme::drawReadingProgress const renderer from e111710, KeyboardEntryActivity wraparound false positive from bfba2bb, suppressed inline). Fixed in 126d1c6; pio check default + sticky clean locally.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QZEz8VPAD7dH6CuVCTHHwL

uxjulia and others added 24 commits September 29, 2026 19:34
side/front buttons now move between tabs and rows when in settings instead of only up/down.
    Adapt the contributor build fixes to current development and repair clean-checkout dependencies and stale parser fixtures exposed by the full native suites.

    Co-authored-by: LegendaryDrogan <98139046+LegendaryDrogan@users.noreply.github.com>
Queue Library touch gestures and button actions while the screen refreshes,
preserving input order and the existing tap tolerance and device controls.
Keep a clean Library scan across deep sleep so waking opens it faster.
External SD-card edits while asleep require Library > Refresh; cold boots,
failed scans, and in-app file changes still reconcile the index.
Conflicts kept CrossInk's implementation where both sides built the same
feature (sleep-before-exit, state CRC skip, silent-reboot light, Library
index reuse/input latching), adapting upstream intent where it adds to it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QZEz8VPAD7dH6CuVCTHHwL
@prokrypt prokrypt self-assigned this Oct 3, 2026
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QZEz8VPAD7dH6CuVCTHHwL
@prokrypt
prokrypt merged commit 7ed4502 into development Oct 4, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants