v3.1.0
Paperless-ngx v3.1.0
Added 9
- Apply AI suggestions workflow action
- Support using remote OCR engines selectively
- Websocket heartbeat
- Sync OIDC groups to superuser and staff roles
- Merge documents as versions
- Allow selection of compression type and level during export
- Customizable icons for saved views
- Add --url argument to document_fuzzy_match to improve output
- Updates remote OCR parser to respect the OCR mode setting
Changed 8
- Apply visual tweaks to welcome widget
- Better support long list of views in documents list
- Add count badge to versions dropdown
- Add jitter to IMAP polling schedule
- Render paperless_ai prompts via Jinja2 templates instead of f-strings
- Prefer existing tags, types, correspondents, and storage paths in AI suggestions
- Reduce memory and I/O overhead of the document exporter during zip exports
- More efficient mail fetching
Fixed 3
- Prevent config autocomplete craziness
- Prevent token re-use in dropdown filtering
- Exclude version documents from bulk edit all
From Paperless-ngx
paperless-ngx 3.1.0
Features / Enhancements
- Enhancement: Apply AI suggestions workflow action @shamoon (#13639)
- Enhancement: welcome widget visual tweaks @shamoon (#13794)
- Enhancement: support using remote OCR engines selectively @shamoon (#13633)
- Enhancement: websocket heartbeat @oktupol (#13739)
- Enhancement: more v3 ui tweaks @shamoon (#13774)
- Tweak: better support long list of views in documents list @shamoon (#13769)
- QoL: add count badge to versions dropdown @shamoon (#13753)
- Tweakhancement: add jitter to IMAP polling schedule @shamoon (#13734)
- Enhancement: sync OIDC groups to superuser and staff roles @BeSovereign (#13060)
- Enhancement: merge documents as versions @shamoon (#13515)
- Tweak: adjust modal proportions for small screens @shamoon (#13728)
- Refactor: render paperless_ai prompts via Jinja2 templates instead of f-strings @stumpylog (#13698)
- Tweak: small visual tweaks / improvements & fixes @shamoon (#13700)
- Enhancement: prefer existing tags, types, correspondents, and storage paths in AI suggestions @stumpylog (#13676)
- Tweak: tweak permissions menu labels for shared user-dependent views @shamoon (#13685)
- Feature: Allow selection of compression type and and level during export @stumpylog (#13661)
- Enhancement: customizable icons for saved views @shamoon (#13388)
- Enhancement: Add --url argument to document_fuzzy_match to improve output @lukyjay (#13123)
- Feature: Updates remote OCR parser to respect the OCR mode setting @stumpylog (#13408)
- Tweak: improve no ML suggestions UX @shamoon (#13621)
- Performance: reduce memory and I/O overhead of the document exporter during zip exports @stumpylog (#13490)
- QoL: make name button text on attribute pages selectable @shamoon (#13592)
- Performance: More efficient mail fetching @stumpylog (#13432)
Bug Fixes
- Fix: prevent config autocomplete craziness @shamoon (#13808)
- Fix/performance: prevent token re-use in dropdown filtering, also a perf thing @shamoon (#13804)
- Fix: exclude version documents from bulk edit "all" @shamoon (#13791)
- Fix: fix bottom mobile nav buttons on Android @shamoon (#13780)
- Fix: lazy import guardian modules to fix search language setting @shamoon (#13768)
- Fix: version indexing fixes @shamoon (#13737)
- Fix: append charset to file response for text files @shamoon (#13759)
- Chore: pin Apache Tika images to 3.3.1 @shamoon (#13758)
- Fix: align bulk edit object perms with document model @shamoon (#13757)
- Fix: use selected version for doc detail emailing @shamoon (#13738)
- Fix: hide version delete button without global perms @shamoon (#13735)
- Fix: dont re-render path template when checking collisions @shamoon (#13718)
- Fix: DocumentClassifierSchema bounds @shamoon (#13707)
- Fix: remove shadow around attribute pages @shamoon (#13696)
- Zen: correct dropdown corner radius visual defect @shamoon (#13695)
- Fix: handle Android keyboard popper overlay @shamoon (#13694)
- Fix: only show create when there is text, hide set values if no fields in cf bulk edit dropdown @shamoon (#13688)
- Fix: reopen a fresh Tantivy index per write to prevent orphaned segment files @stumpylog (#13682)
- Fix: fix validation of workflow title assignment @maxtruxa (#13659)
- Fix: dont clip search dropdown on mobile @shamoon (#13675)
- Fix: include sharelink bundle perms in WebUI @shamoon (#13664)
- Fix: add pagination to saved views management page @shamoon (#13646)
- Fix: fixes for workflow assign custom field values @shamoon (#13630)
- Fix: deny deactivated users in permission filtering and auto-login @stumpylog (#13623)
- Fix: check bulk mail delete permissions for the whole batch up front @stumpylog (#13620)
- Fix: Allow DRF to validate the maximum API key length @stumpylog (#13614)
- Fix: render PDF form values in annotation layer @shamoon (#13607)
- QoL: disable name button without perms @shamoon (#13606)
- Fix: prevent debounce overwrites in advanced search field, also improve Esc behavior @shamoon (#13602)
- Fix: raise ParseError on remote OCR failure instead of silently continuing @stumpylog (#13574)
- Fix: use selected version when creating share links @shamoon (#13571)
- Fix: reject bulk edit permissions requests without the correct key @shamoon (#13563)
- Fix: correctly serve app logo specified in env @shamoon (#13561)
- Fix: prevent workflow passwords field type error @shamoon (#13552)
- Fix: correct Firefox print regression @shamoon (#13543)
- Fix: hide some saved view operations on management page without permissions @shamoon (#13542)
- Fix: disable pdfjs selection rendering @shamoon (#13538)
- Fix: hide sidebar drag grips with insufficient permissions @shamoon (#13536)
- Fix: don't re-queue a consume-folder file that is already queued and awaiting consumption @stumpylog (#13526)
- Fix: correct multi-search non-adjacent queries @shamoon (#13504)
- Fix: Content-Disposition filename normalization @shamoon (#13514)
- Fix: prevent duplicated text query with multiple date queries @shamoon (#13522)
- Fix: crash filtering document link custom fields with an unset or unrelated field present @ggouzi (#13518)
- Fix: parse unpadded yyyy-mm-dd date input regardless of locale @Se1foo (#13501)
Documentation
- Documentation: clarify default OCR mode changes in v3 @shamoon (#13666)
- Fix: fixes for workflow assign custom field values @shamoon (#13630)
- Documentation: add wiki links for AI stuff and parser plugins @shamoon (#13626)
Maintenance
- Chore(deps): Bump the actions group across 1 directory with 20 updates @dependabot[bot] (#13481)
Dependencies
- Chore: Upgrade Docker image to Python 3.14 @stumpylog (#13721)
- Chore(deps): Bump the uv group across 1 directory with 2 updates @dependabot[bot] (#13709)
- Chore: update, reorg some npm deps @shamoon (#13716)
- Chore: update fpdf2 to 2.8.8 @shamoon (#13629)
- Chore: update pnpm, add blockExoticSubdeps @shamoon (#13628)
- Chore(deps): Bump h2 from 4.3.0 to 4.4.1 in the uv group across 1 directory @dependabot[bot] (#13593)
- Chore(deps): Bump pdfjs-dist from 6.1.200 to 6.2.108 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#13594)
- Chore(deps): Bump cryptography from 48.0.1 to 50.0.0 in the uv group across 1 directory @dependabot[bot] (#13588)
- Chore(deps): Bump the utilities-patch group across 1 directory with 6 updates @dependabot[bot] (#13539)
- Chore(deps): Bump the utilities-minor group across 1 directory with 20 updates @dependabot[bot] (#13535)
- Chore(deps): Bump aiohttp from 3.14.1 to 3.14.3 in the uv group across 1 directory @dependabot[bot] (#13537)
- Chore(deps-dev): Bump zensical from 0.0.47 to 0.0.51 in the development group across 1 directory @dependabot[bot] (#13533)
- Chore(deps-dev): Bump postcss from 8.5.22 to 8.5.25 in /src/paperless_mail/templates in the npm_and_yarn group across 1 directory @dependabot[bot] (#13534)
- Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 4 updates @dependabot[bot] (#13532)
- Chore: ruff 0.16 upgrade @stumpylog (#13531)
- Chore(deps): Bump the actions group across 1 directory with 20 updates @dependabot[bot] (#13481)
- docker(deps): bump astral-sh/uv from 0.11.28-python3.12-trixie-slim to 0.11.32-python3.12-trixie-slim @dependabot[bot] (#13472)
- docker-compose(deps): bump nginx from 1.31.2-alpine to 1.31.3-alpine in /docker/compose @dependabot[bot] (#13470)
- docker-compose(deps): Bump greenmail/standalone from 2.1.9 to 2.1.11 in /docker/compose @dependabot[bot] (#13469)
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 18 updates @dependabot[bot] (#13476)
- Chore(deps-dev): Bump @playwright/test from 1.61.1 to 1.62.0 in /src-ui @dependabot[bot] (#13480)
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#13477)
- Chore(deps-dev): Bump @types/node from 26.1.0 to 26.1.1 in /src-ui @dependabot[bot] (#13479)
All App Changes
- Fix: prevent config autocomplete craziness @shamoon (#13808)
- Fix/performance: prevent token re-use in dropdown filtering, also a perf thing @shamoon (#13804)
- Enhancement: Apply AI suggestions workflow action @shamoon (#13639)
- Fix: exclude version documents from bulk edit "all" @shamoon (#13791)
- Enhancement: welcome widget visual tweaks @shamoon (#13794)
- Performance: fetch note authors with prefetch instead of one query each @shamoon (#13790)
- Tweak: more misc UI tweaks @shamoon (#13783)
- Enhancement: support using remote OCR engines selectively @shamoon (#13633)
- Fix: fix bottom mobile nav buttons on Android @shamoon (#13780)
- Enhancement: websocket heartbeat @oktupol (#13739)
- Fix: lazy import guardian modules to fix search language setting @shamoon (#13768)
- Enhancement: more v3 ui tweaks @shamoon (#13774)
- Chore: add some missing UI accessibility labels @shamoon (#13772)
- Chore: refactor permission checkbox live changes @shamoon (#13771)
- Tweak: better support long list of views in documents list @shamoon (#13769)
- Fix: version indexing fixes @shamoon (#13737)
- Fix: append charset to file response for text files @shamoon (#13759)
- Fix: align bulk edit object perms with document model @shamoon (#13757)
- QoL: add count badge to versions dropdown @shamoon (#13753)
- Tweakhancement: add jitter to IMAP polling schedule @shamoon (#13734)
- Fix: use selected version for doc detail emailing @shamoon (#13738)
- Fix: hide version delete button without global perms @shamoon (#13735)
- Enhancement: sync OIDC groups to superuser and staff roles @BeSovereign (#13060)
- Enhancement: merge documents as versions @shamoon (#13515)
- Tweak: adjust modal proportions for small screens @shamoon (#13728)
- Refactor: render paperless_ai prompts via Jinja2 templates instead of f-strings @stumpylog (#13698)
- Chore(deps): Bump the uv group across 1 directory with 2 updates @dependabot[bot] (#13709)
- Fix: dont re-render path template when checking collisions @shamoon (#13718)
- Chore: update, reorg some npm deps @shamoon (#13716)
- Fix: DocumentClassifierSchema bounds @shamoon (#13707)
- Tweak: small visual tweaks / improvements & fixes @shamoon (#13700)
- Fix: remove shadow around attribute pages @shamoon (#13696)
- Zen: correct dropdown corner radius visual defect @shamoon (#13695)
- Fix: handle Android keyboard popper overlay @shamoon (#13694)
- Enhancement: prefer existing tags, types, correspondents, and storage paths in AI suggestions @stumpylog (#13676)
- Fix: only show create when there is text, hide set values if no fields in cf bulk edit dropdown @shamoon (#13688)
- Fix: reopen a fresh Tantivy index per write to prevent orphaned segment files @stumpylog (#13682)
- Tweak: tweak permissions menu labels for shared user-dependent views @shamoon (#13685)
- Fix: fix validation of workflow title assignment @maxtruxa (#13659)
- Feature: Allow selection of compression type and and level during export @stumpylog (#13661)
- Fix: dont clip search dropdown on mobile @shamoon (#13675)
- Fix: include sharelink bundle perms in WebUI @shamoon (#13664)
- Enhancement: customizable icons for saved views @shamoon (#13388)
- Enhancement: Add --url argument to document_fuzzy_match to improve output @lukyjay (#13123)
- Feature: Updates remote OCR parser to respect the OCR mode setting @stumpylog (#13408)
- Performance: pass document chat queries as a QuerySet instead of a materialized.list @stumpylog (#13638)
- Fix: add pagination to saved views management page @shamoon (#13646)
- Fix: fixes for workflow assign custom field values @shamoon (#13630)
- Fix: deny deactivated users in permission filtering and auto-login @stumpylog (#13623)
- Chore: update fpdf2 to 2.8.8 @shamoon (#13629)
- Chore: update pnpm, add blockExoticSubdeps @shamoon (#13628)
- Fix: check bulk mail delete permissions for the whole batch up front @stumpylog (#13620)
- Tweak: improve no ML suggestions UX @shamoon (#13621)
- Fix: Allow DRF to validate the maximum API key length @stumpylog (#13614)
- Performance: unify permission-filtering backends, fixes Correspondent/Tag list slowness @stumpylog (#13601)
- Performance: generalize permitted_document_ids into permitted_object_ids for any model @stumpylog (#13578)
- Fix: render PDF form values in annotation layer @shamoon (#13607)
- QoL: disable name button without perms @shamoon (#13606)
- Fix: prevent debounce overwrites in advanced search field, also improve Esc behavior @shamoon (#13602)
- Performance: reduce memory and I/O overhead of the document exporter during zip exports @stumpylog (#13490)
- Chore(deps): Bump h2 from 4.3.0 to 4.4.1 in the uv group across 1 directory @dependabot[bot] (#13593)
- Chore(deps): Bump pdfjs-dist from 6.1.200 to 6.2.108 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#13594)
- QoL: make name button text on attribute pages selectable @shamoon (#13592)
- Fix: raise ParseError on remote OCR failure instead of silently continuing @stumpylog (#13574)
- Fix: use selected version when creating share links @shamoon (#13571)
- Chore: specify AI chat refine template @shamoon (#13564)
- Fix: reject bulk edit permissions requests without the correct key @shamoon (#13563)
- Fix: correctly serve app logo specified in env @shamoon (#13561)
- Fix: prevent workflow passwords field type error @shamoon (#13552)
- Chore(deps): Bump the utilities-patch group across 1 directory with 6 updates @dependabot[bot] (#13539)
- Chore(deps): Bump the utilities-minor group across 1 directory with 20 updates @dependabot[bot] (#13535)
- Performance: More efficient mail fetching @stumpylog (#13432)
- Performance: eliminate per-document guardian permission-check causing high CPU on document lists @stumpylog (#13505)
- Fix: correct Firefox print regression @shamoon (#13543)
- Fix: hide some saved view operations on management page without permissions @shamoon (#13542)
- Chore(deps): Bump aiohttp from 3.14.1 to 3.14.3 in the uv group across 1 directory @dependabot[bot] (#13537)
- Chore(deps-dev): Bump zensical from 0.0.47 to 0.0.51 in the development group across 1 directory @dependabot[bot] (#13533)
- Fix: disable pdfjs selection rendering @shamoon (#13538)
- Fix: hide sidebar drag grips with insufficient permissions @shamoon (#13536)
- Chore(deps-dev): Bump postcss from 8.5.22 to 8.5.25 in /src/paperless_mail/templates in the npm_and_yarn group across 1 directory @dependabot[bot] (#13534)
- Chore: ruff 0.16 upgrade @stumpylog (#13531)
- Fix: don't re-queue a consume-folder file that is already queued and awaiting consumption @stumpylog (#13526)
- Fix: correct multi-search non-adjacent queries @shamoon (#13504)
- Fix: Content-Disposition filename normalization @shamoon (#13514)
- Fix: prevent duplicated text query with multiple date queries @shamoon (#13522)
- Fix: crash filtering document link custom fields with an unset or unrelated field present @ggouzi (#13518)
- Fix: parse unpadded yyyy-mm-dd date input regardless of locale @Se1foo (#13501)
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 18 updates @dependabot[bot] (#13476)
- Chore(deps-dev): Bump @playwright/test from 1.61.1 to 1.62.0 in /src-ui @dependabot[bot] (#13480)
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#13477)
- Chore(deps-dev): Bump @types/node from 26.1.0 to 26.1.1 in /src-ui @dependabot[bot] (#13479)