root 5bc69ad9ce
All checks were successful
Release / Test backend (push) Successful in 6m5s
Release / Test UI (push) Successful in 1m44s
Release / Build and push images (push) Successful in 7m6s
Release / Deploy to prod (push) Successful in 3m47s
Release / Deploy to homelab (push) Successful in 8s
Release / Gitea Release (push) Successful in 44s
fix(cfai): handle Llama 4 Scout direct JSON array response in Generate()
Llama 4 Scout returns the model output directly as a JSON array in the
'response' field rather than as a plain string or [{"generated_text":"..."}].
The old fallback parsed it as [{"generated_text":""}] (Go JSON ignores
unknown fields) and silently returned an empty string — causing chapter-names
jobs to finish with results:null in the payload despite items_done matching
items_total.

Fix: only accept the generated_text fallback when the value is non-empty;
otherwise return the raw JSON bytes as a string so callers (parseChapterTitlesJSON
etc.) can extract what they need.
2026-04-24 18:24:25 +05:00

LibNovel

Self-hosted audiobook platform. Go backend + SvelteKit UI + MinIO/PocketBase/Meilisearch.

Requirements

Setup

doppler login
doppler setup   # project=libnovel, config=prd

Usage

just up          # start everything
just down        # stop
just logs        # tail all logs
just log backend # tail one service
just build       # rebuild images
just restart     # down + up
just secrets     # view/edit secrets

Secrets

Managed via Doppler (project=libnovel, config=prd). No .env files.

To add or update a secret:

doppler secrets set MY_SECRET=value
Description
No description provided
Readme 88 MiB
v4.5.5 Latest
2026-04-27 11:46:23 +05:00
Languages
Go 99.4%
Dockerfile 0.6%