Skip to content

Releases: internetarchive/openlibrary

deploy-2026-10-15-at-22-14

Choose a tag to compare

@RayBB RayBB released this 15 Oct 23:45
d52436c

What's Changed

  • Update actions/github-script action to v9 by @renovate[bot] in #13582
  • Update dependency Pillow to v12.3.0 [SECURITY] by @renovate[bot] in #13189
  • Update dependency python-multipart to v0.0.31 [SECURITY] by @renovate[bot] in #13172
  • Remove jQuery from admin.js by @RayBB in #13895
  • Fix 500 error in /authors/merge.json when an error has no JSON body by @RayBB in #13932
  • Add Server-Timing header to FastAPI responses by @RayBB in #13920
  • Public /tasks landing page with a recent-edits feed by @lokesh in #13931
  • Label web.py workers waiting on AsyncBridge calls by @RayBB in #13934
  • Migrates the FastAPI ratings endpoints to async psycopg3 pool by @Sanket17052006 in #13904
  • Remove unneeded key.lower() in public reading log endpoint by @RayBB in #13933
  • feat(lenny): return a Lenny provider loan from Open Library (#13909) by @openlibrary-bot in #13911
  • fix(lenny): guard node JSON parsing against malformed responses by @dhruvwarriorr in #13921
  • POC: standalone iannotate snippets service on ol-home0 by @mekarpeles in #13943
  • Remove flot: homepage and /stats charts as SVG, imports and publishing history with Chart.js by @RayBB in #13901
  • iannotate compose: pass PIP_INDEX_URL/proxy build args from env by @mekarpeles in #13945
  • nginx snippets: allow PUT, block public DELETE by @mekarpeles in #13946
  • Add Browse the stacks to the home page by @lokesh in #13783
  • nginx snippets: make GET public, keep writes archive.org-only by @mekarpeles in #13949
  • Home page: librarian call-out and a compact stats card replace the five-chart stats block by @lokesh in #13831

New Contributors

Full Changelog: deploy-2026-10-13-at-20-42...deploy-2026-10-15-at-22-14

deploy-2026-10-13-at-20-42

Choose a tag to compare

@mekarpeles mekarpeles released this 13 Oct 21:19
df5f681

What's Changed

New Contributors

Full Changelog: deploy-2026-10-06-at-17-39...deploy-2026-10-13-at-20-42

deploy-2026-10-06-at-17-39

Choose a tag to compare

@cdrini cdrini released this 06 Oct 18:11
ed1c685

What's Changed

New Contributors

Full Changelog: deploy-2026-09-29-at-18-55...deploy-2026-10-06-at-17-39

deploy-2026-09-29-at-18-55

Choose a tag to compare

@mekarpeles mekarpeles released this 29 Sep 19:28
dd037d1

What's Changed

  • Use short form for bnf identifier by @hornc in #13663
  • Shelf button across the site: carousels, search results, and the book page by @lokesh in #13588
  • Split Already Read into a shelf toggle and a date link by @lokesh in #13716
  • Add an Inside books tab to the search modal by @lokesh in #13717
  • Track signed-out clicks, quick vs menu saves, and errors in shelf actions by @lokesh in #13740
  • Wait for ol-dialog before mounting the search modal, so its autofocus input can't scroll pages on load by @lokesh in #13720
  • Fixed headings and associated lists being split across columns by @lbartron in #12843
  • Show the shelf's own icon on the shelf button, and a shelf badge over the book page cover by @lokesh in #13657
  • Adding initial Azerbaijani translation by @jamalkamaladdin in #13704
  • Fix shelf actions date link truncation and flash by @lokesh in #13738
  • Retarget z-index primitives to semantic tokens by @lokesh in #13629
  • Don't make archive.org loan request for deprecated "ol:*" user id by @CipherZ3r0 in #13505

New Contributors

Full Changelog: deploy-2026-09-23-at-19-23...deploy-2026-09-29-at-18-55

deploy-2026-09-23-at-19-23

Choose a tag to compare

@mekarpeles mekarpeles released this 23 Sep 23:33
f94da39

What's Changed

  • Lint z-index in Lit component styles, warn on primitive tokens by @lokesh in #13628
  • Build affiliate stores as one ordered list by @cdrini in #13641
  • Drop ol-web1 from the deploy/restart server lists by @cdrini in #13662
  • Round of design polish for web components by @lokesh in #13557
  • refactor: replace the My Book Notes modal with ol-dialog by @MohitSAGAR11 in #13671
  • fix(models): only save known user preference keys by @jabrailkhalil in #13598
  • perf(nginx): reuse connections to haproxy by @mekarpeles in #13680
  • refactor: Move the remaining jQuery UI confirmations onto ol-dialog by @lokesh in #13675
  • feat(nginx): write the verify_human challenge log for the fail2ban jail by @mekarpeles in #13674
  • Acquisitions in search.json: one OPDS2 field via the work-search scheme (#12844) by @openlibrary-bot in #13395
  • Replace Wikipedia citation dialog with popover by @iamshravanijadhav in #13678
  • refactor: replace the share modal with an ol-popover menu by @sh011 in #13677
  • Add two new national library MARC sources by @hornc in #13697
  • Bring the book page's controls onto the shared button system by @lokesh in #13640
  • Search all three affiliate stores by title and author when there is no ISBN by @cdrini in #13661
  • Prevent NPE in observations DELETE handler by @jimchamp in #13705
  • Stop dropping author/subtitle/description from table_of_contents on read by @cdrini in #13692
  • Remove store_index backfill script by @jimchamp in #13700
  • Exclude 0:Email, 1:FTP, 2:Telnet, 3:Dial-up as External links, and non- http strings from MARC 856 links by @hornc in #13696
  • Surface Search Inside: filterable and in modal by @lokesh in #13429
  • Auto-promote high-volume crawlers and API partners out of the other bucket by @mekarpeles in #13673
  • Serve the coverstore from FastAPI by @cdrini in #13633
  • Restrict the coverstore's internal routes to internal IPs by @cdrini in #13715
  • fix(deploy): the nginx -t gate was blind; test in a fresh container by @openlibrary-bot in #13702

New Contributors

Full Changelog: deploy-2026-09-17-at-17-57...deploy-2026-09-23-at-19-23

deploy-2026-09-17-at-17-57

Choose a tag to compare

@cdrini cdrini released this 17 Sep 20:20
926f82b

What's Changed

New Contributors

Full Changelog: deploy-2026-09-09-at-18-43...deploy-2026-09-17-at-17-57

deploy-2026-09-09-at-18-43

Choose a tag to compare

@jimchamp jimchamp released this 09 Sep 19:25
5b92e77

What's Changed

New Contributors

Full Changelog: deploy-2026-09-03-at-22-34...deploy-2026-09-09-at-18-43

deploy-2026-09-03-at-22-34

Choose a tag to compare

@mekarpeles mekarpeles released this 04 Sep 03:21
3c709c5

Highlights

  1. FastAPI now fronts testing.openlibrary.org — prod next
  2. Acquisitions harvester live: Gutenberg, BWB, Lenny feeds import with buy/open-access links
  3. Rating no longer bumps books off your shelf
  4. New site-wide drawer menu

6 new contributors 🎉

What's Changed

New Contributors

Full Changelog: deploy-2026-08-27-at-20-40...deploy-2026-09-03-at-22-34

deploy-2026-08-27-at-20-40

Choose a tag to compare

@cdrini cdrini released this 27 Aug 21:27
0757669

What's Changed

  • Delete 9 macros verified unused (no references in code, database, or production) by @RayBB in #13356
  • ol-button: move to shadow DOM by @lokesh in #13350
  • Delete 21 templates verified unused (no references in code, database, or production) by @RayBB in #13358
  • Add FastAPI testing-environment status API (maintainer-gated) by @RayBB in #13278
  • Add watch:components script to watch all Vue components in dev by @RayBB in #13368
  • Fix docker compose up erroring from volume-population race conditions by @cdrini in #13362
  • Seed dev environment with full /languages/* records from prod by @cdrini in #13354
  • Add static-analysis test for unused templates and macros by @RayBB in #13360
  • Make author works.json endpoint async end-to-end by @RayBB in #13373
  • Unify the site's colors on one warm palette and remove the old color names by @lokesh in #13338
  • Enhance FastAPI app metadata for better OpenAPI documentation by @RayBB in #13374
  • Rebuild the /status Testing Environment panel as a live UI by @lokesh in #13311
  • Remove deprecated web.py endpoints migrated to FastAPI by @Sanket17052006 in #13371
  • fix: add FastAPI route alias for .json note POSTs to match legacy web… by @Sanket17052006 in #13382
  • chore: remove remaining deprecated web.py endpoints migrated to FastAPI by @Sanket17052006 in #13383
  • Remove script used to purge S3 keys by @jimchamp in #13372
  • Fix search facets fallback when partial loading fails by @seanxuu in #13380
  • Add unified icon system by @lokesh in #12955
  • Continue Reading Phase 1: Merge 'Active Loans' with 'Loan History' on 'My Books' page by @Sadashii in #13281
  • Add a parallel FastAPI /borrow endpoint alongside the legacy web.py one by @cdrini in #13389
  • Fix on-call notification workflow by @jimchamp in #13375
  • Fix: Move safe imports to top-level for PLC0415 compliance by @RayBB in #13393
  • Cache httpx AsyncClient per event loop to avoid cross-loop reuse crashes by @cdrini in #13410
  • Auto-regenerate solr_types.py via pre-commit instead of failing a unit test by @cdrini in #13417
  • Use uvicorn --factory for fast_web — save ~100MB of RAM by @RayBB in #13404
  • Fix pytest issues when running locally inside docker container of worktree by @cdrini in #13418
  • refactor: fully remove swagger/openapi page by @Sanket17052006 in #13402
  • Status panel: undelete PRs and auto-remove closed ones by @RayBB in #13376
  • Remove unused template globals from helpers.py all (#13422) by @shariqueahmad108-ship-it in #13426
  • Remove unused @public template-global registration (url_quote, get_borrow_status) (#13422) by @shariqueahmad108-ship-it in #13427
  • pre-commit: Add zizmor security linter for GitHub Actions by @cclauss in #13411
  • Remove unused i18n template globals by @lucaspmgomess in #13434
  • Document the GitHub wiki's local clone in the AI coding guide by @RayBB in #13432
  • Delete 68 legacy image files no longer referenced anywhere by @lokesh in #13329
  • Update dependency concurrently to v10 by @renovate[bot] in #13441
  • Reading-focused design for curated collections pages by @lokesh in #13259
  • Remove unused template-global registrations in setup_template_globals by @SAY-5 in #13444
  • Remove unused template globals by @lucaspmgomess in #13443
  • Report graphite stats for every fail2ban jail, not just nginx-429 by @cdrini in #13440
  • Wire facet droppers to context-aware counts (frontend for #12978) by @Armansiddiqui9 in #13064
  • Renovate: automate GitHub Actions SHA pin updates by @RayBB in #13439
  • Add FastAPI fallback proxy to web.py for local development and testing by @RayBB in #13423
  • Fix: Replace deprecated asyncio.iscoroutinefunction with inspect by @asarakhatun17-lgtm in #13457
  • fix(eslint): ignore the gitignored docs/wiki clone by @vaibhav8a in #13458
  • fix(tests): stop stylelint CLI output leaking into jest runs by @vaibhav8a in #13459
  • Run make lint through uvx and correct the AGENTS.md pre-commit note by @fahadhewad in #13461
  • fix(components): replace deprecated >>> combinators with :deep() by @vaibhav8a in #13463
  • fix(components): increase Vite chunk warning limit for Lit build by @CipherZ3r0 in #13470
  • Update docs for FastAPI fallback proxy port swap (#13423) by @RayBB in #13471
  • Hoist list availability lookups into Python handler by @lucaspmgomess in #13465
  • Fix list grid view alignment by @CipherZ3r0 in #13385
  • Move author search out of template rendering to author.GET (python handler) by @CipherZ3r0 in #13467
  • Move blocking I/O from templates into Python handlers by @RayBB in #13387
  • Move featured subjects fetching from templates to Python handlers by @CipherZ3r0 in #13468
  • Fix Vue prop lint warnings by @josemmiranda04 in #13473
  • Fix: Render Search Inside above Read button for open-access books (#13308) by @Sadashii in #13314

New Contributors

Full Changelog: deploy-2026-08-18-at-16-12...deploy-2026-08-27-at-20-40

deploy-2026-08-18-at-16-12

Choose a tag to compare

@mekarpeles mekarpeles released this 18 Aug 21:04
7da8c75

TL;DR

Open Library — Aug 18, 2026

Browsing is faster. Subject pages load results immediately while filters catch up in the background.

Book carousels are smoother, with better mobile scrolling and improved accessibility.

Search is healthier. Monitoring graphs that were broken since our Solr upgrade are restored, giving the team visibility into search performance again.

Views are now shareable. Users can bookmark or share URLs that preserve their list vs. grid preference.

What's Changed

  • Update astral-sh/setup-uv action to v8.3.2 by @renovate[bot] in #13304
  • Document local-dev API and copydocs gotchas by @RayBB in #13307
  • feat(vendors): make Amazon affiliate metadata fetch async by @RayBB in #13305
  • Explain why undoing an author merge fails instead of returning a 500 (#5664) by @RayBB in #13306
  • feat(a11y): wire @axe-core/playwright into the e2e suite by @lokesh in #13251
  • fix: parse Solr 10 request logs (restores Solr Graphite metrics) by @mekarpeles in #13212
  • purge_s3_keys.py script updates by @jimchamp in #13302
  • feat(amazon): require Creators API, remove PA-API fallback from affiliate server by @openlibrary-bot in #13315
  • Update Spanish translation by @dcapillae in #13320
  • Only auto-run npm ci on LOCAL_DEV to speed up testing deploys by @cdrini in #13321
  • fix(manifest): add explicit share_target enctype by @RayBB in #13323
  • fix: popovers render underneath header by @lokesh in #13324
  • feat(css): migrate CSS build from webpack to Vite by @RayBB in #13326
  • Rebuild ol-carousel on native scroll snapping by @lokesh in #13220
  • Mount ol-vendor volume in fast_web like other containers to avoid initialization errors by @cdrini in #13340
  • Format solr haproxy config to use spaces consistently by @cdrini in #13348
  • Accept Notated music monographs on import by @hornc in #13345
  • ol-button: href links, ghost variant, icon/circle shapes, floating elevation by @lokesh in #13347
  • Remove web.py endpoints served by FastAPI on production by @Sanket17052006 in #13317
  • Remove dead bookadded flash message code by @RayBB in #13336
  • Make expensive facet requests on subject page partials and async by @cdrini in #13334
  • Sync layout URL param when toggling list/grid view by @Varadraj75 in #13337
  • Switch from big OR clauses to solr terms queries for better performance by @cdrini in #12874
  • fix: don't rewrite local-params fq (e.g. {!terms}) into editions query by @cdrini in #13353
  • Regression: Fix lists/series edition-awareness by copying contextvars through async bridge by @cdrini in #12966
  • Make local dev environment use ~650MB less memory by @cdrini in #13341
  • chore: add removed endpoints to deprecated paths by @Sanket17052006 in #13363
  • Remove stats and stats-header feature flags by @Sanket17052006 in #13364
  • Make debug feature flag optional with LOCAL_DEV by @Sanket17052006 in #13293

New Contributors

Full Changelog: deploy-2026-08-11-at-17-16...deploy-2026-08-18-at-16-12