- Docs: link the README back to fireball1725.ca (#58)
- Fix(providers): don't collapse distinct editions in book-search dedup (#47)
- Feat(providers): add ISFDB metadata provider (#46)
- Drop the cancelled Plus tier from the README, add the Discord (#60)
- Move to the shared workflows, and gain an rc channel (#61)
- Stop the formatter arguing with generated and aligned files (#62)
- Stop checking indentation (#63)
- Deploy rc and stable to the homelab automatically (#64)
- Purge finished job history automatically (#68)
- Add AGENTS.md for AI coding agents (#69)
- Carry reading progress through a CSV import (#70)
- Strip a pasted Bearer prefix from the Hardcover API key (#71)
- Browse across libraries, and report the server's components (#72)
- Zero-fill the fixed facet vocabularies, and count suggestions (#74)
- Stop seeding a Favourites shelf on every new library (#75)
- Remove the seeded Favourites shelf on upgrade (#76)
- Fix every reading save failing since 5 August (#77)
- Re-copy the shared editorconfig (#78)
- Add a Support section with Discord and Ko-fi (#79)
- Move to the tier schema: copies, work-level reading state, and lists (#81)
- Correct a logged reading session with PATCH /sessions/{id} (#82)
- Filter and count by any list the caller can see (#83)
- Count a selected list correctly, and only for whoever may see it (#84)
- Chore(deps): Bump golang from 1.26-alpine to 1.27-alpine (#80)
- Revert the golang 1.27-alpine build image bump (#85)
- Stop dropping reading progress the iOS client sends (#86)
- List the lists that hold a book (#87)
- Lists that stay deleted, filter by author, and sit where each person put them (#88)
- Missing volumes become real books, one genre vocabulary, and merging duplicate authors (#89)
- Promoting a series twice at once promotes it once (#90)
- A job kind that is already running is not started again (#91)
- A curly apostrophe sorts where a straight one does (#92)
- Send an empty list of sync ops, not null (#93)
- Reference the OpenAPI spec relatively so the docs work behind a proxy (#94)
- Return the reading date that was sent, whatever zone the server runs in (#95)
- Chore(deps): Bump github/codeql-action from 3 to 4 in the ci-actions group across 1 directory (#67)
- Chore(deps): Bump the go-deps group across 1 directory with 5 updates (#73)
- Recover from a failed migration without anyone editing the database by hand (#97)
- Save a book that has a publication date again, and survive a blank reading status (#98)