-
c8e0cf2813
feat(server): warm voice samples at startup
Admin
2026-03-04 19:10:48 +05:00
-
3899a96576
feat(audio): add voice selector, voice samples, MediaSession cover art, and fix speed/voice bug
Admin
2026-03-04 19:05:08 +05:00
-
1e7f396b2d
feat(ui): add admin Rescrape button to book detail page
Admin
2026-03-04 18:21:17 +05:00
-
0eee2eedf3
fix(audio): replace autoStartPending bool with autoStartChapter number
Admin
2026-03-04 18:08:12 +05:00
-
80da1bb3e2
fix(audio): don't reset prefetch state for the chapter being consumed
Admin
2026-03-04 17:43:38 +05:00
-
9f3e895fa8
feat(audio): pre-generate next chapter immediately on playback start
Admin
2026-03-04 17:40:27 +05:00
-
cf0c0dfaaf
fix(scraper): replace browserless with direct HTTP and fix presign 404 race
Admin
2026-03-04 17:32:18 +05:00
-
0402c408e4
feat(ui): pre-fetch next chapter audio at 90% playback progress
Admin
2026-03-04 17:09:51 +05:00
-
d14644238f
fix(scraper): fix ScrapeCatalogue selectors, zero-byte cache skip, and wire ScrapeRanking into runAsync
Admin
2026-03-04 16:54:00 +05:00
-
8de374cd35
fix(audio): fix auto-next reliability issues
Admin
2026-03-04 16:27:38 +05:00
-
82186cfd6d
feat(ui): persist user settings and audio position across sessions
Admin
2026-03-04 16:21:17 +05:00
-
b87e758303
feat(ui): auto-next chapter navigation with auto-start audio
Admin
2026-03-04 16:01:26 +05:00
-
901b18ee13
fix(ui): stop audio restarting by removing conditional <audio> mount and normalised src comparison
Admin
2026-03-04 15:53:49 +05:00
-
034e670795
feat(ui): persistent cross-navigation audio player with expanded controls
Admin
2026-03-04 15:34:56 +05:00
-
0d7b985469
fix(audio): return 404 from presign when audio object not yet uploaded
Admin
2026-03-04 15:21:17 +05:00
-
53af7515a3
feat(ui): replace two-button audio UI with single smart play button and pseudo progress bar
Admin
2026-03-04 15:15:23 +05:00
-
11a846d043
feat(scraper): rewrite browse storage to domain/html+assets structure, populate ranking from snapshot
Admin
2026-03-04 15:13:09 +05:00
-
bf2ffa54db
fix(scraper): add EnsureMigrations to patch progress.user_id on startup
Admin
2026-03-04 14:59:09 +05:00
-
fe204598a2
fix(pb-init): rewrite ensure_field with pure sh/awk, fix HTTP status parsing
Admin
2026-03-04 14:00:31 +05:00
-
9906c7d862
fix(pb-init): add user_id field migration for progress collection
Admin
2026-03-04 13:49:55 +05:00
-
06feb91f4f
feat(ui): add homepage with Continue Reading, Recently Updated, and stats
Admin
2026-03-04 12:55:03 +05:00
-
5a7751e6d1
fix(scraper): replace glibc binary with npm single-file-cli on node:22-alpine
Admin
2026-03-04 12:54:51 +05:00
-
555973c053
feat(browse): add SingleFile browse-page snapshot cache via MinIO
Admin
2026-03-04 10:42:26 +05:00
-
c2d6ce1c5b
feat(ui): merge Browse and Ranking into a unified Discover page
Admin
2026-03-04 10:11:22 +05:00
-
8edad54b10
feat(progress): associate progress with logged-in user for cross-device sync
Admin
2026-03-04 09:51:11 +05:00
-
48d8fdb6b9
feat: udpate minio endpoint env name
Admin
2026-03-04 01:19:31 +05:00
-
1b05b6ebc6
fix(audio): sign presigned audio URLs with public MinIO endpoint
Admin
2026-03-04 01:15:46 +05:00
-
cabdd3ffdd
fix(ui/minio): don't rewrite presigned URL host for server-side chapter fetches
Admin
2026-03-04 01:06:52 +05:00
-
f80b83309a
fix(ui): install prod deps in Docker runtime; add reindex endpoint for chapters_idx
Admin
2026-03-04 00:59:36 +05:00
-
49ba2c27c2
fix(ui/books): handle null genres field in parseGenres
Admin
2026-03-04 00:51:58 +05:00
-
353d7397eb
fix(ui/books): guard null book fields in template; log null titles from PocketBase
Admin
2026-03-04 00:49:50 +05:00
-
89ff90629f
fix(ui/books): guard against null items from PocketBase listAll
Admin
2026-03-04 00:46:40 +05:00
-
f6febfdb5e
fix(ui/browse): use value prop on select elements to fix filter state
Admin
2026-03-04 00:40:46 +05:00
-
2c43907e34
feat(ui): add Ranking page with admin refresh action and nav link
Admin
2026-03-04 00:40:39 +05:00
-
0e868506ca
feat(server): track scrape jobs in scraping_tasks and expose GET /api/scrape/tasks
Admin
2026-03-04 00:40:32 +05:00
-
1b234754e8
feat(orchestrator): add Progress type and OnProgress callback
Admin
2026-03-04 00:40:24 +05:00
-
041099598b
feat(storage): add scraping_tasks collection and Store interface methods
Admin
2026-03-04 00:40:17 +05:00
-
333c8ad868
fix(scraper): prepend base URL for relative cover images in metadata scrape
Admin
2026-03-04 00:40:04 +05:00
-
d16ae00537
fix(config): align env var names with docker-compose (POCKETBASE_ADMIN_EMAIL/PASSWORD)
Admin
2026-03-03 23:56:06 +05:00
-
d16313bb6c
feat(observability): log pocketbase_url and pocketbase_email at startup
Admin
2026-03-03 23:53:55 +05:00
-
1bab7028c6
fix: remove name on libnovel ui
Admin
2026-03-03 23:07:01 +05:00
-
6520fb9a50
chore(infra): remove static_books volume from scraper service
Admin
2026-03-03 22:49:05 +05:00
-
7acf04fb9f
fix(storage): surface all silent errors with structured logging
Admin
2026-03-03 22:31:14 +05:00
-
c2bcb2b0a6
feat: update port on broswerless deployment
Admin
2026-03-03 20:49:42 +05:00
-
cfd893d24b
perf(scraper): switch chapter list to direct HTTP, remove Browserless dependency
Admin
2026-03-03 20:46:22 +05:00
-
cff0c78b4f
perf(scraper): use direct HTTP for chapter text fetching, bypass Browserless
Admin
2026-03-03 20:40:01 +05:00
-
d89cefe975
fix(auth): add Bearer prefix to PocketBase Authorization header
Admin
2026-03-03 20:15:44 +05:00
-
a0344b36d7
feat(infra): add pb-init sidecar to create PocketBase collections on startup
Admin
2026-03-03 20:09:25 +05:00
-
af3c487afb
feat(e2e): use direct HTTP for chapter scraping, cap TTS at 200 chars
Admin
2026-03-03 20:02:15 +05:00
-
b8d4d94b18
refactor(ranking): replace blob cache with per-item PocketBase storage
Admin
2026-03-03 19:37:49 +05:00
-
56bf4dde22
fix(auth): update PocketBase v0.23+ auth endpoint and rename users collection
Admin
2026-03-03 16:59:25 +05:00
-
2f0857be45
test: add integration tests for storage, server, and scrape+store flows
Admin
2026-03-03 14:54:43 +05:00
-
bf5774d8d0
feat(ui): add structured JSON logging to all server-side routes and lib
Admin
2026-03-03 14:34:48 +05:00
-
5131ae0bc4
feat(ui): update nav — show Browse link, username, and Sign out when logged in
Admin
2026-03-03 14:03:32 +05:00
-
9fa0776258
feat(ui): add /browse page and /api/scrape proxy route
Admin
2026-03-03 14:03:27 +05:00
-
f265d9d020
feat(scraper): add GET /api/browse and GET /api/scrape/status endpoints
Admin
2026-03-03 14:03:19 +05:00
-
3c26dfe2c0
feat(auth): add user authentication with roles, HMAC-signed cookies, and login/register UI
Admin
2026-03-03 14:03:11 +05:00
-
09e90d2ab0
feat: play cached TTS audio immediately on auto-start if already generated
Admin
2026-03-03 13:46:37 +05:00
-
1820fa7303
chore: make browserless port and UI port configurable via env vars
Admin
2026-03-03 13:32:05 +05:00
-
38e400a4c7
feat(scraper): remove HTMX UI — delete ui.go, extract helpers.go, drop goldmark dependency
Admin
2026-03-02 22:03:36 +05:00
-
cb90771248
refactor(scraper): rename /ui/audio*, /ui/chapter-text routes to /api/ namespace
Admin
2026-03-02 22:01:52 +05:00
-
59b1cfab1d
chore: add all missing port and URL env vars to .env.example
Admin
2026-03-02 22:00:45 +05:00
-
f95ad3ed29
feat(ui): proxy audio generation and streaming through SvelteKit, fix hardcoded scraper URL in AudioPlayer
Admin
2026-03-02 22:00:13 +05:00
-
e4c4f8de66
feat(ui): wire SvelteKit into docker-compose with ui service and env vars
Admin
2026-03-02 21:43:32 +05:00
-
4f84bd29c9
feat(ui): add audio player component, presign API route, and reading progress tracking
Admin
2026-03-02 21:41:20 +05:00
-
6bf79ab392
feat(ui): add chapter reader page with SSR markdown rendering from MinIO
Admin
2026-03-02 21:39:11 +05:00
-
4ae6f0ab42
feat(ui): add book list page and book detail page with chapter index
Admin
2026-03-02 21:37:32 +05:00
-
33e2a4dc01
feat: add MinIO presign endpoints to scraper API and SvelteKit presign helper
Admin
2026-03-02 21:35:27 +05:00
-
cb4be0848f
feat(ui): add server-side PocketBase client and session cookie hook
Admin
2026-03-02 21:32:20 +05:00
-
2f948f2a50
feat(ui): scaffold SvelteKit app with Tailwind v4, adapter-node, zinc/amber theme
Admin
2026-03-02 21:30:50 +05:00
-
baab66823d
fix: remove container names for name collisions
Admin
2026-03-02 20:08:46 +05:00
-
11d2eaa0e5
chore: trigger deploy
Admin
2026-03-02 19:56:09 +05:00
-
f28de2195d
fix: always autoplay after generation and resume TTS on HTMX chapter swap
Admin
2026-03-02 19:43:48 +05:00
-
9388a355e5
fix: show paused state instead of error when autoplay policy blocks play()
Admin
2026-03-02 19:18:28 +05:00
-
1c547519e8
fix: speed controls local playbackRate only, TTS generation always uses speed 1
Admin
2026-03-02 18:50:46 +05:00
-
9c115f00c4
chore: remove kokoro from compose, make host ports env-configurable
Admin
2026-03-02 15:13:26 +05:00
-
1536c7dad1
fix: use audio.autoplay flag to unblock autoplay policy on chapter auto-advance
Admin
2026-03-02 15:13:24 +05:00
-
5ac89da513
Steps 11-12: migrate chapter + book page reading-progress JS from localStorage to /api/progress
Admin
2026-03-02 14:52:01 +05:00
-
af86c6f96f
Step 10: migrate home page reading-progress JS from localStorage to /api/progress
Admin
2026-03-02 14:51:07 +05:00
-
da4a182f85
Step 9: add session cookie + /api/progress GET/POST/DELETE endpoints
Admin
2026-03-02 14:47:58 +05:00
-
18e76c9668
steps 6-8: wire HybridStore into orchestrator, server, and main
Admin
2026-03-02 14:44:02 +05:00
-
9add9033b9
feat(v2): add internal/storage package with MinIO + PocketBase clients and Store interface
Admin
2026-03-02 14:34:25 +05:00
-
66d8481637
chore(v2): add minio-go/v7 dependency
Admin
2026-03-02 14:31:36 +05:00
-
7f92a58fd7
chore(v2): add PocketBase and MinIO services to docker-compose
Admin
2026-03-02 14:30:47 +05:00
-
-
093e627a0e
fix: restore missing generateAudio, settingsPanel, chapterListPanel DOM refs removed in cleanup
Admin
2026-03-02 14:28:10 +05:00
-
90a16a7223
feat: autoplay uses full page navigation, auto-starts TTS on arrival
Admin
2026-03-02 14:19:21 +05:00
-
412b0fb478
fix: settings panel closed by default, closes on click outside
Admin
2026-03-02 14:10:21 +05:00
-
0a479cfe22
feat: replace native voice select with custom styled dropdown
Admin
2026-03-02 14:05:24 +05:00
-
92f900a8a9
fix: seek-track and seek-times match chapter width on all devices
Admin
2026-03-02 14:01:34 +05:00
-
b61e1a4212
fix: align seek-track and seek-times with chapter content width on desktop
Admin
2026-03-02 14:00:56 +05:00
-
6e0041ea01
feat: settings panel becomes native-style bottom sheet on mobile with drag-to-expand/dismiss
Admin
2026-03-02 13:57:29 +05:00
-
3e74019a5e
fix: seek-track 90% width, seek-times 95% width, both margin auto
Admin
2026-03-02 13:54:47 +05:00
-
d300714333
feat: replace hourglass emoji with animated SVG spinner in generating state
Admin
2026-03-02 13:46:09 +05:00
-
e0265db7a8
feat: replace speed slider with preset buttons, replace voice grid with dropdown
Admin
2026-03-02 13:44:06 +05:00
-
1cdc82249c
fix: replace unicode gear with SVG icon, increase chapter title size in header
Admin
2026-03-02 13:19:41 +05:00
-
ce4b904e62
fix: slim seek bar, scrollable settings panel, speed+toggles first then voices
Admin
2026-03-02 13:17:41 +05:00
-
c08da7ef54
fix: cap voice grid height so speed/toggles remain visible in settings panel
Admin
2026-03-02 13:09:48 +05:00
-
9d01ea1ee3
fix: hide idle badge by default, remove duplicate next-idle badge, remove chapter numbers under nav arrows
Admin
2026-03-02 13:07:00 +05:00
-
c717fcfe94
fix: settings panel flex layout — voice grid scrolls, speed/toggles always pinned at bottom
Admin
2026-03-02 13:03:06 +05:00
-
82d78bedb2
fix: center settings panel vertically on mobile, scrollable with max-h cap
Admin
2026-03-02 13:00:17 +05:00