Commit Graph

  • 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