• v4.1.9 b19af1e8f3

    v4.1.9
    All checks were successful
    Release / Test backend (push) Successful in 1m6s
    Release / Check ui (push) Successful in 1m4s
    Release / Docker (push) Successful in 8m43s
    Release / Deploy to prod (push) Successful in 2m37s
    Release / Gitea Release (push) Successful in 40s
    Stable

    gitea-actions released this 2026-04-15 21:35:24 +05:00 | -542 commits to main since this release

    • Remove UI build artifact upload/download steps (18 lines removed)
    • Remove .dockerignore manipulation workaround
    • Always build UI from source inside Docker (more reliable)
    • Remove PREBUILT arg from ui/Dockerfile and docker-bake.hcl

    This fixes the '/app/build not found' error in CI by eliminating the fragile
    artifact-passing mechanism. UI now builds fresh in Docker using build cache,
    same as local development.

    Downloads
  • v4.1.2 fc73756308

    v4.1.2
    Some checks failed
    Release / Test backend (push) Successful in 56s
    Release / Check ui (push) Successful in 1m59s
    Release / Docker (push) Successful in 7m49s
    Release / Deploy to prod (push) Failing after 33s
    Release / Gitea Release (push) Successful in 29s
    Stable

    gitea-actions released this 2026-04-15 19:00:21 +05:00 | -535 commits to main since this release

    • Remove non-root user from pocketbase Docker image; the existing pb_data
      volume was created by the previous root-running image so files are owned
      by root — running as a non-root appuser caused an immediate permission
      error and container exit
    • Increase healthcheck retries to 10 and add start_period=30s so migrations
      have time to run on first boot before liveness checks begin
    Downloads
  • v4.1.1 3f436877ee

    v4.1.1
    Some checks failed
    Release / Test backend (push) Successful in 1m6s
    Release / Check ui (push) Successful in 1m56s
    Release / Docker (push) Successful in 8m19s
    Release / Deploy to prod (push) Failing after 36s
    Release / Gitea Release (push) Successful in 22s
    Stable

    gitea-actions released this 2026-04-15 18:05:02 +05:00 | -534 commits to main since this release

    • Add wget to pocketbase Alpine image so the docker-compose healthcheck
      (wget http://localhost:8090/api/health) can actually run
    • Fix saveIfAbsent calling itself instead of app.Save(c) — was an
      infinite recursion that would stack-overflow on a fresh install
    Downloads
  • v4.1.0 812028e50d

    v4.1.0
    Some checks failed
    Release / Test backend (push) Successful in 5m39s
    Release / Check ui (push) Successful in 2m1s
    Release / Docker (push) Successful in 7m46s
    Release / Deploy to prod (push) Failing after 1m53s
    Release / Gitea Release (push) Successful in 35s
    Stable

    gitea-actions released this 2026-04-15 11:06:27 +05:00 | -533 commits to main since this release

    release.yaml:

    • Build and push kalekber/libnovel-pocketbase image on every release tag
    • Add deploy job (runs after docker): copies docker-compose.yml from the
      tagged commit to /opt/libnovel on prod, pulls new images, restarts
      changed services with --remove-orphans (cleans up removed pb-init)

    ci.yaml:

    • Validate cmd/pocketbase builds on every branch push

    Required new Gitea secrets: PROD_HOST, PROD_USER, PROD_SSH_KEY,
    PROD_SSH_KNOWN_HOSTS (see deploy job comments for instructions).

    Downloads
  • v4.0.0 0f9977744a

    v4.0.0
    All checks were successful
    Release / Test backend (push) Successful in 1m1s
    Release / Check ui (push) Successful in 2m12s
    Release / Docker (push) Successful in 6m30s
    Release / Gitea Release (push) Successful in 29s
    Stable

    gitea-actions released this 2026-04-14 18:04:10 +05:00 | -530 commits to main since this release

    Adds BACKEND_ADMIN_TOKEN env var (set in Doppler) as a required Bearer
    token for every admin route. Also fixes PocketBase filter injection in
    notification queries and wires BACKEND_ADMIN_TOKEN through docker-compose
    to both backend and ui services. Includes CLAUDE.md for AI assistant guidance.

    Downloads
  • v3.0.20260413-notifications
    All checks were successful
    Release / Test backend (push) Successful in 55s
    Release / Check ui (push) Successful in 2m0s
    Release / Docker (push) Successful in 7m19s
    Release / Gitea Release (push) Successful in 26s
    Stable

    gitea-actions released this 2026-04-13 21:19:07 +05:00 | -525 commits to main since this release

    • Add bookstore.NotificationStore interface and wire it directly to *storage.Store
      in Dependencies, bypassing the Asynq wrapper that caused Producer.(*storage.Store)
      to fail with a 500 on every notification endpoint when Redis is configured
    • Replace s.deps.Producer.(*storage.Store) type assertion in all 5 notification
      handlers with s.deps.NotificationStore (nil-safe, always works)
    • Fix PocketBase filter single-quote bug in ListNotifications, ClearAllNotifications,
      and MarkAllNotificationsRead (PocketBase requires double quotes for string values)
    Downloads
  • v2.6.93
    All checks were successful
    Release / Test backend (push) Successful in 49s
    Release / Check ui (push) Successful in 2m0s
    Release / Docker (push) Successful in 7m4s
    Release / Gitea Release (push) Successful in 28s
    Stable

    gitea-actions released this 2026-04-13 21:14:33 +05:00 | -524 commits to main since this release

    The {#await ... then} + {@const} IIFE pattern for assigning to $state
    variables stopped working reliably in Svelte 5.53+. Replaced with a
    proper $effect that awaits both streamed promises and assigns to state,
    which correctly triggers reactivity.

    Also: switch library page selection mode entry from long-press to a
    'Select' button in the page header.

    Downloads
  • v2.6.92
    All checks were successful
    Release / Test backend (push) Successful in 49s
    Release / Check ui (push) Successful in 1m55s
    Release / Docker (push) Successful in 7m23s
    Release / Gitea Release (push) Successful in 53s
    Stable

    gitea-actions released this 2026-04-13 21:08:51 +05:00 | -523 commits to main since this release

    Downloads
  • v2.6.91
    All checks were successful
    Release / Test backend (push) Successful in 47s
    Release / Check ui (push) Successful in 1m54s
    Release / Docker (push) Successful in 7m15s
    Release / Gitea Release (push) Successful in 27s
    Stable

    gitea-actions released this 2026-04-13 19:57:01 +05:00 | -522 commits to main since this release

    Downloads
  • v2.6.89
    All checks were successful
    Release / Test backend (push) Successful in 58s
    Release / Check ui (push) Successful in 1m59s
    Release / Docker (push) Successful in 6m24s
    Release / Gitea Release (push) Successful in 23s
    Stable

    gitea-actions released this 2026-04-13 10:33:02 +05:00 | -520 commits to main since this release

    Downloads