Releases: internetarchive/openlibrary
Releases · internetarchive/openlibrary
deploy-2026-04-29-at-00-25
What's Changed
- Check server storage before olsystem deploy, too by @cdrini in #12423
- Fix affiliate server generate undefined by @cdrini in #12426
- Tweak solr weights/boosts - switch from additive boosting to multiplactive boosting by @cdrini in #12357
- update bwb api url to avoid 301 by @RayBB in #12427
- Fix multiple Connection instances in webpy breaking RunAs by @cdrini in #12407
- Add script to detect and fix HTML-escaped unicode in OL dumps (dry-run) by @Chisomnwa in #12224
- Cache avatar url by @Saad259 in #12355
- Fix history page pagination off-by-one by @lokesh in #12430
- fix: remove duplicate legend in Advanced Search form (#12381) by @rayrishu19-wq in #12387
- fix: remove unused parameter from welcome.html by @rattnak in #12411
- Fix case-insensitive language name sorting (#11962) by @numericals-org in #12395
- feat: interactive testing environment dashboard on /status (#11506) by @mekarpeles in #12241
- Expand py-spy monitoring by @cdrini in #12428
- Classify more API usage by @cdrini in #12436
- Adding ol-web3 to web head cluster by @cdrini in #12433
- Update Infogami for
transaction_detailstable by @jimchamp in #12434 - Asyncify solr calls of /api/books and /api/volumes by @cdrini in #12401
- substituting /static/images for /images in all urls -fixes 12208 by @jack-wines in #12352
- Update api user list by @cdrini in #12445
- Fix: improve French translations (spelling and grammar) by @MahdiiFakhfakh in #12444
- Added internationalization support for Philippines(PH) translation by @bdb-lab in #12233
- Update unicode fixer script by @jimchamp in #12435
- Remove Vue files from temporary ESLint formatting exemptions by @akramcodez in #12453
- build: apply ruff-format and black to more python files by @ragini-pandey in #12452
- Don't show error response on internalerror page by @cdrini in #12457
- feat: migrate price_api endpoint to FastAPI (#11999) by @shoaib-inamdar in #12439
- Fix /merges endpoint sql injection risk by @cdrini in #12460
- Add types to _get_db by @cdrini in #12462
- Prevent expensive query.json queries by @cdrini in #12466
- Add account security check endpoint by @mekarpeles in #12464
- Replace caret (visual whitespace) with whitespace in MARC LCCN subfields by @hornc in #12468
- i18n: Add missing Arabic translation for 'Preview Only' in ar/message… by @hichemferjani in #12456
New Contributors
- @Chisomnwa made their first contribution in #12224
- @rayrishu19-wq made their first contribution in #12387
- @rattnak made their first contribution in #12411
- @jack-wines made their first contribution in #12352
- @MahdiiFakhfakh made their first contribution in #12444
- @bdb-lab made their first contribution in #12233
- @ragini-pandey made their first contribution in #12452
- @hichemferjani made their first contribution in #12456
Full Changelog: deploy-2026-04-21-at-19-56...deploy-2026-04-29-at-00-25
deploy-2026-04-21-at-19-56
What's Changed
- fix: add noopener noreferrer to external links with target blank by @akramcodez in #12348
- Exclude dev DB dump from pre-commit fixes by @Shikhar-395 in #12377
- Add workflow to label PRs when changes requested by @Sanket17052006 in #12376
- Update stats gathering functions by @jimchamp in #11844
- Update actions where needed by @jimchamp in #12226
- migrate LazyCarouselPartial to async by @shoaib-inamdar in #12293
- Fix: Validate that the publisher exists before writing to the follows table. by @Saad259 in #12135
- build: enforce consistent quote style with ruff-format and black by @shoaib-inamdar in #12373
- fix: disable 'Want to Read' button until JS loads by @bhardwajparth51 in #12139
- Add solr haproxy prometheus exporter + fix ping path by @cdrini in #12371
- Set BWB request timeout by @cdrini in #12382
- Localize
titleattribute in template by @jimchamp in #12358 - Adopt ol-chip for subject tags, author page, and publisher page by @linhkhanhhoang in #12261
- refactor(css): replace raw em values with tokens in headings.css by @Armansiddiqui9 in #12374
- fix: add FastAPI route alias for
.jsoncheck-in POSTs to match legacy web.py behavior. by @akramcodez in #12394 - Add bulk search link to advanced search by @Shikhar-395 in #12396
- Update
wrap_jsonpto handle lists by @jimchamp in #12397 - move get_betterworldbooks_metadata and get_amazon_metadata out of AffiliateLinks template by @Sanket17052006 in #12393
- build: remove tests and partials.py from ruff/black formatting denylist by @shoaib-inamdar in #12405
- Bump bundlesizes to fix CI by @cdrini in #12406
- make betterworldbooks async by @RayBB in #12404
- Don't show trap links to recognized bots by @cdrini in #12413
- Add more api partners to monitoring by @cdrini in #12418
- Delete openlibrary/macros/DonateModal.html by @RayBB in #12403
New Contributors
- @linhkhanhhoang made their first contribution in #12261
Full Changelog: deploy-2026-04-14-at-21-41...deploy-2026-04-21-at-19-56
deploy-2026-04-09-at-21-09
What's Changed
- Add tests for detect_missing_i18n + fix some bugs by @cdrini in #12118
- ol-chip: use close icon, add border-radius-chip token by @lokesh in #12145
- Add OlPopover Lit web component by @lokesh in #12126
- Migrate all pagination to ol-pagination web component by @lokesh in #12169
- Remove unused Font Awesome font files by @lokesh in #12174
- Migrate ratings endpoints from web.py to FastAPI by @Shikhar-395 in #12001
- fix my books dropper icon by @RayBB in #12207
- Return JSON when IA->OL unlink request fails by @jimchamp in #11994
- Add
frontendtarget to Makefile by @jimchamp in #12204 - Migrate public_observations endpoint to FastAPI by @Sanket17052006 in #12205
- feat: migrate book_availability to FastAPI by @bhardwajparth51 in #12181
- update docs to better align with new docs site by @RayBB in #12229
- fix a few broken docs links by @RayBB in #12230
- Updated browse endpoint to use parse_comma_separated_list by @Sanket17052006 in #12228
- chore(deps): update dependency stylelint to v17 by @renovate[bot] in #11841
- refactor: Standardize spacing using design tokens by @Armansiddiqui9 in #12203
- Fixed series autocomplete to correctly resolve OL IDs and URLs, added tests. by @Saad259 in #12123
- chore(deps): update dependency vite to v6.4.1 [security] by @renovate[bot] in #10681
- chore(deps): update dependency webpack to v5.104.1 [security] by @renovate[bot] in #11824
- chore(deps): update dependency vite to v8 by @renovate[bot] in #12235
- refactor: remove web.ctx.site by @bhardwajparth51 in #12215
- fix: reading goal link not restored after unsetting goal by @yuanglili in #12103
- improve copilot instructions by @RayBB in #12238
- make contributing.md reflect current process by @RayBB in #12239
- Add /type/language JSON schema to schemata by @bettercallok in #12083
- Add missing translation. Fixes #12187 by @tfmorris in #12188
- Remove unused reduce_seeds function from engine.py by @Adeelp1 in #12179
- Update list of known partner user agents by @cdrini in #12247
- remove web.py partials code by @RayBB in #11895
- Update local dev environment to postgres 18 by @cdrini in #12236
- Add DOCKER_COMPOSE_COMMAND option to restart_servers.sh by @cdrini in #12234
- make FulltextSearchSuggestion partial async by @Sanket17052006 in #12265
- Bumped precommit with sqlfluff version 4.1.0 by @Sanket17052006 in #12243
- make BookPageListsPartial async by @Sanket17052006 in #12272
- Update Copilot i18n guidelines for reviews by @Shikhar-395 in #12274
- Mark account routes as internal and include in schema by @Sadashii in #12264
- Remove orphaned layout/v2.css by @lokesh in #12147
- Restore z-index on #test-body-mobile to fix header dropdown stacking by @lokesh in #12275
- add Lokesh to Slack digests by @RayBB in #12278
- add stale PR bot by @RayBB in #12279
- Add Matomo retention dimension: Days Since Registration by @mekarpeles in #12227
- Add fail2ban monitor by @cdrini in #12251
- Update dependency requests to v2.33.0 [SECURITY] by @renovate[bot] in #12198
- Make search facets fully asynchronous by @Sadashii in #12262
- Re-enable http2 by @cdrini in #12286
- fix: enable PLC0415 lint rule for openlibrary/fastapi/ directory by @shoaib-inamdar in #12291
- fix: move PLC0415 inline imports to top-level in 11 test/config files by @shoaib-inamdar in #12295
- fix bug with weekly status bot label filtering by @RayBB in #12301
- emphasize community values in contributing guidelines by @RayBB in #12269
- i18n: Add Telugu (te) translations for missing UI strings - Fixes #12216 by @VemuriHaritha in #12218
- chore(deps): update eslint (major) by @renovate[bot] in #12306
- Fix advanced search mobile overflow by @KevinSailema in #12308
- Remove unused SubjectProcessor and stale engine test by @Shikhar-395 in #12315
- refactor: replace hardcoded spacing values with semantic tokens by @Armansiddiqui9 in #12294
- Consolidate cover previews on search results to show 4 stacked covers and adjust result details. by @Saad259 in #12090
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #12307
- scripts: Add fully_reset_environment.sh and update docker/README.md by @modi02 in #12318
- fix: Add wait_for_solr to prevent race condition on startup (#11013) by @Shikhar-395 in #11570
- docker: make home wait for solr via healthcheck in compose.override.yaml by @modi02 in #12325
- migrate /api/books and /api/volumes to fastapi by @RayBB in #11922
- Default request context lang to 'en' to silent unhelpful error logs by @cdrini in #12336
- Enable end-of-file-fixer for all file types in pre-commit by @Saad259 in #12331
- Add dev carousel to homepage by @shreya8040 in #12330
- fix: disable homepage caching in local development environment by @KrishnaShuk in #12335
- Replace postgres wait loop with Docker healthcheck by @numericals-org in #12339
- Adjust Gunicorn worker settings in production config by @cdrini in #12341
New Contributors
- @yuanglili made their first contribution in #12103
- @Adeelp1 made their first contribution in #12179
- @VemuriHaritha made their first contribution in #12218
- @KevinSailema made their first contribution in #12308
- @modi02 made their first contribution in #12318
- @shreya8040 made their first contribution in #12330
- @numericals-org made their first contribution in #12339
Full Changelog: deploy-2026-03-26-at-03-26...deploy-2026-04-09-at-21-09
deploy-2026-03-26-at-03-26
What's Changed
- refactor: merge neck.html into head.html by @lokesh in #12114
- Remove legacy-header.css and dead header selectors by @lokesh in #12108
- Implement pagination web component on Trending page by @lokesh in #12035
- New web component ol-chip by @lokesh in #12012
- Add delete button to Tag edit view by @jimchamp in #12141
- Refactor: replace deprecated font-family aliases with design tokens by @harshgupta2125 in #11970
- Add some types to OLConnection by @cdrini in #12113
- Migrate browse endpoint to FastAPI by @Sanket17052006 in #12006
- Migrate booknotes endpoint to FastAPI by @Armansiddiqui9 in #12007
- fix proxy deprecated post by @bhardwajparth51 in #12122
- Remove haproxy_monitor in favour of prometheus by @cdrini in #12086
- refactor: Define primitive and semantic spacing variables by @lokesh in #12116
- Migrate existing trending_books_api endpoint to FastAPI and added tests by @bhardwajparth51 in #12000
- Fix/fixes to contributing.md by @Sadashii in #12184
- Update nginx configurations by @jimchamp in #12076
- fix: redirect to book page with flash message after returning a book by @bhardwajparth51 in #11947
- Fix get_language_name missing language parameter by @cdrini in #12117
- Update infogami submodule to latest master (dee3ca9) by @cdrini in #12194
- remove deprecated borrow and read pages for fastapi by @RayBB in #11836
- closes #12168 nginx reverse proxy opds by @mekarpeles in #12170
- TOTP auth by @mekarpeles in #11288
New Contributors
- @harshgupta2125 made their first contribution in #11970
- @Sanket17052006 made their first contribution in #12006
- @Armansiddiqui9 made their first contribution in #12007
Full Changelog: deploy-2026-03-19-at-18-02...deploy-2026-03-26-at-03-26
deploy-2026-03-19-at-18-02
What's Changed
- remove all references to LESS by @RayBB in #11998
- build: Update project dependencies in requirements.txt. by @ronibhakta1 in #12027
- Issue refinement workflow bug fixes and improvements by @lokesh in #12029
- Simple datetime refactoring to remove deprecated utcnow() usage by @hornc in #12026
- Allow new 'list_type' field in list search by @cdrini in #12022
- Use
alternate_namesfully for existing Author matching by @hornc in #11923 - Update staff member list for in-test(?) AI prompt by @hornc in #12008
- Remove dead code: openlibrary/utils/bulkimport.py by @Copilot in #12037
- use @cache instead of @web.memoize for i18n by @RayBB in #12016
- refactor: Use css part for ol-read-more button styling by @lokesh in #11817
- Make pre-commit autoupdate PRs monthly instead of weekly by @cdrini in #12040
- Update the wiki links to new docs site by @Sadashii in #12064
- Fix/fix wiki links by @Sadashii in #12065
- point all links to docs site by @Sadashii in #12066
- Rely on infogami-style setup to avoid duplicate setup calls by @cdrini in #12046
- fix partials user access in fastapi by @RayBB in #12055
- use get_current_user when adding a book by @RayBB in #12059
- Add missing languages to languages.page by @vijayalakshmipokala in #12056
- Rename OlPagination event from update:page to ol-pagination-change by @lokesh in #12072
- migrate checkins to fastapi by @RayBB in #11925
- Fix/homepage preview button by @lokesh in #12036
- Fix: Preview button on homepage does nothing when clicked by @bhardwajparth51 in #11903
- Update AI design docs and web component standards by @lokesh in #12071
- Fix: Using translated language name on language page titles by @Saad259 in #12041
- Hide sort menu for series lists by @IvanPisquiy06 in #12060
- Feat: Add autocomplete attribute to certain user-data specific fields by @Sadashii in #12080
- Expose solr edismax params for testing by @cdrini in #11790
- fix: align focus ring on search input to container border by @akramcodez in #12069
- fix: prevent caching of failed carousel search results by @KrishnaShuk in #11900
- Limit for series list by @IvanPisquiy06 in #12099
- Restore legacy 'scans' sort option by @cdrini in #12087
- refactor: replace @web.memoize with @functools.cache by @bhardwajparth51 in #12057
- Add shortlist of user-agent rate limit by @cdrini in #12115
- fix: add spam filtering for lists (closes #11905) by @shoaib-inamdar in #12045
- unused notifications by @hornc in #12120
- Add HMAC authentication to patron anonymization handler by @jimchamp in #11993
- Update messages.po by @prantikbanerjee2006 in #11948
- Remove history table from book and author pages by @jimchamp in #12092
New Contributors
- @Sadashii made their first contribution in #12064
- @vijayalakshmipokala made their first contribution in #12056
- @IvanPisquiy06 made their first contribution in #12060
- @shoaib-inamdar made their first contribution in #12045
Full Changelog: deploy-2026-03-05-at-16-24...deploy-2026-03-19-at-18-02
deploy-2026-03-05-at-16-24
What's Changed
- fix: Block duplicate OCAIDs in edition editor by @395ShikharSingh in #11862
- add missing i18n strings by @RayBB in #11859
- feat: Pagination web component by @lokesh in #11811
- Update Croatian translation by @milotype in #11865
- Add solr fields needed for editions table by @cdrini in #9029
- refactor: Utilize new border radius LESS vars by @lokesh in #11596
- Lower min weight/dimension from 0.01 to 0.001 to fix silent edit fail… by @395ShikharSingh in #11882
- Fix recaptcha missing due to plugin change by @cdrini in #11883
- Secure various handlers by @jimchamp in #11888
- Fix failing checks by @jimchamp in #11889
- remove old reading-goal,subjects,publishers web.py code by @RayBB in #11892
- Migrate all partials components to FastAPI by @RayBB in #11773
- feat: Add AI agent docs by @lokesh in #11881
- Reinstate
recentchanges_viewPOST handler by @jimchamp in #11897 - add pre-commit info to agents.md and symlink claude.md by @RayBB in #11898
- Restore "clamper" functionality for e.g. subjects, without using jQuery by @agmckee in #11872
- add prometheus monitoring for fastapi by @RayBB in #11893
- fix: Add ARIA attributes and roles to print disability dynamic section by @mystic-06 in #11560
- Fix: Increased blog feed cache timeout to 1 day by @Saad259 in #11908
- Book page subject editing by @jimchamp in #11719
- Add PDF/EPUB IA links to search.json providers for open access books by @ronibhakta1 in #11731
- fix: full text content flashes before being truncated with by @lokesh in #11812
- feat: add ebook mode to search, automatically filtering for borrowable ebooks by @ronibhakta1 in #11826
- Add ebook filter to mybooks + use standard sort dropper by @cdrini in #11868
- Fix ebooks toggle visibility on author page by @bhardwajparth51 in #11914
- feat: add sqlfluff SQL linter to pre-commit by @nightcityblade in #11873
- unify fastapi file formatting by @RayBB in #11924
- fix invalid list keys being added to lists by @RayBB in #11749
- migrate
/people/{username}/books/{key}.jsonto fastapi by @RayBB in #11926 - cleanup 'old_plugins' code to have explicit imports by @RayBB in #11762
- use pagination model for mybooks by @RayBB in #11931
- Remove
thingdbas source for patron preferences by @jimchamp in #11933 - Add OL_MOUNT_DIR support to compose.override.yaml for git worktree development by @Copilot in #11921
- Add Solr auto-rebuild health check for local dev by @mekarpeles in #11902
- Don't copy compose.override.yaml during deploy by @cdrini in #11935
- 11719/book page subject editing fix by @mekarpeles in #11936
- making solr start +x by @mekarpeles in #11937
- enable ruff check on fastapi api files in prep for migration by @RayBB in #11940
- enable FAST (FastAPI) Ruff rule by @RayBB in #11932
- Show Internet Archive identifier to librarians and admins for non-viewable books by @Copilot in #11616
- i18 bn by @prantikbanerjee2006 in #11676
- Fix: Sort language autocomplete results alphabetically with prefix ma… by @Saad259 in #11929
- ignore beads by @mekarpeles in #11942
- move merge status up by @RayBB in #11943
- Simplify history comments by @hornc in #11469
- Update ia.py to fix the undefined IA base url by @krishnapatel17 in #8610
- remove translated readmes by @RayBB in #11946
- remove languages from main readme by @RayBB in #11950
- remove gitter from the readme by @RayBB in #11951
- Deprecate LESS by @lokesh in #11885
- Filter
new-accountregistration events from/recentchangesdisplay by @Copilot in #11958 - Issue Refinement Bot by @mekarpeles in #11953
- make logo responsive to dark mode by @RayBB in #11952
- Add some types to coverstore by @cdrini in #11593
- Migrate /cdn/archive.org JS proxy endpoint to FastAPI by @bhardwajparth51 in #11969
- prep work for migrating internal apis to fastapi by @RayBB in #11971
- fastapi/server static assets by @RayBB in #11967
- Make list pages edition-aware by @cdrini in #11959
- Add support for series by @cdrini in #11678
- Allow new author records to use more fields from import data by @hornc in #11927
- prepare lists api for fastapi by @RayBB in #11976
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #11876
- setup boilerplate for fastapi lists.py by @RayBB in #11977
- add boilerplate for internal api migration to fastapi by @RayBB in #11978
- refactor for fastapi: use static methods by @RayBB in #11979
- refactor price api in prep for fastapi by @RayBB in #11980
- turn make_dark into a static method by @RayBB in #11983
- refactor best book award in prep for fastapi by @RayBB in #11984
- refactor ratings in prep for fastapi by @RayBB in #11985
- refactor lists delete in prep for fastapi by @RayBB in #11986
- refactor list_subjects_json in prep for fastapi by @RayBB in #11987
- refactor list_seeds in prep for fastapi by @RayBB in #11988
- refactor lists_json_get in prep for fastapi by @RayBB in #11990
- Remove some dead files by @cdrini in #11949
- Update links in CONTRIBUTING.md by @RayBB in #11995
- fix import bug in mybooks api by @RayBB in #11992
- simplify fastapi auth and use latest infogami by @RayBB in #11850
- add dependency note to copilot instructions by @RayBB in #11997
- refactor lists_json_post in prep for fastapi by @RayBB in #11991
New Contributors
- @mystic-06 made their first contribution in #11560
- @Saad259 made their first contribution in #11908
- @bhardwajparth51 made their first contribution in #11914
- @nightcityblade made their first contribution in #11873
- @krishnapatel17 made their first contribution in #8610
Full Changelog: https://github.com/internetarchive/openlibrary/co...
deploy-2026-02-12-at-21-36
What's Changed
- refactor: Define semantic border radius LESS vars by @lokesh in #11557
- refactor: Utilize semantic line-height LESS vars by @lokesh in #11669
- feat: Generate CSS custom properties from LESS variables by @lokesh in #11688
- add auth verification to fastapi by @RayBB in #11704
- ils search removal by @RayBB in #11735
- remove old test_py3.sh script that uses safety by @RayBB in #11737
- adjust worker counts and request limits by @mekarpeles in #11722
- Reduce timeout for coverstore URL requests by @cdrini in #11692
- Make noisy solr request logs DEBUG level by @cdrini in #11701
- restrict paywalled useragents; use dumps by @mekarpeles in #11723
- add tests to test_ratings by @RayBB in #11738
- test: Significantly refactor and expand WaitingLoan unit tests by @RayBB in #11733
- chore(deps): update dependency pytest to v8.4.2 by @renovate[bot] in #11740
- chore(deps): update dependency pytest-asyncio to v1 by @renovate[bot] in #11742
- disable ruff RUF059 by @RayBB in #11746
- fix: Tab labels misaligned on books page by @lokesh in #11732
- chore(deps): update dependency pytest-cov to v7 by @renovate[bot] in #11743
- chore(deps): update dependency genshi to v0.7.10 by @renovate[bot] in #10838
- chore(deps): update dependency python-memcached to v1.62 by @renovate[bot] in #11739
- silence noisy pytest output by @RayBB in #11720
- Migrate Subject and Publisher JSON Search to FastAPI by @RayBB in #11718
- remove deprecated languages code by @RayBB in #11756
- remove unused python files ia, mapreduce, disk, seq, edit by @RayBB in #11752
- remove completely commented out file by @RayBB in #11751
- redirect web.py endpoints to fastapi by @RayBB in #11713
- refactor: remove deprecated JSON API endpoints migrated to FastAPI. by @RayBB in #11717
- fix: Implement dictionary merging in
merge_propertyto correctly combineremote_idsduring author merges. by @RayBB in #11747 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #11273
- chore(deps): update dependency mypy to v1.19.1 by @renovate[bot] in #11744
- chore(deps): update dependency ruff to v0.14.14 by @renovate[bot] in #11759
- remove deprecated rule UP038 by @RayBB in #11763
- chore(deps): update dependency pytest to v9 by @renovate[bot] in #11760
- remove time argument from memcached delete by @RayBB in #11766
- updates for pytest v9 by @RayBB in #11767
- Standardize async function naming convention by @RayBB in #11770
- feat: Add 'Read More' web component by @lokesh in #11666
- chore(config): migrate Renovate config by @renovate[bot] in #11778
- chore(deps): update actions/labeler action to v6 by @renovate[bot] in #11779
- chore(deps): update actions/cache action to v5 by @renovate[bot] in #11780
- fix: Notes overflow in List's grid view by @lokesh in #11670
- chore(deps): update astral-sh/setup-uv action to v7 by @renovate[bot] in #11781
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #11782
- chore(deps): update codecov/codecov-action action to v5 by @renovate[bot] in #11783
- Only truncate list note if in grid view by @cdrini in #11784
- chore(deps): update actions/upload-pages-artifact action to v4 by @renovate[bot] in #11787
- chore(deps): update actions/stale action to v10 by @renovate[bot] in #11786
- Fix reading stats double-counted if appearing 2+ times on same work by @cdrini in #11802
- Handle orphaned editions passed to MergeUI record enhancer by @mheiman in #11703
- Fix fulltext search pagination: all pages returned identical results by @Copilot in #11797
- feat: Add 'Read More' - PART 2 by @lokesh in #11682
- Add solr updater lag monitoring by @cdrini in #11801
- remove extra cls variable being passed by @RayBB in #11808
- chore(deps): update dependency pydantic to v2.12.5 by @renovate[bot] in #11788
- Add debugger support for fastapi by @cdrini in #11789
- add fastapi to mypy types by @RayBB in #11805
- 10758/fix/allow openlibrary import covers by @DebbieSan in #11711
- remove all outdated code related to 'current' for reading goals by @RayBB in #11820
- Enable debugging for all code in FastAPI container by @RayBB in #11813
- feat: Load custom properties CSS file and auto-generate on change by @lokesh in #11827
- Make all async functions for solr class by @RayBB in #11772
- refactor: make
Solr.escapea static method and update its usage by @RayBB in #11771 - Migrate partials endpoint from querystring-based routing to path-based routing by @RayBB in #11828
- Fix duplicate header levels in GitHub issue templates by @Copilot in #11158
- Update Sentry SDK by @scottbarnes in #11202
- enable RUF059 by @RayBB in #11764
- feat: Add start link to Openlibrary OPDS feed by @MarcCoquand in #11803
- Remove redundant stats query from
store_counts.pyby @jimchamp in #11774 - DRY book edit flash message by @jimchamp in #11775
- Remove unused method from
SaveBookHelperby @jimchamp in #11776 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #11837
- chore(deps): update dependency ruff to v0.15.0 by @renovate[bot] in #11838
- chore(deps): update dependency stylelint to v16.26.1 by @renovate[bot] in #11840
- chore(deps): update dependency sinon to v21 by @renovate[bot] in #11842
- enable ruff typechecking rule by @RayBB in #11843
- Add types to vendors.py by @cdrini in #11433
- Use Richer UI install for PWA on Chrome by @ananyakaligal in #10393
- refactor: Upgrade to vue 3's native web component support by @b3nten in #11475
- Migrate Yearly Reading Goals to FastAPI by @RayBB in #11816
- remove method_memoize to DRY caching by @RayBB in #11684
- Add fast_web service to infogami compose by @RayBB in #11851
- remove pytest cov by @RayBB in #11833
- Update Croatian translation by @milotype in #11847
...
deploy-2026-01-22-at-20-03
What's Changed
- Remove
@herefrom deployment announcements by @jimchamp in #11681 - 11377/fix/blank cover on edit book positioning by @emggeorge in #11378
- deps: Update caniuse-lite to version 1.0.30001764 by @lokesh in #11689
- Adds API for activity feed by @jimchamp in #11690
- Remove gitpod references from codebase by @jimchamp in #11631
- Fix
copydocs.pyauthentication errors by @jimchamp in #11679 - Fix styling inconsistency in "Admin Only" section of Book Edit page by @KrishnaShuk in #11708
- Fix JSON follows handler by @jimchamp in #11691
- Add unique login stats to
/statspage by @jimchamp in #11697
Full Changelog: deploy-2026-01-08-at-18-54...deploy-2026-01-22-at-20-03
deploy-2026-01-08-at-18-54
What's Changed
- Pass required argument to homepage caching function by @jimchamp in #11606
- Sort the list carousel by last_modified by @cdrini in #11607
- Fix: Show work title in portrait/mobile view by @KrishnaShuk in #11583
- chore: Remove shelf+profile from publications by @MarcCoquand in #11574
- Use canonical URL in author search to avoid redirects by @cdrini in #11612
- Add chapters to solr by @cdrini in #11369
- Add Bluesky link to footer by @mekarpeles in #11622
- Remove dead code handling missing dependencies by @cdrini in #11627
- Check for sitemaps.log instead of sitemaps directory by @mekarpeles in #11626
- Let search inside work if availability is down by @cdrini in #11521
- Update dependency internetarchive to v5 [SECURITY] by @renovate[bot] in #11242
- Remove unused ia_count Solr field (ref #11586) by @bettercallok in #11642
- Remove unused ia_loaded_id Solr field (ref #11586) by @bettercallok in #11643
- Remove legacy ia_collection_s field, use ia_collection directly (ref #11586) by @bettercallok in #11644
- Add language-aware filtering to random book feature by @KrishnaShuk in #11630
- Adds Bengali translations by @prantikbanerjee2006 in #11657
- refactor: Define semantic font family LESS vars by @lokesh in #11540
- refactor: Define primitive and semantic border LESS variables by @lokesh in #11602
- refactor: Utilize semantic font family LESS vars by @lokesh in #11556
- refactor: Define Line Height LESS vars by @lokesh in #11619
- Fix 'ThreadedDict' object has no attribute 'site' in web.py fulltext search by @RayBB in #11667
- Update cron monitor script by @jimchamp in #11632
- move all search endpoints to fastapi by @RayBB in #11634
- Updates script to write all preferences to
storeby @jimchamp in #11668 - Exclude markdown files changes from triggering the
python_testsworkflow by @jimchamp in #11547 - Step 2 of #11620; don't load matomo/plausible for bots by @mekarpeles in #11621
- Make rate limits less aggressive by @cdrini in #11677
- Remove is_blessed_ip from repo by @cdrini in #11680
New Contributors
- @bettercallok made their first contribution in #11642
- @prantikbanerjee2006 made their first contribution in #11657
Full Changelog: deploy-2025-12-18-at-20-45...deploy-2026-01-08-at-18-54
deploy-2025-12-18-at-20-45
What's Changed
- Delete some dead code in readlinks.py by @cdrini in #11500
- Show multi-diff on /import/preview page by @cdrini in #11404
- fix: Console errors from premature colorbox resize calls by @lokesh in #11543
- Update Spanish translation by @dcapillae in #11567
- Update edition classification configurations by @jimchamp in #11568
- Update regex for
closeskeywords in PR assignment script by @jimchamp in #11554 - Fix heavily crawled books appearing in trending carousel by @cdrini in #11550
- Disable export buttons on form submit by @jimchamp in #11541
- Add
/ia/sync.jsonPOST handler by @jimchamp in #11230 - migrate search inside api to fastapi by @RayBB in #11454
- fix: improve UX and clarity for Bulk Search by @akramcodez in #11358
- Update pyopds2_openlibrary dependency version by @cdrini in #11575
- Switch books page lists to solr from db by @benbdeitch in #11187
- Initial
constbefore it is referenced by @jimchamp in #11582 - Add
job_nameargument to cron wrapper script by @jimchamp in #11589 - enable auto reload for fastapi in local environment by @RayBB in #11584
- fastapi search improve model validation and add api contract tests by @RayBB in #11549
- migrate languages.json to fastapi (adds memcached support to fastapi) by @RayBB in #11455
- refactor:
_load_legacy_wsginow internally resolves its config file path instead of receiving it as an argument. fastapi by @RayBB in #11484 - refactor: Clean up unused templates by @lokesh in #11604
- Tweak tagger/nginx rate limit logic by @cdrini in #11605
- Move counter link higher up by @cdrini in #11566
Full Changelog: deploy-2025-12-04-at-18-59...deploy-2025-12-18-at-20-45