feat(stats): aggregate synced global stats#176
Closed
uxjulia wants to merge 18 commits into
Closed
Conversation
Owner
Author
|
Codex Review: Didn't find any major issues. 🚀 ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
455bbf2 to
8789f86
Compare
8789f86 to
d245bbc
Compare
* fix: show loading state before opds retry * feat: add more debugging wifi connection diagnostics * fix: make opds download cancellation more responsive * docs: update changelog
Release v1.30 Highlights: - Adds the Download Font Size Range setting so SD-card fonts can download a range of font sizes instead of installing one fixed size set from upstream Crosspoint repo. - Swaps font repo from Crosspoint to Crossink's - Adds OPDS download cancellation, clearer retry/loading feedback, and safer low-memory OPDS handling. - Adds Recent Books long-press actions for delete, cache delete, completion, and remove-from-recents. - Adds the Minimal sleep screen, Quick Resume setting changes, and sleep/download reliability improvements. - Adds the 9pt Itty Bitty reader font size and the new teensy firmware variant. - Improves EPUB cache stability, low-memory layout behavior, cover thumbnail rendering, and SD-card font handling. - Fixes WiFi/manual connection flow, saved credential validation, XTC chapter selector crashes, KOReader Sync compatibility, and several reader/Home UI polish issues.
…eader#2101) ## Summary ### **What is the goal of this PR?** This fixes an unintended settings side effect when cycling the `Sleep Screen` option through `Quick Resume`. Previously, selecting `Sleep Screen = Quick Resume` globally forced `Quick Resume on Timeout = ON` and left it enabled even after the user toggled `Sleep Screen` to another option within the same settings session. Now the auto-enable behavior is scoped to the Settings screen session: - If `Quick Resume on Timeout` was already `ON` when entering Settings, it stays `ON`. - If it was `OFF`, selecting `Sleep Screen = Quick Resume` temporarily turns it `ON`. - If the user then switches away from `Quick Resume`, it turns back `OFF`. ### **What changes are included?** - Removes the global logic that permanently forced `Quick Resume on Timeout` to `ON` whenever `Sleep Screen` was set to `Quick Resume`, even if it was just due to toggling through the options. - Adds Settings-screen session tracking so `Quick Resume on Timeout` is only auto-enabled while the user has `Sleep Screen = Quick Resume`. - Restores `Quick Resume on Timeout` back to `OFF` when the user switches away, but only if it was `OFF` when they entered Settings. - Preserves existing `ON` timeout preferences. - Same behavior applies to the web settings ## Additional Context - Tested this on device and via the settings UI --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**< YES >**_
* fix(opds): show more specific opds errors for low memory scenario * fix(opds): free sd font before catalog loading * fix: improve font download timeout diagnostics * fix(opds): show more specific opds errors for low memory scenario * fix(opds): free sd font before catalog loading * fix: increase opds transfer buffer back up to 4096 and increase font buffer to 2048kb
…k into feat/synced-global-stats
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/.crosspoint/synced_stats/.synced_statsas opt-in: if the folder exists, each device mirrors local stats todevice_<mac>.binand skips that local contribution while summing the folder; if the folder is absent, no sync folder is created and stats remain local-only./.crosspoint/global_stats.binas the local writable source of truth and update Reading Stats entry points, Lyra Carousel cache invalidation, README, file-format docs, and changelog.Verification
./bin/clang-format-fixpio run -e simulatorpio run -e tinyHardware check
Without
/.crosspoint/synced_stats/, read long enough to trigger a stats save and confirm no sync folder is created. Then create or copy in/.crosspoint/synced_stats/, trigger another stats save, and confirm the device writesdevice_<mac>.bin. Copy thesynced_statsfolder between devices, re-enter Home or restart, and confirm Reading Stats shows local totals plus the other devices' contribution files without double-counting the local device.