-
v4.1.9
StableAll checks were successfulreleased 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
Stablereleased 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
- Remove non-root user from pocketbase Docker image; the existing pb_data
-
v4.1.1
Stablereleased 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
- Add wget to pocketbase Alpine image so the docker-compose healthcheck
-
v4.1.0
Stablereleased this
2026-04-15 11:06:27 +05:00 | -533 commits to main since this releaserelease.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
Stablereleased this
2026-04-14 18:04:10 +05:00 | -530 commits to main since this releaseAdds 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
Stablereleased 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
- Add bookstore.NotificationStore interface and wire it directly to *storage.Store
-
v2.6.93
Stablereleased this
2026-04-13 21:14:33 +05:00 | -524 commits to main since this releaseThe {#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
Stablereleased this
2026-04-13 21:08:51 +05:00 | -523 commits to main since this releaseDownloads
-
v2.6.91
Stablereleased this
2026-04-13 19:57:01 +05:00 | -522 commits to main since this releaseDownloads
-
v2.6.89
Stablereleased this
2026-04-13 10:33:02 +05:00 | -520 commits to main since this releaseDownloads