close
Skip to content

Releases: internetarchive/openlibrary

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

deploy-2026-08-11-at-17-16

Choose a tag to compare

@cdrini cdrini released this 11 Aug 18:14
8e617de

What's Changed

  • fix: keep catalog export links in a row below floated columns (author page) by @lokesh in #13219
  • Fix #13202: render markdown links whose URL contains parentheses by @nancypatel12 in #13236
  • Adding primitive support for likes #12768 by @shreya8040 in #12932
  • fix(agentic): pin claude-code-action to last working SHA (enrichment + autoresponder silently no-op since 07-18) by @openlibrary-bot in #13229
  • fix typos in test case name by @hornc in #13243
  • Move the search results toolbar onto web components by @lokesh in #13228
  • fix: track Book Preview and Search Inside events in Matomo by @Sadashii in #13254
  • refactor: replace raw z-index values with semantic tokens by @Armansiddiqui9 in #13247
  • Add SubjectSearch macro so the /subjects search field has an accessible label by @lokesh in #13250
  • Fix login issues for recent registrants who have requested print disability access by @jimchamp in #13260
  • Replace dev feature flag with LOCAL_DEV by @Sanket17052006 in #13123
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #13249
  • Update vendor/infogami digest to 7cb5b9e by @RayBB in #13266
  • feat(a11y): add jest-axe CI gate for Lit component ARIA patterns by @mekarpeles in #13006
  • Fix newly-enabled Ruff lint errors and sqlfluff PG01 by @RayBB in #13267
  • fix(env): resolve get_ol_env() name collision causing 500 by @RayBB in #13268
  • fix(js): resolve console errors on book, work, author, and search pages by @lokesh in #13257
  • feat: add Bookdash import scraper by @rattnak in #13237
  • Disable price fetching in AffiliateLinksPartial by @cdrini in #13271
  • feat(pagination): add size property with small and medium variants by @lokesh in #13238
  • Replace undo feature flag with explicit is_super_librarian() check by @Sanket17052006 in #13269
  • Color tokens: warm neutral ramps, semantic layer, deprecated aliases by @lokesh in #13102
  • Signal-ranked Notable Authors for subject pages by @Armansiddiqui9 in #13142
  • Don't save empty identifiers by @hornc in #13149
  • chore: remove lokesh from weekly status report leads by @lokesh in #13294
  • fix(pre-commit): stop stylelint failing when every staged file is ignored by @lokesh in #13253
  • Manually send data-ol-link-track to matomo by @cdrini in #13300
  • feat(search): add GET /search/facets.json — context-aware facet values API by @mekarpeles in #12980

New Contributors

Full Changelog: deploy-2026-07-30-at-18-39...deploy-2026-08-11-at-17-16

deploy-2026-07-30-at-18-39

Choose a tag to compare

@jimchamp jimchamp released this 30 Jul 19:45
7ea6b9e

What's Changed

Full Changelog: deploy-2026-07-23-at-21-45...deploy-2026-07-30-at-18-39

deploy-2026-07-23-at-21-45

Choose a tag to compare

@mekarpeles mekarpeles released this 23 Jul 23:40
be893eb

What's Changed

  • Remove redundant recentchanges_v2 feature flag by @Sanket17052006 in #13094
  • fix(search-modal): count NoResults per settled query, not per keystroke by @lokesh in #13114
  • fix(a11y): add title attributes to iframes (WCAG 2.4.1 H64) by @mekarpeles in #13012
  • fix(a11y): mark decorative star rating symbols aria-hidden (WCAG 1.4.3) by @mekarpeles in #13028
  • fix(a11y): fix color contrast in OlToggle sublabel and nav-bar work-menu (WCAG 1.4.3) by @mekarpeles in #13027
  • fix(a11y): add role=group to OlSelectPopover host (aria-prohibited-attr WCAG 4.1.2) by @mekarpeles in #13037
  • fix(a11y): add aria-label to generic-dropper arrow button (link-name WCAG 2.4.4) by @mekarpeles in #13029
  • fix(a11y): use --link-blue for secondary login button (contrast WCAG 1.4.3) by @mekarpeles in #13030
  • feat: add progress bar to OlToast and improve alignment of OlToast and OlBanner by @Sadashii in #13082
  • feat(agentic): Richy issue enrichment via claude-code-action by @mekarpeles in #13075
  • feat(agentic): add workflow_dispatch for manually testing Richy by @openlibrary-bot in #13117
  • feat(search-modal): add ResultsShown analytics event by @lokesh in #13115
  • fix(a11y): add aria-label to ReadButton dropdown summary (WCAG 4.1.2) by @lokesh in #13116
  • fix(agentic): correct stale label names, add checklist-resolution discipline by @openlibrary-bot in #13118
  • Update environment of cron service by @jimchamp in #13111
  • Remove redundant superfast feature flag by @Sanket17052006 in #13100
  • Remove redundant lists feature flag by @Sanket17052006 in #13087
  • Replace history_v2 feature flag with is_librarian_or_higher() check by @Sanket17052006 in #13121
  • Remove leftover recentchanges_v2 feature flag from openlibrary.yml by @gaurav0107 in #13122
  • Migrate hide banner to FastAPI by @Shikhar-395 in #13096
  • feat: preview tracking before data for #12881 by @Sadashii in #13099
  • fix(add_book): use _data.pop to strip infobase metadata from matched author by @TechGenius-Karan in #13032
  • Copy cover_i key from Solr. Fixes #11563 by @tfmorris in #11696
  • Warm nexus cache before parallel docker pull in deploy by @cdrini in #12976
  • Fix null ASINs being saved during promise item import by @cdrini in #12834
  • Fix 3,063 lists with subjects failing to index into solr by @cdrini in #12873
  • Fix ratings microdata appearing thrice on book page, causing SEO errors by @cdrini in #12975
  • Move expiry date info inside ReturnForm and update My Loans table layout by @Sadashii in #12912
  • Add issue labeling exclusion for GitHub bot accounts by @jimchamp in #13139
  • Update S3 key removal script by @jimchamp in #13127
  • Fix: Added want to read button on trending page by @dvvrtmshra in #13120
  • chore(search): remove dead search-mode localStorage plumbing by @lokesh in #13124
  • Fix SIM103 lint error in issue_comment_bot.py by @lokesh in #13143
  • Fix author date precision matching by @MakenRosa in #13128
  • Add environment favicons and logo badges for localhost & testing by @lokesh in #13125
  • Fix issue labeling logic by @jimchamp in #13145
  • Remove unnecessary feature and test by @hornc in #13147
  • fix(agentic): allow non-write actors to trigger issue enrichment by @mekarpeles in #13154
  • fix(agentic): exclude openlibrary-bot from issue enrichment by @mekarpeles in #13166
  • feat(agentic): PR auto-responder via claude-code-action by @mekarpeles in #13164
  • feat(ci): add weekly on-call Slack notification workflow by @jimchamp in #13168
  • feat(agentic): scaffold Code Review Action trigger (NOP) by @mekarpeles in #13167
  • feat(dev): add mockservices — mocks IA/third-party services for local dev (replaces /internal/fake/* stubs) by @mekarpeles in #13045
  • switch bookworm to use amz creators API by @mekarpeles in #13173
  • Add usefulness score to solr + UI by @cdrini in #11724
  • feat: show alternatives banner on unavailable book pages by @Sadashii in #12910
  • fix(ci): pass Slack channel as a secret, not a with: input by @mekarpeles in #13175
  • fix: resolve download record bar overflowing containers globally by @RsbhThakur in #13091
  • Migrate qrcode endpoint to FastAPI by @Shikhar-395 in #13140
  • Fix: Add FastAPI validation bounds and test suites for patron check-ins and yearly goals endpoints (#13150) by @RsbhThakur in #13156
  • Migrate api/link endpoint to FastAPI by @Sanket17052006 in #13144
  • fix(docker): route staging's runtime pip fallback through internal PyPI mirror by @mekarpeles in #13178
  • feat: Make Preview / Search Inside more visible on books page by @Sadashii in #13112
  • fix(docker): source build_env.sh from /olsystem + wire PIP_INDEX_URL as a build arg by @mekarpeles in #13180
  • Update monitoring UA list by @cdrini in #13181
  • Comment out broken Unique Visitors chart (#12823) by @Sadashii in #12831
  • Add genres and subgenres fields to work type definition and schema by @Chisomnwa in #13151
  • fix: resolve volumes multiget endpoint failing with .json extension by @RsbhThakur in #13093
  • fix(add_book): fix walrus operator precedence bug in author dedup (#13015) by @addy790 in #13021
  • feat(api): allow /api/unlink caller to specify op type (dark vs mismatch) by @mekarpeles in #13183
  • chore(docker): parameterize hardcoded dev ports for parallel worktrees by @mekarpeles in #13185
  • refactor: convert Follow.html macro to template with safe attribute interpolation by @TechGenius-Karan in #12985
  • feat(identifiers): add ITAN Book ID identifier (itan_technologies) by @mekarpeles in #12947
  • Fix: crash on /books/add check page that prevents selecting matches o… by @dvvrtmshra in #13085
  • fix: safe attribute construction for data-ol-link-track in 4 templates by @mekarpeles in #13187
  • Redirect DAISY pages to Archive item pages by @nathanpixodeo in #13049
  • Use docker compose extra_hosts to work around ol-home0 issues by @cdrini in #13198

New Contributors

Full Changelog: https://github.c...

Read more

deploy-2026-07-02-at-19-32

Choose a tag to compare

@jimchamp jimchamp released this 02 Jul 20:08
29b531f

What's Changed

New Contributors

Full Changelog: deploy-2026-06-25-at-19-06...deploy-2026-07-02-at-19-32

deploy-2026-06-25-at-19-06

Choose a tag to compare

@mekarpeles mekarpeles released this 25 Jun 19:46
d779e2c

Highlights

  • First Korean translation (#12830) — clearly stated, plus the other language updates.
  • Redesigned history comparison page (#12775) — clearly stated.
  • Security work (#12860 encrypted S3 keys in session cookie, #12841 requiring valid keys on OTP endpoints) — accurate, though "user credentials" is my gloss on "S3 keys."

What's Changed

  • Try to fix amazon API squid proxy access by @cdrini in #12977
  • i18n affiliate links commission string with inline anchor by @cdrini in #12972
  • Add ol-tooltip web component by @lokesh in #12131
  • Redesigned history page comparison by @Saad259 in #12775
  • Add acquisitions table and interface for Trusted Book Providers by @ronibhakta1 in #12851
  • i18n(bn): AI translation update — sync with messages.pot by @mekarpeles in #12964
  • i18n(tr/cs): fix format-string errors — clear mismatched fuzzy msgstrs by @mekarpeles in #12988
  • i18n(ja): AI translation update — fill remaining 14 strings + fix pre-existing errors (2026-06-18) by @mekarpeles in #12982
  • i18n(te): AI translation update — sync with messages.pot (2026-06-18) by @mekarpeles in #12981
  • Fix importbot + make runnable locally by @cdrini in #12999
  • Tweaks to affiliate server + switch to legacy API, which still works for now by @cdrini in #12993
  • Add CLAUDE.local.md to gitignore by @cdrini in #13001
  • Expand obfi scripts + monitoring by @cdrini in #12973
  • Adding initial Korean translation by @systil3 in #12830
  • docs(ai/tag-system): add Tags system domain knowledge base by @mekarpeles in #13003
  • docs(ai/imports): import pipeline architecture reference by @mekarpeles in #13004
  • Include cover width/height in solr by @cdrini in #12916
  • Update astral-sh/setup-uv action to v8.2.0 by @renovate[bot] in #12928
  • feat(accounts): redirect to My Books after email verification by @mekarpeles in #12970
  • docs(ai/imports): add MARC encoding pipeline and add_book internals docs by @mekarpeles in #13018
  • docs(ai/solr): add Solr domain knowledge base for PAM agents by @mekarpeles in #13013
  • Make community_edits_queue require login ; causing db strain by @cdrini in #12992
  • Update messages.po for i18n-bn by @prantikbanerjee2006 in #12991
  • fix: unescape HTML numeric entities in import pipeline (normalize_import_record) by @mekarpeles in #12953
  • docs(ai/imports): update for PR #12999 — importbot now runnable locally by @mekarpeles in #13035
  • docs(ai): add OPDS system architecture reference by @mekarpeles in #13026
  • Sync schema files (aka new fields) to solr replica by @cdrini in #13019
  • Fix search-funnel analytics: report to Matomo via _paq + sendBeacon by @lokesh in #13038
  • fix(processors): remove booklending_utils startup dependency; use config-driven author_exclusions by @mekarpeles in #13024
  • Add sentry frontend performance tracking to see user-time performance by @cdrini in #13033
  • feat(security): store S3 keys as encrypted session cookie by @mekarpeles in #12860
  • feat(accounts): require valid IA S3 keys on OTP service endpoints by @mekarpeles in #12841

New Contributors

Full Changelog: deploy-2026-06-18-at-17-13...deploy-2026-06-25-at-19-06

deploy-2026-06-18-at-17-13

Choose a tag to compare

@cdrini cdrini released this 18 Jun 18:42
cc71ebd

What's Changed

New Contributors

Full Changelog: deploy-2026-06-08-at-21-47...deploy-2026-06-18-at-17-13

deploy-2026-06-08-at-21-47

Choose a tag to compare

@mekarpeles mekarpeles released this 08 Jun 22:26
8220e9d

Executive Summary

  • Passwordless sign-in launched: Patrons can now log in using a one-time email code, reducing account-access friction and making it easier for returning users to participate.
  • Fixed Login Regression: Fixed a deployment regression that could prevent users from being properly signed in.
  • FastAPI Modernization continues: Migrated additional APIs to FastAPI, reducing technical debt and improving the platform's long-term maintainability.

What's Changed

Full Changelog: deploy-2026-06-04-at-18-24...deploy-2026-06-08-at-21-47

deploy-2026-06-04-at-18-24

Choose a tag to compare

@mekarpeles mekarpeles released this 04 Jun 19:19
dde46f6

Open Library | June 4 Deploy Highlights

  1. Registration intent preservation: Patrons who hit a login wall mid-action (e.g. borrowing, shelving) are now returned to their intended destination after sign-up — reducing drop-off and friction in the new user funnel
  2. New "Stopped Reading" shelf and "Works by Decade" reading stats chart added for patrons
  3. Bug fixes: mobile star ratings, frozen carousels, Solr facet crashes, librarian title sorting
  4. i18n: Bengali translations updated; translator notes added for reading log strings
  5. Dev/infra: 7x faster tests, Docker-free pytest, request timeouts, Python/tooling updates

What's Changed

Full Changelog: deploy-2026-05-27-at-19-40...deploy-2026-06-04-at-18-24

deploy-2026-05-27-at-19-40

Choose a tag to compare

@cdrini cdrini released this 27 May 20:28
3fd610c

What's Changed

Full Changelog: deploy-2026-05-19-at-19-10...deploy-2026-05-27-at-19-40