readest/apps/readest-app
Huang Xin db1d63cdcc
test(reader): harden fixed-layout wheel double-scroll test against CI flake (#4978)
The readest#4727 regression test set scrollTop=0, dispatched a synthetic
wheel, waited 60ms, then asserted scrollTop stayed 0. On slow CI runners it
flaked with "expected 4 to be +0".

As sibling scroll pages finish loading, the renderer runs
restoreScrollModeAnchor asynchronously, which at scrollTop=0/page-index-0
snaps scrollTop to page 0's offsetTop, the 4px scroll-page-gap margin. The
60ms post-dispatch delay raced that re-anchoring, so the assertion observed 4
instead of 0. That 4 is unrelated to the wheel bug, which is a 120px jump.

The buggy handler was scrollBy with instant behavior, a synchronous scroll
that lands before dispatchEvent returns. Measure scrollTop synchronously
before and after the dispatch with no await in between and assert they match.
This isolates the wheel handler's own effect and is immune to the async
re-anchoring. Reintroducing the bug still fails the test (before=4, after=124,
a clean 120px delta).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 18:28:11 +02:00
..
.agents agent: support cross-agent workspace, now it should work with claude and codex (#4318) 2026-05-27 06:28:39 +02:00
.claude chore(agent): update agent memories (#4958) 2026-07-06 07:29:34 +02:00
bench fix(db): forward DatabaseOpts to tauri-plugin-turso (#4292) 2026-05-25 18:51:49 +02:00
data/wordlens feat(wordlens): en-en glosses, styling, derivation lemmas, display-time cap (#4744) 2026-06-23 11:15:34 +02:00
docs refactor(wordlens): rename "Word Wise" to "Word Lens" (#4633) 2026-06-17 19:09:29 +02:00
e2e test(e2e): add a Playwright web e2e lane (reading & annotation flows) (#4214) 2026-05-18 08:22:17 +02:00
extensions chore(send-to-readest): add Chrome Web Store screenshot generator (#4664) 2026-06-19 12:58:24 +02:00
public feat(reader): middle mouse button autoscroll in scrolled mode (#4955) 2026-07-06 05:01:30 +02:00
scripts fix(auth): surface OAuth callback errors on desktop deeplink (#4881) (#4894) 2026-07-02 17:03:56 +02:00
src test(reader): harden fixed-layout wheel double-scroll test against CI flake (#4978) 2026-07-06 18:28:11 +02:00
src-tauri fix: more production crashes (View Transition noise, book-dir race, stats transaction) (#4962) 2026-07-06 17:05:35 +02:00
workers feat(payment): observability for store subscription webhooks (#4704) 2026-06-21 18:02:02 +02:00
.env fix: resolve various tracked exceptions in ph (#3584) 2026-03-22 08:16:38 +01:00
.env.local.example feat(discord): support show reading status with Discord Rich Presence, closes #1538 (#2998) 2026-01-19 17:42:19 +01:00
.env.tauri fix(flathub): use custom dbus id for single instance on Linux (#2971) 2026-01-16 05:59:25 +01:00
.env.tauri.example feat(ai): AI reading assistant phase 2 (#3023) 2026-01-24 11:38:48 +01:00
.env.web Support running Readest in modern browsers 2024-12-05 18:57:16 +01:00
.env.web.example feat(ai): AI reading assistant phase 2 (#3023) 2026-01-24 11:38:48 +01:00
.gitignore chore(agent): update agent memories (#4833) 2026-06-28 05:11:46 +02:00
AGENTS.md agent: update implementation scope (#4319) 2026-05-27 07:50:31 +02:00
CLAUDE.md chore(agents): add AGENTS.md for readest-app (#3415) 2026-02-28 15:30:31 +01:00
components.json refactor: rename components/ui to components/primitives (#3064) 2026-01-25 06:41:18 +01:00
DESIGN.md fix(sync): cloud-sync settings polish + temporary premium ungate (#4828) 2026-06-27 19:11:17 +02:00
i18n-langs.json feat(i18n): add Uzbek and Brazilian Portuguese translations (#4061) 2026-05-05 09:20:44 +02:00
i18next-scanner.config.cjs fix(cbz): ComicInfo metadata + CBZ page count + WebDAV i18n (#4282) 2026-05-23 15:59:29 +02:00
next.config.mjs build(web): standalone Docker image + drop Turbopack build cache (#4619) 2026-06-16 21:21:24 +02:00
open-next.config.ts chore(config): add disableIncrementalCache to skip populating remote R2 incremental cache (#4623) 2026-06-17 03:51:17 +02:00
package.json release: version 0.11.17 (hotfix for an Android crash) (#4852) 2026-06-29 04:21:28 +02:00
playwright.config.ts test(e2e): add a Playwright web e2e lane (reading & annotation flows) (#4214) 2026-05-18 08:22:17 +02:00
postcss.config.mjs Add library page and daisyUI 2024-10-12 21:14:04 +02:00
raw-loader.d.ts Add some fonts that are good for reading 2024-11-04 13:39:38 +01:00
release-notes.json release: version 0.11.17 (hotfix for an Android crash) (#4852) 2026-06-29 04:21:28 +02:00
skills-lock.json ui/ux: codify design system and migrate settings to shared primitives (#4116) 2026-05-10 17:46:25 +02:00
tailwind.config.ts chore: bump next.js to the latest version (#3106) 2026-01-29 12:29:17 +01:00
TODOS.md feat(sync): route library sync exclusively to the selected cloud provider (#4380) (#4975) 2026-07-06 18:05:54 +02:00
tsconfig.json fix(db): forward DatabaseOpts to tauri-plugin-turso (#4292) 2026-05-25 18:51:49 +02:00
vite.config.ts chore: experimental vinext build (#3486) 2026-03-06 18:04:28 +01:00
vitest.android.config.mts fix(reader): Android text selection breaks on the first word of hyphenated paragraphs (#4545) 2026-06-12 12:30:56 +08:00
vitest.browser.config.mts chore: bump turso to the latest version (#4086) 2026-05-07 20:11:47 +02:00
vitest.config.mts fix(reader): Android text selection breaks on the first word of hyphenated paragraphs (#4545) 2026-06-12 12:30:56 +08:00
vitest.env.mts feat(node): refactor appService into focused service modules and add app service for Node runtime (#3530) 2026-03-13 17:51:35 +01:00
vitest.setup.ts feat(tts): reuse the speaking session across paragraph & RSVP modes (#4657) 2026-06-19 07:47:29 +02:00
vitest.tauri.config.mts perf(import+open): native Rust EPUB/MOBI parser, OPF prefetch, parallel TOC enrichment (#4369) 2026-06-10 16:58:25 +02:00
vitest.tauri.setup.ts feat(node): refactor appService into focused service modules and add app service for Node runtime (#3530) 2026-03-13 17:51:35 +01:00
wdio.conf.ts chore(testing): add Tauri integration tests and E2E test infrastructure (#3483) 2026-03-05 19:14:01 +01:00
wrangler.toml feat(payment): observability for store subscription webhooks (#4704) 2026-06-21 18:02:02 +02:00