• v3-cleanup-20260411
    All checks were successful
    Release / Test backend (push) Successful in 4m12s
    Release / Check ui (push) Successful in 1m53s
    Release / Docker (push) Successful in 5m46s
    Release / Gitea Release (push) Successful in 35s
    Stable

    gitea-actions released this 2026-04-11 14:59:28 +05:00 | -492 commits to main since this release

    • Service worker (src/service-worker.ts) handles push events and
      notification clicks, navigating to the book page on tap
    • Web app manifest (manifest.webmanifest) linked in app.html
    • Profile page: push notification toggle (subscribe/unsubscribe)
      using the browser Notification + PushManager API with VAPID
    • API route POST/DELETE /api/push-subscription proxies to backend
    • Go backend: push_subscriptions PocketBase collection storage
      methods (SavePushSubscription, DeletePushSubscription,
      ListPushSubscriptionsByBook) in storage/store.go
    • handlers_push.go: GET vapid-public-key, POST/DELETE subscription
    • webpush package: VAPID-signed sends via webpush-go, SendToBook
      fans out to all users who have the book in their library
    • Runner fires push to subscribers whenever ChaptersScraped > 0
      after a successful book scrape
    • Config: VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT env vars
    • domain.ScrapeResult gets a Slug field; orchestrator populates it
    Downloads