• v4.3.6 1f987be75a

    v4.3.6
    Some checks failed
    Release / Test backend (push) Successful in 1m7s
    Release / Test UI (push) Successful in 1m29s
    Release / Build and push images (push) Successful in 4m30s
    Release / Deploy to prod (push) Failing after 19s
    Release / Deploy to homelab (push) Successful in 13s
    Release / Gitea Release (push) Successful in 27s
    Stable

    gitea-actions released this 2026-04-16 21:51:58 +05:00 | -556 commits to main since this release

    Previously: 'docker compose up -d' recreated all services with changed images,
    causing dependent services (pocketbase, minio, redis, etc.) to restart and
    wait for healthchecks, leading to longer downtime.

    Now: Use '--no-deps' flag to restart ONLY the services with updated images
    (backend, runner, ui, caddy, pocketbase) without touching their dependencies.

    Benefits:

    • Faster deployments (~15-20s vs ~60s)
    • No unnecessary restarts of infrastructure services
    • Reduced downtime for the application

    The final 'docker compose up -d --remove-orphans' ensures any orphaned
    containers are cleaned up and all services are in the desired state.

    Downloads
  • v4.3.5 7a4008bd9c

    v4.3.5
    All checks were successful
    Release / Test backend (push) Successful in 1m2s
    Release / Test UI (push) Successful in 58s
    Release / Build and push images (push) Successful in 4m34s
    Release / Deploy to prod (push) Successful in 2m24s
    Release / Deploy to homelab (push) Successful in 15s
    Release / Gitea Release (push) Successful in 20s
    Stable

    gitea-actions released this 2026-04-16 21:35:19 +05:00 | -555 commits to main since this release

    • 'Check ui' → 'Test UI' (consistent with 'Test backend')
    • 'Docker' → 'Build and push images' (more descriptive of what it does)

    Job IDs remain unchanged (test-backend, check-ui, docker) for stability.

    Downloads
  • v4.3.3 9c3b235382

    v4.3.3
    Some checks failed
    Release / Test backend (push) Successful in 1m1s
    Release / Check ui (push) Successful in 1m2s
    Release / Docker (push) Successful in 9m22s
    Release / Deploy to prod (push) Successful in 2m32s
    Release / Gitea Release (push) Successful in 1m37s
    Release / Deploy to homelab (push) Failing after 5s
    Stable

    gitea-actions released this 2026-04-16 20:22:40 +05:00 | -551 commits to main since this release

    CRITICAL FIX: The homelab server runs the full stack (runner + GlitchTip +
    observability tools), not just the runner. Copying homelab/runner/docker-compose.yml
    would have destroyed all other services.

    Changed: homelab/runner/docker-compose.yml → homelab/docker-compose.yml

    Downloads
  • v4.4.0 da37b1be88

    v4.4.0
    Some checks failed
    Release / Test backend (push) Successful in 1m1s
    Release / Check ui (push) Successful in 1m0s
    Release / Docker (push) Successful in 11m19s
    Release / Deploy to prod (push) Successful in 2m10s
    Release / Deploy to homelab (push) Failing after 7s
    Release / Gitea Release (push) Successful in 2m25s
    Stable

    gitea-actions released this 2026-04-16 20:20:16 +05:00 | -550 commits to main since this release

    Content visibility:

    • Add visibility field to books ("public" | "admin_only"); new migration
      backfills all existing scraped books to admin_only
    • Meilisearch: add visibility as filterable attribute; catalogue/search
      endpoints filter to public-only for non-admin requests
    • Admin users identified by bearer token bypass the filter and see all books
    • All PocketBase discovery queries (trending, recommended, recently-updated,
      audio shelf, discover, subscription feed) now filter to visibility=public
    • New scraped books default to admin_only; WriteMetadata preserves existing
      visibility on PATCH (never overwrites)

    Author submission:

    • POST /api/admin/books/submit — creates a public book with submitted_by
    • PATCH /api/admin/books/{slug}/publish / unpublish — toggle visibility
    • SvelteKit proxies: /api/admin/books/[slug]/publish|unpublish
    • /api/books/[slug] endpoint for admin book lookup

    Frontend:

    • backendFetchAdmin() helper sends admin token on any path
    • Catalogue server load uses admin fetch when user is admin
    • /submit page: author submission form with genre picker and rights assertion
    • "Publish" nav link shown to all logged-in users
    • Admin catalogue-tools: visibility management panel (load book by slug, toggle)
    Downloads
  • v4.3.2 50a13447a4

    v4.3.2
    Some checks failed
    Release / Test backend (push) Successful in 1m2s
    Release / Check ui (push) Successful in 1m0s
    Release / Docker (push) Successful in 4m39s
    Release / Deploy to prod (push) Successful in 2m18s
    Release / Deploy to homelab (push) Failing after 4s
    Release / Gitea Release (push) Successful in 29s
    Stable

    gitea-actions released this 2026-04-16 19:17:13 +05:00 | -549 commits to main since this release

    Downloads
  • v4.3.1 d394ac454b

    v4.3.1
    All checks were successful
    Release / Test backend (push) Successful in 57s
    Release / Check ui (push) Successful in 59s
    Release / Docker (push) Successful in 4m26s
    Release / Gitea Release (push) Successful in 26s
    Release / Deploy to prod (push) Successful in 2m18s
    Stable

    gitea-actions released this 2026-04-16 14:36:47 +05:00 | -547 commits to main since this release

    • Remove redundant Skip/Read Now/Like buttons from desktop right panel
    • Main action buttons in center area remain visible on both mobile and desktop
    • Keyboard shortcuts hint still available at bottom
    • Cleaner UI with no repeated functionality
    Downloads
  • v4.3.0 f24720b087

    v4.3.0
    All checks were successful
    Release / Test backend (push) Successful in 57s
    Release / Check ui (push) Successful in 54s
    Release / Docker (push) Successful in 4m24s
    Release / Deploy to prod (push) Successful in 2m14s
    Release / Gitea Release (push) Successful in 27s
    Stable

    gitea-actions released this 2026-04-16 14:20:04 +05:00 | -546 commits to main since this release

    Book Info Page Improvements:

    • Add quick stats row (chapters, rating, readers)
    • Enhance author display with better typography
    • Improve genre tags with amber-branded pills
    • Add green badge for 'ongoing' status
    • Wrap summary in card with better styling
    • Enhance 'More' button with proper design
    • Improve StarRating component to show rating more prominently

    Discover Page Improvements:

    • Add progress bar showing completion through deck
    • Enhance keyboard shortcuts with visual kbd elements
    • Improve empty state with better visuals and CTA hierarchy
    • Enhance toast notifications with icons and color-coded backgrounds
    • Add auto-dismiss for toast (4s timeout)
    • Improve preferences modal button labels
    • Add undo functionality for last vote
    • Better stat display (X of Y remaining)

    All changes maintain consistency with LibNovel's design system.

    Downloads
  • v4.2.2 71a628673d

    v4.2.2
    All checks were successful
    Release / Test backend (push) Successful in 55s
    Release / Check ui (push) Successful in 1m3s
    Release / Docker (push) Successful in 4m26s
    Release / Deploy to prod (push) Successful in 2m38s
    Release / Gitea Release (push) Successful in 27s
    Stable

    gitea-actions released this 2026-04-16 13:00:50 +05:00 | -545 commits to main since this release

    • Bump all section headings to text-lg for visual hierarchy
    • Replace SVG book icon no-cover placeholders with first-letter avatars
      across Completed, Ready to Listen, Trending, Recommendations, Recently
      Updated, and From Following shelves
    • Highlight user's top genre pill in Browse by Genre strip
    • Add "View all → /catalogue?genre=…" link to Because You Read section
    Downloads
  • v4.2.1 5f5aac5e3e

    v4.2.1
    All checks were successful
    Release / Test backend (push) Successful in 54s
    Release / Check ui (push) Successful in 1m1s
    Release / Docker (push) Successful in 5m15s
    Release / Deploy to prod (push) Successful in 2m0s
    Release / Gitea Release (push) Successful in 26s
    Stable

    gitea-actions released this 2026-04-16 12:48:33 +05:00 | -544 commits to main since this release

    • Import: fix "1/1/1" date display (Go zero time.Time → show dash)
    • AI Jobs: guard fmtDate against zero-time dates
    • AI Jobs: add "Cancel all in-flight (N)" bulk action button
    • AI Jobs sidebar: show live running+pending count badge from layout
    • Notifications: add broadcast panel linking to push.libnovel.cc, relabel inbox section
    Downloads
  • v4.2.0 e65883cc9e

    v4.2.0
    All checks were successful
    Release / Test backend (push) Successful in 56s
    Release / Check ui (push) Successful in 58s
    Release / Docker (push) Successful in 8m2s
    Release / Deploy to prod (push) Successful in 1m52s
    Release / Gitea Release (push) Successful in 27s
    Stable

    gitea-actions released this 2026-04-16 12:34:55 +05:00 | -543 commits to main since this release

    • Persist audio filter in URL (?audio=1) via history.replaceState
    • Show total novel count in browse mode subtitle
    • Close filter panel automatically on Apply
    • Replace missing-cover SVG placeholder with styled first-letter avatar
    • Add forbidden scrape badge to list view (was missing, grid had it)
    • Carry audio param through applyFilters() navigation
    Downloads