Changelog

August 13, 2026

Preview links keep working through long review sessions

Preview cookies in Curvenote Theme are now bounded, self-pruning, and scoped only to preview routes, so heavy review sessions no longer accumulate cookies until the browser’s request-header limit rejects the next click. Alongside that, the openRxiv Labs reader gates its cross-reference JSON endpoint against casual scraping without breaking hover cards, JATS ingestion picks up more of the metadata real preprints ship with, and Curvenote Reader stabilizes figure caption “Show more” and the Jupyter Play icon.

Curvenote Reader

Steadier figure captions and cleaner Jupyter previews. Figure caption “Show more” no longer flickers at the truncation edge, and the toggle no longer appears for short captions that contain inline math — so long captions expand cleanly and short captions stop offering a control they don’t need. Embedded Jupyter previews also render a stable Play icon: the server-rendered markup and the client-hydrated markup now match, so the icon no longer briefly redraws itself on load.

Figure 1:A long figure caption expands and collapses in place: “Show more” holds steady at the truncation edge, so readers can open the full caption without the control flickering under the cursor.

openRxiv Labs — Curvenote Reader

openRxiv Labs

The openRxiv Labs reader (https://reader.openrxivlabs.org), which serves bioRxiv and medRxiv, is built on Curvenote Reader. Updates here reach real readers on those sites.

The article JSON endpoint stops being a scrape target. The article JSON endpoint that powers hover-card cross-references is now gated. Scripted fetch() calls from hover cards and identified Curvenote clients continue to be served, while top-level navigation (pasting the .json URL into the address bar) and bare HTTP clients get a 403.

JATS ingestion covers more of what real preprints ship with. The JATS pipeline now handles additional author-email shapes and the equal_contributor attribute on contributor blocks, normalizes subject strings so downstream faceting sees a consistent form regardless of source-XML variation, and accepts tables that appear outside a <table-wrap> container instead of dropping them. The net effect is that more preprints render correctly on first ingest, with fewer authors missing metadata and fewer articles missing tables.

Curvenote Theme

Preview links stop silently locking editors out. Editors reviewing many submissions used to accumulate one preview cookie per work, and the browser’s per-domain cookie limit would eventually reject the request before it reached Theme — a hard-to-diagnose failure that only surfaced after enough previews had been opened. Preview cookies now expire with the token they carry, are scoped to the caller’s preview route prefix so they no longer ride along on unrelated asset requests, and are capped per browser under an LRU policy. The cap defaults to a sensible fifteen and can be tuned per site via auth.preview.cookieLimit in the app config.