• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ThePalaceProject / web-patron / 29875491401
82%

Build:
DEFAULT BRANCH: main
Ran 21 Jul 2026 10:58PM UTC
Jobs 1
Files 20
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Jul 2026 10:56PM UTC coverage: 81.303% (-7.2%) from 88.501%
29875491401

push

github

web-flow
Experimental canonical resource URL support POC (PP-3760) (#164)

## Description

- Adds an experimental cross-library item landing page at
`/{landing-slug}/{workId}` (default slug: `_item_`), giving each work a
canonical URL that is not tied to any one library. The page lets the
patron choose a library (with type-ahead filtering), confirms the item
is available there, and then opens the item's book page in that
library's catalog.
- Deployments with a single library skip the selector and redirect
straight to the item's book page.
- The landing slugs are configurable at runtime via a new
`item_landing_slugs` config option: multiple item-level resource slugs
can be active at once (mainly to support migrations from one to
another), an empty list disables the page, entries colliding with
reserved Next.js path segments are rejected, and a library whose slug
collides with a landing slug is kept but logged as shadowed.
- Adds a `GET /api/catalog-url` endpoint that resolves a library's OPDS
catalog root from its authentication document (served from the existing
in-process cache).
- Selector resilience: selection is blocked while a lookup is in flight,
lookups are bounded by a 15-second timeout and can be canceled with
Escape, and all failure states (library unreachable, library
unavailable, item not in collection, navigation failure) share one
dismissible error panel with "Back to search" and "OK" actions that
manage focus.

## Motivation and Context

Proof of concept. OPDS entry URLs are library-specific, so there has
been no stable way to link to an item without already knowing the
patron's library. A canonical item-level URL can be shared or referenced
externally. The landing page bridges it to whichever library the patron
uses.

[Jira PP-3760]

## How Has This Been Tested?

- Manual testing in local dev environment.
- New / updated tests for the new functionality.
- All tests and checks pass locally.
- [CI checks /
build](https://github.com/ThePalaceProje... (continued)

286 of 383 branches covered (74.67%)

Branch coverage included in aggregate %.

45 of 46 new or added lines in 4 files covered. (97.83%)

488 of 569 relevant lines covered (85.76%)

29.18 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
96.64
-0.07% src/server/appConfig.ts
Jobs
ID Job ID Ran Files Coverage
1 29875491401.1 21 Jul 2026 10:58PM UTC 20
81.3
GitHub Action Run
Source Files on build 29875491401
  • Tree
  • List 20
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 1e86fc6a on github
  • Prev Build on main (#29870582868)
  • Next Build on main (#29876734992)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc