Skip to content

feat(opds): add catalog navigation and search - #152

Draft
phildenhoff wants to merge 1 commit into
opds-7-serverfrom
opds-8-search
Draft

phildenhoff wants to merge 1 commit into
opds-7-serverfrom
opds-8-search

Conversation

@phildenhoff

@phildenhoff phildenhoff commented Sep 18, 2026 •

Copy link
Copy Markdown
Member

Why

Until now the catalog was a flat root feed plus acquisition pages: a reader could page through books but couldn't browse by author, series, or tag, and there was no search at all. KOReader in particular expects an OpenSearch description before it will offer its search UI.

What changed

  • Navigation feeds for all books, recently modified, and unread, plus author/series/tag facet feeds with per-facet book counts, each paginating into the existing acquisition machinery. The root is a proper navigation feed now.
  • A Genres entry exists in the navigation but returns an empty facet for now — it lights up when the canonical-genres layer lands on top of this.
  • /opds/search?q=… backed by a new libcalibre text query, capped at 200 characters, and /opds/opensearch.xml so readers can discover it.
  • libcalibre gains the facet listings and filtered book-page queries behind BookQuery.

Validation: the stack tip runs 62 citadel-opds tests + 348 workspace tests, all green. The headless process test now also walks the navigation feed and /opds/all.

Stack: #146 → #147 → #148 → #149 → #150 → #151 → #152 (this) → #153 → #154 → #155

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.69%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.69%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.69%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 83.85%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant