fix(reader): sync progress between an EPUB and its read-along copy

Carry positions between sibling EPUBs even without an audiobook, and keep
narration markers on the read-along file only. Point the KOReader book panel
and hold release at the copy devices sync, and label EPUB-only sync in the
read-aloud panel.

Fixes #1508
This commit is contained in:
neon
2026-09-23 12:30:01 +00:00
parent 94eca198c3
commit 3c032e0e3c
12 changed files with 936 additions and 97 deletions
+23
View File
@@ -735,6 +735,29 @@ export const E2E_SUITES = Object.freeze({
...SHARED_DB_AND_HELPER_PATHS,
],
},
"koreader-readaloud-progress": {
id: "koreader-readaloud-progress",
name: "KOReader Read-Along Sibling Progress",
timeout: 45,
lane: "full",
description: "KOReader and web reader positions carried between an EPUB and its Storyteller read-along copy",
vitestTarget: "test/koreader-readaloud-progress.e2e-spec.ts",
junitOutput: `${TEST_RESULTS_DIR}/koreader-readaloud-progress-e2e-junit.xml`,
prepareDedicatedDatabase: true,
useDedicatedDatabase: true,
changedPaths: [
"server/src/modules/koreader/**",
"server/src/modules/book/audiobook-ebook-progress-sync.service.ts",
"server/src/modules/book/book.repository.ts",
"server/src/modules/book/book.service.ts",
"server/src/modules/position-converter/**",
"server/src/modules/reader/epub/**",
"server/src/common/utils/primary-file-selection.utils.ts",
"server/test/koreader-readaloud-progress.e2e-spec.ts",
"server/test/e2e/reader-state-isolation/**",
...SHARED_DB_AND_HELPER_PATHS,
],
},
"koreader-file-naming": {
id: "koreader-file-naming",
name: "KOReader File Naming",