• 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