Some checks failed
CI / UI (push) Failing after 22s
CI / Backend (push) Successful in 53s
Release / Test backend (push) Successful in 24s
Release / Check ui (push) Failing after 24s
Release / Docker / ui (push) Has been skipped
CI / Backend (pull_request) Successful in 25s
CI / UI (pull_request) Failing after 22s
Release / Docker / caddy (push) Successful in 56s
Release / Docker / backend (push) Successful in 1m38s
Release / Docker / runner (push) Successful in 3m14s
Release / Gitea Release (push) Has been skipped
- New /discover page with swipe UI: left=skip, right=like, up=read now, down=nope - Onboarding modal to collect genre/status preferences (persisted in localStorage) - 3-card stack with pointer-event drag, CSS fly-out animation, 5 action buttons - Tap card for preview modal; empty state with deck reset - Like/read-now auto-saves book to user library - POST /api/discover/vote + DELETE for deck reset - Discovery vote persistence via PocketBase discovery_votes collection - Fix duplicate books: dedup by slug in getBooksBySlugs - Fix WriteMetadata TOCTOU race: conflict-retry on concurrent insert Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>