feat(books): add read-aloud generation

Generate a synced read-aloud EPUB from a book's EPUB and audiobook through an
optional STAlign worker (Docker on CPU, or native with MLX on Apple Silicon),
with review, re-sync, replace in place, restart recovery and live progress on
the Files tab. Book details also stack the ebook and audiobook covers when
both exist. See docs/READ_ALOUD.md.
This commit is contained in:
neon
2026-10-21 23:44:37 +00:00
parent 99aa7dce70
commit 992224f2e8
154 changed files with 69074 additions and 271 deletions
@@ -0,0 +1,14 @@
diff --git a/dist/utilities/FileSystem.js b/dist/utilities/FileSystem.js
index b8a491d..0e9019f 100644
--- a/dist/utilities/FileSystem.js
+++ b/dist/utilities/FileSystem.js
@@ -11,7 +11,8 @@ export function getAppDataDir(appName) {
dataDir = join(homeDir, "Library", "Application Support", appName);
}
else if (platform === "linux") {
- dataDir = join(homeDir, ".local", "share", appName);
+ const dataHome = process.env["XDG_DATA_HOME"] ?? join(homeDir, ".local", "share");
+ dataDir = join(dataHome, appName);
}
else {
throw new Error(`Unsupport platform ${platform}`);