Changelog

Site DOI registration takes shape

Site DOI registration is taking shape: the configuration a site needs is in place, with Crossref validating a prefix and its depositor role before it is saved, while registering DOIs for submissions on top of it is still in progress. Tags update instantly on the submission details page, and readers on openRxiv Labs get an advanced edge cache in front of every article artifact.

Curvenote SCMS

Site admins get the groundwork for site DOI registration: a per-site DOI config, admin-only site:doi:* scopes, and a validated Crossref lookup client that checks the prefix (and the depositor role bound to it) before anything is saved. On top of that foundation, a Site → DOI Registration setup flow arrives — pick a Curvenote-managed or your own Crossref prefix, bind the depositor role, and see Crossref validate the prefix before it commits. System admins get separate link, unlink, and reset actions in an advanced card. What ships now is the configuration a site needs before DOIs can be registered; registering them for submissions is still being built, so expect this area to keep moving over the coming weeks.

The Site → DOI Registration page before setup: a site registers DOIs under Curvenote’s prefix, included with every site and needing no Crossref account, or under its own prefix and Crossref membership on an enterprise plan.

Figure 1:The Site → DOI Registration page before setup: a site registers DOIs under Curvenote’s prefix, included with every site and needing no Crossref account, or under its own prefix and Crossref membership on an enterprise plan.

Alongside the DOI work, submission tags get two quality-of-life passes: the Tags catalog page now shows a Submissions count per tag and states the count on the delete-confirmation dialog, so an editor sees how many submissions a delete will affect; and tag assignments on the submission details page now update optimistically — chips flip immediately, and errors surface a specific toast while the request is still in flight. For extension authors, jobs expose a new onJobPatch hook on PATCH /api/v1/jobs/:id so external ingestion pipelines can map milestone updates onto work-version metadata without touching core loaders, and a build-tooling fix lets extensions that carry their own database schema pick up schema edits on rebuild.

Curvenote Sites

Site admins pick up the DOI Registration setup flow as a new Site → DOI Registration route with cards for status, account (owning prefix + depositor email), registration-method choice, and role admin, plus system-admin-only link, unlink, and reset actions in a separate advanced card that stays hidden on Curvenote-managed sites. Enterprise sites get an “own DOI prefix” unlock on Site → Advanced. The route sets registration up rather than performing it — depositing DOIs for submissions comes in a later release. On the submissions side, tag changes on the details page now update optimistically — chips flip immediately, errors surface a specific toast while the request is still in flight, and tag-not-found messages are reworded for the UI. The Tags catalog page shows a Submissions column and states the count on the delete dialog so editors know what a delete will affect.

Curvenote Reader

openRxiv Labs — Curvenote Reader

openRxiv Labs — public partner site

The openRxiv Reader is a Curvenote-Reader-powered surface for openRxiv Labs.

Readers on openRxiv Labs get an advanced edge cache in front of every article artifact. A setting now flips both the file and image routes from proxying every byte through the app to redirecting the browser to a short-lived signed URL on an edge in front of private storage; the image route also reads its original through the edge, so the “big original fetched repeatedly to produce small thumbnails” pattern collapses to one storage read per rotation window. Containers stay private, signatures are short-lived, and browsers can cache the redirected URLs — signatures are quantized to a rotation window rather than minted per request, so every server produces the same URL for the same blob and repeat visits never reach origin. Individual routes can be kept on the proxying path if their address-bar host bothers people; turning either redirect off does not turn off the edge for image conversion sources, so the biggest saving survives. Inert until the ops config is set, so this ships as an unlock — rollout is on ops’s schedule.

Curvenote CLI

The curvenote@0.17.4 release is a transitive dependency bump only, on the back of a public-API shape change in @curvenote/common. No new user-facing CLI behavior.

Editorial tags land on submissions

Submissions on Curvenote SCMS now carry editorial tags: a site-scoped catalog admins curate, addable and removable from the submission details page, visible on the listing, filterable from the toolbar, and carried through to the published work payload for downstream tools. Rendering picks up a broad quality pass across every Curvenote-Reader-powered site — configurable site fonts, correct Google Scholar dates, no more layout shifts when an inline banner loads, and a hydration fix that stops React re-rendering the whole page on visits to articles with a mid-paragraph blockquote.

Curvenote SCMS

Editorial tags on submissions. Each site now curates its own list of editorial tags and puts them to work on submissions. Admins manage the catalog on a new admin-only Tags page — list, create, rename the display label, delete — with deletes cascading to remove the tag from any submissions it was on. From the submission details page, adding or removing a tag is a one-click popover; the picker creates the tag in the catalog on first use if it is not there yet, and the timeline records one entry per real change so double-clicks and second tabs no longer noise up the log. The submissions listing gains a dedicated tags row per submission with an “Add tags” empty state that opens the picker inline, and the site-admin listing toolbar picks up a Tags multi-select chip so editors can filter the queue by tag combinations. The site’s tag catalog is returned on the site endpoint, and each published work carries the tags actually applied to it — a narrow public shape (name and label) with no internal ids leaking, so the tags travel to downstream tools without exposing catalog identity.

Tags on a submission’s details page: applied tags sit in their own row, the picker searches the site catalog or creates a tag on first use, the timeline records each tag change, and a Tags entry in the admin sidebar opens the catalog.

Figure 1:Tags on a submission’s details page: applied tags sit in their own row, the picker searches the site catalog or creates a tag on first use, the timeline records each tag change, and a Tags entry in the admin sidebar opens the catalog.

Multi-step create-form flows unblocked. Multi-step work-creation forms are no longer bounced back to step one when the second step lives on a different path. The work create option that names the form’s paths now accepts a list of path fragments, so the draft-only work layout guard recognizes every step of a multi-step flow as part of the same form.

Curvenote Sites

Editorial tags on submissions. The tags experience described above is fully wired on Curvenote Sites’ site-admin routes: the submissions listing shows an editorial-tags row per submission, the listing toolbar carries the new Tags multi-select filter chip, and the submission details page exposes the “Add tags” popover — anchored to the tag row (not to any individual chip) so it always opens in the same place, whichever chip or the add control opened it. The site-admin sidebar gains a Tags entry that goes to the new catalog page.

Curvenote Reader

Configurable site fonts. A site can now choose its own fonts on its theme configuration, self-hosted or served from Google, across four semantic slots — headings, body text, small text (footnotes, captions, backmatter, outline), and code. UI chrome deliberately stays on the system stack, which is Roboto on Android and ChromeOS and costs no bytes, so the interface never feels foreign against a site’s chosen fonts. Font styles are rendered server-side so there is no flash of the fallback family, self-hosted files are preloaded, Google slots are fetched from a single combined stylesheet link, and metric overrides (size-adjust, ascent-override) keep the page from reflowing when a face swaps in.

Correct Google Scholar dates on every article. Every article now emits a correctly formatted Google Scholar publication date. A bug had built citation_publication_date and citation_online_date from the wrong parts of the date — the day-of-week where the day-of-month should have been.

The article bar and the meta tags now agree with what publishing resolved. The article bar was reading the manifest’s raw date and doi — whatever the author typed into the content, which publishing never updates — while the same page’s <meta> tags and analytics resolved the platform’s published date and DOI. A revised article could show one date to readers and another to crawlers and citation tools. The bar now takes the same resolved values the metadata already uses, so the visible date and DOI and their machine-readable counterparts stay in step.

A hardening pass on link colors. Link colors in the Reader now come from --link and --link-hover design tokens instead of hard-coded blue utilities, so a site can restyle them from one place. The default is body-text color (black on white, white on black) with a 60%-opacity underline that goes full strength on hover — a visible change on cross-references, citations, footnote markers, the figure “Show more” toggle, and the link cards, all of which used to read as bright blue and now read as plain text until a site opts into a color. Prose links inside article text follow the token too — the typography plugin had been ignoring it.

Lightbox captions readable on the dark backdrop. Citations and links inside a lightbox caption used to inherit the near-black link color of a light-mode page and vanish into the black backdrop. The lightbox dialog now carries dark-mode tokens end to end, so every caption’s citations and links read against the dark background regardless of the page theme.

Wider margins on centered article layouts. At large viewports, content_grid: center now leaves more room either side of the body column, on every Curvenote-Reader-powered site rather than only Curvenote Theme sites.

openRxiv Labs — Curvenote Reader

openRxiv Labs — public partner site

The openRxiv Reader is a Curvenote-Reader-powered surface for openRxiv Labs, live at https://reader.openrxivlabs.org.

Readers on openRxiv Labs pick up every Curvenote Reader change above — correct Google Scholar dates, the hydration fix for mid-paragraph blocks, reserved space for inline banners, working breakout containers, readable lightbox captions on dark backdrops, and wider centered page margins.

Curvenote Theme

A directly customizable site footer. The shared journal footer can now be adjusted from a site’s own theme configuration, for smaller overrides that do not need the footer hidden altogether.

A reworked Website & Design page for Curvenote Sites

Setting up a site’s identity in Curvenote Sites is now a single, comfortable sitting: the Website & Design page has been reworked around a full-height settings panel, a new footer editor, and a live preview you can click to jump straight to the field behind any region.

Curvenote Sites

A reworked Website & Design page. Configuring a site’s identity is finally comfortable to do in one sitting. The settings panel is now full-height and scrolls on its own, unsaved changes stay tracked per accordion section with a save / discard / keep-editing prompt when navigating away, and every save confirms with a toast.

Website & Design for the SciPy Proceedings site: the full-height settings panel on the right holds the dark-mode logo, tagline, social links, and footer link columns, while the live preview beside it renders the real footer those fields produce.

Figure 1:Website & Design for the SciPy Proceedings site: the full-height settings panel on the right holds the dark-mode logo, tagline, social links, and footer link columns, while the live preview beside it renders the real footer those fields produce.

A new Footer editor. Upload light and dark footer logos, set a tagline, drag-and-drop social links whose icons are inferred from the URL, and lay out up to three drag-and-drop footer link columns whose links can be reordered or moved between columns. Empty links, empty columns, and blank social links are flagged inline on the field, on the section header, and on the Save button, and are enforced on the server as well.

A clickable live preview. The preview sits inside a browser frame and renders a real footer — logo, tagline, social icons, link columns, and the Curvenote brand bar — mirroring the theme’s journal footer. Click any region to jump to the matching field in the panel. Info tooltips describe how each field is used, and a new favicon upload rounds out the site-identity settings.