paperless-ngx Release Notes
26 release notes curated from 1 source by the Releasebot Team. Last updated: Aug 2, 2026
- Aug 1, 2026
- Date parsed from source:Aug 1, 2026
- First seen by Releasebot:Aug 2, 2026
Paperless-ngx v3.0.5
paperless-ngx ships 3.0.5 with a broad bug-fix and performance polish release, improving search, custom fields, AI suggestions, PDF handling, email sending, and database behavior while also tightening documentation.
paperless-ngx 3.0.5
Bug Fixes
- Fix: accept Whoosh-era abbreviated relative-date units (yrs, mos, wks, etc) in search queries @stumpylog (#13486)
- Fix: fix edit dialog error change detection @shamoon (#13483)
- Fix: key the AI suggestion cache by model and endpoint @lunetics (#13449)
- Fix: validate custom field values in bulk operations @shamoon (#13457)
- Fixhancement: better handle empty fields from AI suggestions @shamoon (#13454)
- Fix: normalize monetary decimal symbol by locale @shamoon (#13427)
- Fix: fold overflowing path text in sanity checker @stumpylog (#13426)
- Fix: correct delayed add field button for custom fields @shamoon (#13424)
- Fix: hide attributes collapse / show button without UI settings @shamoon (#13425)
- Fix: consolidate born-digital PDF detection between archive decision and OCR @stumpylog (#13409)
- Fix: prevent scale vs page loop in pngx PDF viewer @shamoon (#13406)
- Fix: handle hidden line breaks in email subjects when sending email @shamoon (#13402)
- Fix: avoid NotSupportedError from document_importer on MariaDB @stumpylog (#13400)
- Fix: exclude next-period start from relative date-range filters @stumpylog (#13381)
- Fix: close non-atomic db connections in before_task_publish @shamoon (#13366)
- Chore/fix: refactor frontend task service @shamoon (#13365)
- Fix: fix Enter selection in search autocomplete @shamoon (#13361)
Documentation
- Documentation: PAPERLESS_CONSUMER_IGNORE_PATTERNS clarifications @shamoon (#13489)
- Documentation: Add Password Removal workflow action documentation @stumpylog (#13377)
Dependencies
- Chore(deps): Bump pymdown-extensions from 10.21.3 to 11.0 in the uv group across 1 directory @dependabot[bot] (#13378)
All App Changes
21 changes
- Fix: accept Whoosh-era abbreviated relative-date units (yrs, mos, wks, etc) in search queries @stumpylog (#13486)
- Fix: fix edit dialog error change detection @shamoon (#13483)
- Performance: sqlite-vec point-delete for document chunks @stumpylog (#13438)
- Fix: key the AI suggestion cache by model and endpoint @lunetics (#13449)
- Fix: validate custom field values in bulk operations @shamoon (#13457)
- Fixhancement: better handle empty fields from AI suggestions @shamoon (#13454)
- Performance: Use server side iterators during LLM index updating @stumpylog (#13430)
- Fix: normalize monetary decimal symbol by locale @shamoon (#13427)
- Fix: fold overflowing path text in sanity checker @stumpylog (#13426)
- Fix: correct delayed add field button for custom fields @shamoon (#13424)
- Fix: hide attributes collapse / show button without UI settings @shamoon (#13425)
- Fix: consolidate born-digital PDF detection between archive decision and OCR @stumpylog (#13409)
- Fix: prevent scale vs page loop in pngx PDF viewer @shamoon (#13406)
- Fix: handle hidden line breaks in email subjects when sending email @shamoon (#13402)
- Fix: avoid NotSupportedError from document_importer on MariaDB @stumpylog (#13400)
- Tweak: adjust doc details button toolbar flow @shamoon (#13382)
- Fix: exclude next-period start from relative date-range filters @stumpylog (#13381)
- Chore(deps): Bump pymdown-extensions from 10.21.3 to 11.0 in the uv group across 1 directory @dependabot[bot] (#13378)
- Fix: close non-atomic db connections in before_task_publish @shamoon (#13366)
- Chore/fix: refactor frontend task service @shamoon (#13365)
- Fix: fix Enter selection in search autocomplete @shamoon (#13361)
- Jul 28, 2026
- Date parsed from source:Jul 28, 2026
- First seen by Releasebot:Jul 29, 2026
Paperless-ngx v3.0.4
paperless-ngx releases 3.0.4 with bug fixes and performance improvements across OCR, search, permissions, previews, and LLM workflows, including smoother document handling, better filtering, and more reliable live updates.
paperless-ngx 3.0.4
Bug Fixes
- Fix: prevent pdfjs highlight scrolling from affecting the entire page @shamoon (#13355)
- Fix: don't skip OCR/archive for tagged PDFs with no actual text @stumpylog (#13351)
- Performance: more efficient diacritic normalization in dropdown filtering @shamoon (#13347)
- Fix: dedupe permission-visible documents when combined with multi-tag filters @stumpylog (#13345)
- Fixhancement: pass LLM output language to chat if specified @shamoon (#13340)
- Fix: ensure preview reload on live changes @shamoon (#13321)
- Fix: clamp all out out-of-range possible fields @stumpylog (#13316)
- Fix: add docstring to DocumentClassifierSchema for cleaner LLM tool description @stumpylog (#13315)
- Fix: guard build_document_node against stale FK on deleted correspondent/doc type @stumpylog (#13318)
- Fix: prevent search filter loss when closing document with Escape key @shamoon (#13317)
- Fix: fix frontend permissions display for stats/system perms @shamoon (#13305)
Documentation
- Documentation: fix PAPERLESS_AI_LLM_OUTPUT_LANGUAGE heading level @SuperSandro2000 (#13341)
Dependencies
- Chore: resolve npm provenance issues with chokidar and semver @shamoon (#13323)
All App Changes
14 changes
- Fix: prevent pdfjs highlight scrolling from affecting the entire page @shamoon (#13355)
- Fix: don't skip OCR/archive for tagged PDFs with no actual text @stumpylog (#13351)
- Performance: more efficient diacritic normalization in dropdown filtering @shamoon (#13347)
- Performance: prefetch notes and custom fields for LLM index text building @stumpylog (#13350)
- Fix: dedupe permission-visible documents when combined with multi-tag filters @stumpylog (#13345)
- Performance: Scope llm index updates to actually modified documents @stumpylog (#13322)
- Fixhancement: pass LLM output language to chat if specified @shamoon (#13340)
- Chore: resolve npm provenance issues with chokidar and semver @shamoon (#13323)
- Fix: ensure preview reload on live changes @shamoon (#13321)
- Fix: clamp all out out-of-range possible fields @stumpylog (#13316)
- Fix: add docstring to DocumentClassifierSchema for cleaner LLM tool description @stumpylog (#13315)
- Fix: guard build_document_node against stale FK on deleted correspondent/doc type @stumpylog (#13318)
- Fix: prevent search filter loss when closing document with Escape key @shamoon (#13317)
- Fix: fix frontend permissions display for stats/system perms @shamoon (#13305)
All of your release notes in one feed
Join Releasebot and get updates from paperless-ngx and hundreds of other software products.
- Jul 26, 2026
- Date parsed from source:Jul 26, 2026
- First seen by Releasebot:Jul 26, 2026
Paperless-ngx v3.0.3
paperless-ngx releases 3.0.3 with bug fixes and maintenance updates that improve PDF conversion, email parsing, traceback handling, search indexing, and proxy trust settings, plus a small navbar tweak and documentation refreshes for upgrades and NumPy changes.
paperless-ngx 3.0.3
Bug Fixes
- Fixhancement: PAPERLESS_ALLAUTH_TRUSTED_PROXY_COUNT @shamoon (#13281)
- Fix: preserve document fields during Gotenberg conversion to PDF @stumpylog (#13271)
- Fix: Makes the email date aware as soon as possible during parsing @stumpylog (#13266)
- Fix: Handle a plain string as Celery sometimes provides for the traceback @stumpylog (#13267)
- Fix: Emit the torch index into the requirements.txt for people still using it @stumpylog (#13265)
- Fix: handle notes without a user when building the search index @matthiasmast (#13260)
Documentation
- Docs: warn bare-metal users about stale files when upgrading @stumpylog (#13296)
- Documentation: Add the NumPy CPU baseline increase to the migration guide @stumpylog (#13269)
Maintenance
- Fix: Emit the torch index into the requirements.txt for people still using it @stumpylog (#13265)
All App Changes
6 changes
- Fixhancement: PAPERLESS_ALLAUTH_TRUSTED_PROXY_COUNT @shamoon (#13281)
- Tweak: adjust top navbar wrapping when AI chat button visible @shamoon (#13280)
- Fix: preserve document fields during Gotenberg conversion to PDF @stumpylog (#13271)
- Fix: Makes the email date aware as soon as possible during parsing @stumpylog (#13266)
- Fix: Handle a plain string as Celery sometimes provides for the traceback @stumpylog (#13267)
- Fix: handle notes without a user when building the search index @matthiasmast (#13260)
- Jul 24, 2026
- Date parsed from source:Jul 24, 2026
- First seen by Releasebot:Jul 24, 2026
Paperless-ngx v3.0.2
paperless-ngx fixes a broken migration in 3.0.2 after a 3.0.1 issue.
paperless-ngx 3.0.2
Bug Fixes
- Fix: fix broken migration in 3.0.1 @shamoon (#13242)
All App Changes
- Fix: fix broken migration in 3.0.1 @shamoon (#13242)
- Jul 24, 2026
- Date parsed from source:Jul 24, 2026
- First seen by Releasebot:Jul 24, 2026
Paperless-ngx v3.0.1
paperless-ngx fixes a critical v3.0.1 migration issue and recommends upgrading to v3.0.2, while also improving document list performance, AI chat behavior, similarity results, and several UI and database-related bugs.
Warning
An issue with database migrations prevents v3.0.1 from running, users should upgrade to v3.0.2
paperless-ngx 3.0.1
Bug Fixes
Fix: selection_data re-derives the filtered document set 5 times over @stumpylog (#13229)
Fix: exclude source document from its own RAG similarity results @stumpylog (#13233)
Fix: split mailrule maximum_age clamp into its own migration @stumpylog (#13231)
Chore: mark yes in confirm button for translation @shamoon (#13225)
Fix: correct URL for W001 check @shamoon (#13220)
Fix: ensure create dialog uses correct attribute type @shamoon (#13221)
Fix: correct database engine from postgres to postgresql @OberstVonGatow (#13213)
Fix: remove unnecessary .distinct() dominating document list queries @stumpylog (#13205)
Fix: also wrap non-breaking words in chat messages, handle whitespace @shamoon (#13211)
Fix: tag/custom-field document_count scales badly with tag count @stumpylog (#13203)
Fix: batch document user_can_change checks to avoid per-row N+1 @stumpylog (#13204)
Fix: fix app title restoration @shamoon (#13208)
Fix: handle long wrapping titles in AI chat document list @shamoon (#13206)
Dependencies
Chore(deps-dev): Bump postcss from 8.5.6 to 8.5.22 in /src/paperless_mail/templates in the npm_and_yarn group across 1 directory @dependabot[bot] (#13236)
Chore(deps): Bump pyasn1 from 0.6.3 to 0.6.4 in the uv group across 1 directory @dependabot[bot] (#13237)
Chore(deps): Bump the uv group across 1 directory with 8 updates @dependabot[bot] (#13189)
All App Changes
17 changes
Chore(deps-dev): Bump postcss from 8.5.6 to 8.5.22 in /src/paperless_mail/templates in the npm_and_yarn group across 1 directory @dependabot[bot] (#13236)
Fix: selection_data re-derives the filtered document set 5 times over @stumpylog (#13229)
Chore: reword "Settings > Default permissions" description for clarity @NotaInutilis (#13232)
Chore(deps): Bump pyasn1 from 0.6.3 to 0.6.4 in the uv group across 1 directory @dependabot[bot] (#13237)
Chore(deps): Bump the uv group across 1 directory with 8 updates @dependabot[bot] (#13189)
Fix: exclude source document from its own RAG similarity results @stumpylog (#13233)
Fix: split mailrule maximum_age clamp into its own migration @stumpylog (#13231)
Chore: mark yes in confirm button for translation @shamoon (#13225)
Fix: correct URL for W001 check @shamoon (#13220)
Fix: ensure create dialog uses correct attribute type @shamoon (#13221)
Fix: correct database engine from postgres to postgresql @OberstVonGatow (#13213)
Fix: remove unnecessary .distinct() dominating document list queries @stumpylog (#13205)
Fix: also wrap non-breaking words in chat messages, handle whitespace @shamoon (#13211)
Fix: tag/custom-field document_count scales badly with tag count @stumpylog (#13203)
Fix: batch document user_can_change checks to avoid per-row N+1 @stumpylog (#13204)
Fix: fix app title restoration @shamoon (#13208)
Fix: handle long wrapping titles in AI chat document list @shamoon (#13206)
Original source Similar to paperless-ngx with recent updates:
- Ubiquiti release notes876 release notes · Latest Aug 20, 2026
- n8n release notes65 release notes · Latest Aug 18, 2026
- Obsidian release notes107 release notes · Latest Aug 20, 2026
- Docker release notes41 release notes · Latest Aug 17, 2026
- OpenClaw release notes247 release notes · Latest Aug 20, 2026
- Hubspot release notes174 release notes · Latest Aug 12, 2026
- Jul 22, 2026
- Date parsed from source:Jul 22, 2026
- First seen by Releasebot:Jul 23, 2026
Paperless-ngx v3.0.0
paperless-ngx releases 3.0.0 with major breaking changes and a broad set of upgrades, including a new Tantivy search backend, document parser plugins, file versions, sharelink bundles, AI features, and a redesigned task system with performance and security improvements.
paperless-ngx 3.0.0
Original source
Breaking Changes
[BREAKING] Remove the positional arguments from the pre/post consume scripts @stumpylog (#12573)
[BREAKING] Decouple OCR control from archive file control @stumpylog (#12448)
[BREAKING] Chore: drop support for api versions < 9 @shamoon (#12284)
[BREAKING] Chore: Drop support for Python 3.10 @stumpylog (#12234)
[BREAKING] Chore: Refactor advanced database settings to allow more user configuration @stumpylog (#12165)
[BREAKING] Remove API v1 compatability @stumpylog (#12166)
[BREAKING] Remove pybzar as a barcode reader @stumpylog (#12065)
[BREAKING] Remove support for document and thumbnail encryption @stumpylog (#11850)
[BREAKING] Feature: Simplify and improve the consumer @stumpylog (#11753)
Notable Changes
Feature: Replace Whoosh with tantivy search backend @stumpylog (#12471)
Feature: document parser plugin framework @stumpylog (#12294)
Feature: document file versions @shamoon (#12061)
Feature: sharelink bundles @shamoon (#11682)
Feature: Paperless AI @shamoon (#10319)
Feature: Remote OCR (Azure AI) @shamoon (#10320)
Features / Enhancements
[Beta] Paperless-ngx v3.0.0 Beta @shamoon (#12713)
Tweakhancement (beta): allow some bulk operations with all @shamoon (#13193)
Security (beta): enforce current permissions in autocomplete @shamoon (#13188)
Security (beta): bound email linkification @shamoon (#13187)
Change: update root modified timestamp on version changes @shamoon (#13170)
Performance: add DB indexes for common query/sort patterns @stumpylog (#13167)
Performance: use NgOptimizedImage for thumbnail lazy loading @shamoon (#13169)
Performance: Tantivy indexing optimization @Merinorus (#13053)
Chorehancement: update to Angular v22, 'zoneless' / 'reactive' @shamoon (#13114)
Enhancement (beta): support LLM timeout config @shamoon (#13002)
Enhancement: ignore diacritics, support multiple substring matching for UI filtering @shamoon (#13021)
Enhancement(beta): replace LanceDB vector store with sqlite-vec @stumpylog (#12990)
Enhancement (beta): Switch the AI vector store to LanceDB @stumpylog (#12944)
Fixhancement (beta): tasks dismiss all @shamoon (#12949)
Enhancement (beta): add direct LLM language setting @shamoon (#12906)
Enhancement: try to respect language for AI suggestions @shamoon (#12894)
Enhancement: AI LLM chunk size and context window config @shamoon (#12891)
Enhancement: support ollama embeddings @shamoon (#12753)
Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog (#12757)
Enhancement: version-aware thumbnail etag @shamoon (#12754)
Documentation: Update v3 migration docs @shamoon (#12752)
Feature: Further reduce document importer memory usage @stumpylog (#12707)
Tweakhancement: use fixed position instead of display none for printing @shamoon (#12706)
Enhancement: Paperless-ngx v3 Logo @shamoon (#12673)
Tweakhancement: localize some more task result messages @shamoon (#12672)
Enhancement: chat message document links @shamoon (#12670)
Tweakhancement: make upload notification open an anchor link @shamoon (#12659)
Tweakhancement: tweak tasks UI, make open doc an anchor @shamoon (#12658)
Enhancement: show small task summary in system status @shamoon (#12634)
Enhancement: new Tasks UI @shamoon (#12614)
Feature: Allow monitoring access to tasks summary @stumpylog (#12624)
Tweak: remove stale index warning @shamoon (#12616)
Enhancement: add highlighting to title + content searches @shamoon (#12593)
Feature: Redesign the task system @stumpylog (#12584)
Feature: Tune SQLite default settings for increased speed @stumpylog (#12580)
Feature: Document fuzzy match improvements @stumpylog (#12579)
Enhancement: validate and sanitize uploaded logos @shamoon (#12551)
Enhancement: add view_global_statistics and view_system_status permissions @shamoon (#12530)
Fixhancement: include sharelinks + bundles in export/import @shamoon (#12479)
Enhancement: unify text search to use tantivy @shamoon (#12485)
Feature: Consumer logging correlation @stumpylog (#12510)
Security enhancement: allow opt-in blocking internal mail hosts @shamoon (#12502)
Feature: Replace Whoosh with tantivy search backend @stumpylog (#12471)
Fixhancement: include trashed documents in document exporter/importer @JanKleine (#12425)
Tweakhancement: show file extension in StoragePath test @shamoon (#12452)
Feature: Transition all checksums to use SHA256 @stumpylog (#12432)
Enhancement: auto-hide the search bar on mobile @shamoon (#12404)
Change: sort custom fields alphabetically by default @shamoon (#12358)
Feature: Add progress information to the classifier training for a better ux @stumpylog (#12331)
Feature: document parser plugin framework @stumpylog (#12294)
Enhancement: Make the StatusConsumer truly async @stumpylog (#12298)
Feature: Migrate import/export to rich progress @stumpylog (#12260)
Enhancement: Show more document details in merge dialog @svenstaro (#12271)
Enhancement: saved view sharing @shamoon (#12142)
Enhancement: “live” document updates @shamoon (#12141)
Enhancement: Improve the retagger output using rich @stumpylog (#12194)
Enhancement: Transition sanity check to rich and improve output @stumpylog (#12182)
Enhancement: Switch all indexing to use rich @stumpylog (#12193)
Feature: Switch progress bar library to rich @stumpylog (#12169)
Enhancment: Formatted filename for single document downloads @JanKleine (#12095)
Feature: document file versions @shamoon (#12061)
Enhancement: prevent duplicate mail processing across rules @shamoon (#12159)
Feature: move to trash action for workflows @JanKleine (#11176)
Tweakhancement: reset to page 1 on reset filters @shamoon (#12143)
Enhancement: consolidate management lists into document attributes section @shamoon (#12045)
Enhancement: option to stop processing further mail rules @shamoon (#12053)
Tweak: improve 2-digit year parsing @shamoon (#12044)
Enhancement: pngx pdf viewer @shamoon (#12043)
Fixhancement: improve ASN handling with PDF operations @shamoon (#11689)
Feature: Enable users to customize date parsing via plugins @stumpylog (#11931)
Feature: password removal workflow action @shamoon (#11665)
Enhancement: per-type object page sizing @shamoon (#11977)
Enhancement: improve filter drop-down performance with virtual scrolling @shamoon (#11973)
Tweakhancement: tweak bulk delete text @shamoon (#11967)
Feature: support split documents based on tag barcodes @schober-ch (#11645)
Enhancement: Add setting for default PDF Editor mode @JanKleine (#11927)
Fixhancement: auto-queue llm index if needed @shamoon (#11891)
Feature: sharelink bundles @shamoon (#11682)
Enhancement: user control of doc details fields @shamoon (#11906)
Enhancement: improve relative dates in date filter @JanKleine (#11899)
Enhancement: allow duplicates with warnings, UI for discovery @shamoon (#11815)
Enhancement: configurable SSO groups claim @Gabgobie (#11841)
Enhancement: support select all for management lists @shamoon (#11889)
Tweakhancement: display document id, with copy @shamoon (#11896)
Enhancement: Add support for app oidc @paulgessinger (#11756)
Enhancement: Add 'any of' workflow trigger filters @shamoon (#11683)
Enhancement: support doc_id placeholder in workflow templates @shamoon (#11847)
Performance: improve treenode inefficiencies @shamoon (#11606)
Feature: Remote OCR (Azure AI) @shamoon (#10320)
Feature: password removal action @shamoon (#11656)
Tweakhancement: use anchor element for management list quick filter buttons @shamoon (#11692)
Feature: Indonesian translation @shamoon (#11641)
Bug Fixes
Fix (beta): prevent pdfjs offsetParent warning @shamoon (#13197)
Fix (beta): dont include hidden buttons in virtual scroll container height @shamoon (#13194)
Fix (beta): fix custom field bulk editing for 'all' @shamoon (#13191)
Security (beta): two small permission check fixes @shamoon (#13186)
Fix (beta): short-circuit ObjectOwnedOrGrantedPermissionsFilter for superusers @stumpylog (#13183)
Fix (beta): compute num_notes via a subquery instead of Count()+distinct @stumpylog (#13182)
Fix: prevent tag assignment from reverting other pending workflow assignments @stumpylog (#13178)
Fix(beta): cache per-request effective-document resolution for thumb/metadata/preview @stumpylog (#13166)
Fix: fallback from archive version for share links @shamoon (#13163)
Fix: better handle saved view errors in dashboard widgets @shamoon (#13164)
Fix (beta): convert chat component to signal-backed Angular @shamoon (#13152)
Fix: HTTP 500 filtering documents by tags + custom field query on MariaDB @stumpylog (#13143)
Fix: scope ProcessedMail UID deduplication by IMAP UIDVALIDITY @chouquette (#12839)
Fix: allow setting any UID and GID when running rootless @Tahvok (#13090)
Fix (beta): fix sidebar document close button @shamoon (#13136)
Fix: include wasm assets in pdf.js-based viewer @shamoon (#13122)
Fix: fix ui labels from md5 to sha256 @shamoon (#13119)
Fixhancement: dont assign empty title in workflow with broken template @shamoon (#13112)
Fix: clamp mailrule max age before migration @shamoon (#13093)
Fix: use latest document version for bulk download @shamoon (#13103)
Fix (beta): handle relative date with comma query @shamoon (#13087)
Fix (beta): fix sanity checker affected document counts @NgoQuocViet2001 (#13052)
Fix (beta): preserve Unicode in localization prompt @shamoon (#13055)
Fix: change tantivy token limit to title field max length @shamoon (#13046)
Fix: include last-modified in doc etag @shamoon (#13044)
Fix (beta): Stream chunks during compaction to prevent oom on smaller installs @stumpylog (#13014)
Fixhancement (beta): truncate embedding queries for small chunk size @shamoon (#13028)
Fix(beta): Workaround a Tantivy panic in more like this searching @stumpylog (#13026)
Fix (beta): Catch consumer files created during watcher re-creations @stumpylog (#13013)
Fix (beta): restore v2 (Whoosh) advanced-search query compatibility @stumpylog (#13010)
Fix (beta): retry celery ping and report warning on no response @shamoon (#13012)
Fix (beta): don't send chat message on Enter while composing with IME (CJK) @mzyy94 (#12999)
Fix: Apply unicode normalization to all paths and path components @stumpylog (#12993)
Fix: Handle the UTF 16 and BOM text files better @stumpylog (#12994)
Fix (beta): avoid DRF update calling save on all fields @shamoon (#12992)
Fix: release pooled DB connection during AI LLM/embedding calls @stumpylog (#12983)
Fix: health-check pooled DB connections and close the pool on worker shutdown @stumpylog (#12977)
Fix: wrap long titles in delete confirm dialog @shamoon (#12973)
Fix (beta): fix re-ordering in merge dialog @shamoon (#12967)
Fix (beta): move task filtering to backend fully @shamoon (#12956)
Fix (beta): avoid unnecessary creating new PDF with pw removal workflow @shamoon (#12948)
Fixhancement (beta): tasks dismiss all @shamoon (#12949)
Fix (beta): correct chat message bg color @shamoon (#12955)
Fix (beta): respect disable state for suggest endpoint, require change perms @shamoon (#12942)
Fix: Ensure checksum comparision is using SHA256 @stumpylog (#12939)
Fix: Restrict the AI backend at settings configure time @stumpylog (#12903)
Fix (beta): correctly apply i18n in suggestions dropdown @shamoon (#12905)
Fix: Lock AI index during reading and don't index documents many times during a bulk update @stumpylog (#12899)
Fix: Minor fixes for the AI indexing @stumpylog (#12893)
Fix (beta): dont use tool calling with ollama @shamoon (#12896)
Fix: Improvements for security around the AI @stumpylog (#12895)
Fix: correctly show timestamp tooltip on history item @nathanaelhoun (#12879)
Fix: Fold query and autocomplete terms with Tantivy's ascii_fold so special letters match @stumpylog (#12868)
Fix: Don't store autocomplete_word, only index it @stumpylog (#12867)
Fix: Preserve Whoosh date range swapping in Tantviy @stumpylog (#12866)
Fix: Always release search index writer @stumpylog (#12865)
Fix: Handle CJK title, content and metadata searching @stumpylog (#12862)
Fix: Restrict date query rewrites to date or datetime fields only @stumpylog (#12864)
Fix: Missing call to tanvity wait_merging_threads @stumpylog (#12863)
Fix: Handle tanvity index lock contention @stumpylog (#12856)
Fix (beta): better catch chat errors @shamoon (#12854)
Security (beta): fixes for v3 beta @shamoon (#12838)
Fix (beta): normalize long punctuation chunks to improve embedding @shamoon (#12848)
Fix: use chord.on_error before apply_async @shamoon (#12842)
Fix: Don't use smaller integer fields for some workflow fields @stumpylog (#12834)
Fix: Password removal source file location @stumpylog (#12830)
Fix (beta): use correct html button type for custom field buttons @shamoon (#12819)
Fix: Defer password removal workflow action until the file is in place @stumpylog (#12814)
Fix: Allow setting allauth rate limit configuration settings @stumpylog (#12798)
Fix: Don't embed the metadata which is already embedded into the context @stumpylog (#12795)
Fix: Sanitize dash or plus from the text search path @stumpylog (#12789)
Fix: improve new tasks ui layout across screen sizes @shamoon (#12784)
Fix: Update parser contract to require empty strings, not None @shamoon (#12775)
Fix: Use a persistent, writeable location for hugging face models @stumpylog (#12771)
Fix: create LLM_INDEX_DIR before writing meta.json on first run @pReya (#12759)
Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog (#12757)
Fix: use response synthesizer for RAG doc chat @shamoon (#12751)
Fix: only update modified field in notes actions @shamoon (#12750)
Fix: Handle dash or plus operators in search queries @stumpylog (#12734)
Fixes trash preview when a document has deleted versions @stumpylog (#12742)
Fix: exclude versions from stats count @shamoon (#12738)
Fixes celery chords by using Redis as our result backend @stumpylog (#12741)
Fix: bump version.py to 3.0.0 also @shamoon (#12736)
Fix: makes the font cache folder writeable to all users @stumpylog (#12726)
Fixes Whoosh year only queries to be rewritten to Tantivy date syntax @stumpylog (#12725)
Fix: pass allow parallel tool calls in LLM client @shamoon (#12718)
Fix: Handle passwords for removal action as lists @stumpylog (#12716)
Bumps all our versions to 3.0.0 @stumpylog (#12715)
Fix: avoid unnecessary close_old_connections in Celery task dispatch @stumpylog (#12701)
Fix: apply tag changes directly to document in db @shamoon (#12664)
Fix: Use FileResponse for file API responses @stumpylog (#12638)
Fix: Changes bare metal webserver to use uvloop @stumpylog (#12626)
Fixhancement: Exact custom field monetary exact searching @stumpylog (#12592)
Fix: relative added date check visibility @shamoon (#12600)
Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi (#12597)
Fix: reject invalid requests to API notes endpoint @ggouzi (#12582)
Fixhancement: include sharelinks + bundles in export/import @shamoon (#12479)
Fix: Respect workflow change_groups during consumption @stumpylog (#12431)
Fix: Don't try to update the user when running as non-root @stumpylog (#12365)
Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons @cryptomilk (#12239)
Fixhancement: show sequential + id version labels, fix padding @shamoon (#12196)
Fix: correct user dropdown button icon styling @shamoon (#12092)
Fix: Handle an OOM kill of celery workers in the task handler @stumpylog (#12040)
Fix: re-run ASN check after barcode detection @shamoon (#11681)
Fix: prevent infinite loading crash in mail component @shamoon (#11978)
Fix: fix broken docker create_classifier command in 2.20.6 @shamoon (#11965)
Fix: ensure css color-scheme for dark mode @shamoon (#11855)
Fix: fix tag list horizontal scroll, again @shamoon (#11839)
Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon (#11811)
Fix: use explicit order field for workflow actions @shamoon (#11781)
Fix: fix recurring workflow to respect latest run time @shamoon (#11735)
Fixhancement: add error handling and retry when opening index @shamoon (#11731)
Fix: validate cf integer values within PostgreSQL range @shamoon (#11666)
Fix: support ordering by storage path name @shamoon (#11661)
Fix: propagate metadata override created value @shamoon (#11659)
Fix: prevent ASN collisions for merge operations @shamoon (#11634)
Documentation
[Beta] Paperless-ngx v3.0.0 Beta @shamoon (#12713)
Fix: clamp mailrule max age before migration @shamoon (#13093)
Documentation (beta): Updates documentation for new v3 features @stumpylog (#13033)
Documentation: fix PAPERLESS_DATE_PARSER_LANGUAGES formatting @shamoon (#12997)
Documentation: remove duplicate words in three files @mvanhorn (#12852)
Fix: Allow setting allauth rate limit configuration settings @stumpylog (#12798)
Documentation: Update v3 migration docs @shamoon (#12752)
Enhancement: Paperless-ngx v3 Logo @shamoon (#12673)
Chore: separate actions from bulk edit endpoint @shamoon (#12286)
Chore: Switches to use prek in place of pre-commit @stumpylog (#12002)
Chore: upgrade to node v24 @shamoon (#11747)
Maintenance
[Beta] Paperless-ngx v3.0.0 Beta @shamoon (#12713)
Chore(deps): Bump the actions group across 1 directory with 14 updates @dependabot[bot] (#13079)
Chore(deps): Bump the actions group across 1 directory with 12 updates @dependabot[bot] (#12909)
Chore(deps): Bump the actions group across 1 directory with 17 updates @dependabot[bot] (#12686)
Chore(deps): Bump the actions group across 1 directory with 4 updates @dependabot[bot] (#12538)
Chore(deps-dev): Bump @playwright/test from 1.58.2 to 1.59.0 in /src-ui @dependabot[bot] (#12537)
Chore: address more zizmor flags @shamoon (#12529)
Chore: Resolves some zizmor reported code scan findings @stumpylog (#12516)
Chore(deps): Bump the actions group across 1 directory with 9 updates @dependabot[bot] (#12490)
Chore(deps): Bump the actions group with 2 updates @dependabot[bot] (#12377)
Chore(deps): Bump the actions group with 3 updates @dependabot[bot] (#12322)
Chore: Don't upload digets file as a zip @stumpylog (#12264)
Chore(deps): Bump the actions group across 1 directory with 6 updates @dependabot[bot] (#12224)
Chore(deps): Bump j178/prek-action from 1.1.0 to 1.1.1 in the actions group @dependabot[bot] (#12033)
Chore: Switches to use prek in place of pre-commit @stumpylog (#12002)
Chore: Enable mypy checking in CI @stumpylog (#11991)
Chore(deps): Bump the actions group with 2 updates @dependabot[bot] (#11966)
Chore: upgrade to node v24 @shamoon (#11747)
Performance: pre-compress static files on ARM64 @stumpylog (#11721)
Chore(deps): Bump the actions group with 4 updates @dependabot[bot] (#11695)
Feature: Indonesian translation @shamoon (#11641)
Dependencies
162 changes
Removed for character
All App Changes
360 changes
[Beta] Paperless-ngx v3.0.0 Beta @shamoon (#12713)
Chore (beta): mark first batch of thumbnails as priorty for LCP warning @shamoon (#13196)
Fix (beta): prevent pdfjs offsetParent warning @shamoon (#13197)
Fix (beta): dont include hidden buttons in virtual scroll container height @shamoon (#13194)
Tweakhancement (beta): allow some bulk operations with all @shamoon (#13193)
Fix (beta): fix custom field bulk editing for 'all' @shamoon (#13191)
Security (beta): enforce current permissions in autocomplete @shamoon (#13188)
Security (beta): bound email linkification @shamoon (#13187)
Security (beta): two small permission check fixes @shamoon (#13186)
Fix (beta): short-circuit ObjectOwnedOrGrantedPermissionsFilter for superusers @stumpylog (#13183)
Fix (beta): compute num_notes via a subquery instead of Count()+distinct @stumpylog (#13182)
Change: update root modified timestamp on version changes @shamoon (#13170)
Fix: prevent tag assignment from reverting other pending workflow assignments @stumpylog (#13178)
Performance: add DB indexes for common query/sort patterns @stumpylog (#13167)
Performance: use NgOptimizedImage for thumbnail lazy loading @shamoon (#13169)
Fix(beta): cache per-request effective-document resolution for thumb/metadata/preview @stumpylog (#13166)
Fix: fallback from archive version for share links @shamoon (#13163)
Fix: better handle saved view errors in dashboard widgets @shamoon (#13164)
Fix (beta): convert chat component to signal-backed Angular @shamoon (#13152)
Fix: HTTP 500 filtering documents by tags + custom field query on MariaDB @stumpylog (#13143)
Performance: Tantivy indexing optimization @Merinorus (#13053)
Chore(deps-dev): Bump the development group across 1 directory with 2 updates @dependabot[bot] (#13068)
Fix: scope ProcessedMail UID deduplication by IMAP UIDVALIDITY @chouquette (#12839)
Fix (beta): fix sidebar document close button @shamoon (#13136)
Fix: include wasm assets in pdf.js-based viewer @shamoon (#13122)
Fix: fix ui labels from md5 to sha256 @shamoon (#13119)
Chorehancement: update to Angular v22, 'zoneless' / 'reactive' @shamoon (#13114)
Fixhancement: dont assign empty title in workflow with broken template @shamoon (#13112)
Fix: clamp mailrule max age before migration @shamoon (#13093)
Fix: use latest document version for bulk download @shamoon (#13103)
Fix (beta): handle relative date with comma query @shamoon (#13087)
Chore(deps): Bump pdfjs-dist from 5.7.284 to 6.0.227 in /src-ui @dependabot[bot] (#13080)
Chore(deps-dev): Bump @playwright/test from 1.60.0 to 1.61.1 in /src-ui @dependabot[bot] (#13078)
Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#13076)
Chore(deps): Bump uuid from 14.0.0 to 14.0.1 in /src-ui @dependabot[bot] (#13077)
Chore(deps-dev): Bump jest-preset-angular from 16.1.5 to 17.0.0 in /src-ui in the frontend-jest-dependencies group across 1 directory @dependabot[bot] (#13075)
Chore(deps-dev): Bump @types/node from 25.9.1 to 26.0.0 in /src-ui @dependabot[bot] (#13081)
Fix (beta): fix sanity checker affected document counts @NgoQuocViet2001 (#13052)
Fix (beta): preserve Unicode in localization prompt @shamoon (#13055)
Fix: change tantivy token limit to title field max length @shamoon (#13046)
Fix: include last-modified in doc etag @shamoon (#13044)
Fix (beta): Stream chunks during compaction to prevent oom on smaller installs @stumpylog (#13014)
Fixhancement (beta): truncate embedding queries for small chunk size @shamoon (#13028)
Enhancement (beta): support LLM timeout config @shamoon (#13002)
Fix(beta): Workaround a Tantivy panic in more like this searching @stumpylog (#13026)
Chore (beta): set tool_required to openai-like llm calls @shamoon (#13025)
Enhancement: ignore diacritics, support multiple substring matching for UI filtering @shamoon (#13021)
Fix (beta): Catch consumer files created during watcher re-creations @stumpylog (#13013)
Chore(deps): Bump the npm_and_yarn group across 1 directory with 3 updates @dependabot[bot] (#13016)
Fix (beta): restore v2 (Whoosh) advanced-search query compatibility @stumpylog (#13010)
Fix (beta): retry celery ping and report warning on no response @shamoon (#13012)
Enhancement(beta): replace LanceDB vector store with sqlite-vec @stumpylog (#12990)
Chore(deps): Bump the uv group across 1 directory with 2 updates @dependabot[bot] (#12995)
Chore(deps): Bump the utilities-patch group across 1 directory with 4 updates @dependabot[bot] (#12931)
Fix (beta): don't send chat message on Enter while composing with IME (CJK) @mzyy94 (#12999)
Fix: Apply unicode normalization to all paths and path components @stumpylog (#12993)
Fix: Handle the UTF 16 and BOM text files better @stumpylog (#12994)
Fix (beta): avoid DRF update calling save on all fields @shamoon (#12992)
Fix: release pooled DB connection during AI LLM/embedding calls @stumpylog (#12983)
Fix: health-check pooled DB connections and close the pool on worker shutdown @stumpylog (#12977)
Fix: wrap long titles in delete confirm dialog @shamoon (#12973)
Fix (beta): fix re-ordering in merge dialog @shamoon (#12967)
Fix (beta): move task filtering to backend fully @shamoon (#12956)
Chore(deps-dev): Bump types-markdown from 3.10.2.20260211 to 3.10.2.20260518 @dependabot[bot] (#12927)
Chore(deps): Bump aiohttp from 3.13.4 to 3.14.0 in the uv group across 1 directory @dependabot[bot] (#12930)
Fix (beta): avoid unnecessary creating new PDF with pw removal workflow @shamoon (#12948)
Enhancement (beta): Switch the AI vector store to LanceDB @stumpylog (#12944)
Fixhancement (beta): tasks dismiss all @shamoon (#12949)
Fix (beta): correct chat message bg color @shamoon (#12955)
Fix (beta): respect disable state for suggest endpoint, require change perms @shamoon (#12942)
Fix: Ensure checksum comparision is using SHA256 @stumpylog (#12939)
Fix: Restrict the AI backend at settings configure time @stumpylog (#12903)
Enhancement (beta): add direct LLM language setting @shamoon (#12906)
Chore(deps-dev): Bump @playwright/test from 1.59.1 to 1.60.0 in /src-ui @dependabot[bot] (#12919)
Fix (beta): correctly apply i18n in suggestions dropdown @shamoon (#12905)
Chore(deps-dev): Bump @types/node from 25.6.0 to 25.9.1 in /src-ui @dependabot[bot] (#12915)
Chore(deps): Bump pdfjs-dist from 5.6.205 to 5.7.284 in /src-ui @dependabot[bot] (#12918)
Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#12913)
Chore(deps-dev): Bump webpack from 5.106.2 to 5.107.2 in /src-ui @dependabot[bot] (#12917)
Chore(deps): Bump zone.js from 0.16.1 to 0.16.2 in /src-ui @dependabot[bot] (#12916)
Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 3 updates @dependabot[bot] (#12908)
Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @dependabot[bot] (#12907)
Fix: Lock AI index during reading and don't index documents many times during a bulk update @stumpylog (#12899)
Fix: Minor fixes for the AI indexing @stumpylog (#12893)
Fix (beta): dont use tool calling with ollama @shamoon (#12896)
Enhancement: try to respect language for AI suggestions @shamoon (#12894)
Enhancement: AI LLM chunk size and context window config @shamoon (#12891)
Fix: Improvements for security around the AI @stumpylog (#12895)
Fix: correctly show timestamp tooltip on history item @nathanaelhoun (#12879)
Fix: Fold query and autocomplete terms with Tantivy's ascii_fold so special letters match @stumpylog (#12868)
Fix: Don't store autocomplete_word, only index it @stumpylog (#12867)
Fix: Preserve Whoosh date range swapping in Tantviy @stumpylog (#12866)
Fix: Always release search index writer @stumpylog (#12865)
Fix: Handle CJK title, content and metadata searching @stumpylog (#12862)
Fix: Restrict date query rewrites to date or datetime fields only @stumpylog (#12864)
Fix: Missing call to tanvity wait_merging_threads @stumpylog (#12863)
Fix: Handle tanvity index lock contention @stumpylog (#12856)
Fix (beta): better catch chat errors @shamoon (#12854)
Performance (beta): dont re-build vector index with each chat @shamoon (#12847)
Security (beta): fixes for v3 beta @shamoon (#12838)
Fix (beta): normalize long punctuation chunks to improve embedding @shamoon (#12848)
Fix: use chord.on_error before apply_async @shamoon (#12842)
Fix: Don't use smaller integer fields for some workflow fields @stumpylog (#12834)
Fix: Password removal source file location @stumpylog (#12830)
Fix (beta): use correct html button type for custom field buttons @shamoon (#12819)
Fix: Defer password removal workflow action until the file is in place @stumpylog (#12814)
Fix: Allow setting allauth rate limit configuration settings @stumpylog (#12798)
Fix: Don't embed the metadata which is already embedded into the context @stumpylog (#12795)
Fix: Sanitize dash or plus from the text search path @stumpylog (#12789)
Fix: improve new tasks ui layout across screen sizes @shamoon (#12784)
Fix: Update parser contract to require empty strings, not None @shamoon (#12775)
Chore: Further dependency security updates @stumpylog (#12780)
Fix: Use a persistent, writeable location for hugging face models @stumpylog (#12771)
Chore(deps): Bump hono from 4.12.16 to 4.12.18 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12767)
Enhancement: support ollama embeddings @shamoon (#12753)
Fix: create LLM_INDEX_DIR before writing meta.json on first run @pReya (#12759)
Chore(deps): Bump @babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12764)
Chore(deps): Bump fast-uri from 3.1.1 to 3.1.2 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12763)
Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog (#12757)
Fix: use response synthesizer for RAG doc chat @shamoon (#12751)
Fix: only update modified field in notes actions @shamoon (#12750)
Enhancement: version-aware thumbnail etag @shamoon (#12754)
Documentation: Update v3 migration docs @shamoon (#12752)
Fix: Handle dash or plus operators in search queries @stumpylog (#12734)
Fixes trash preview when a document has deleted versions @stumpylog (#12742)
Fix: exclude versions from stats count @shamoon (#12738)
Fixes celery chords by using Redis as our result backend @stumpylog (#12741)
Fix: bump version.py to 3.0.0 also @shamoon (#12736)
Chore: Targeted dependency upgrades @stumpylog (#12731)
Fixes Whoosh year only queries to be rewritten to Tantivy date syntax @stumpylog (#12725)
Fix: pass allow parallel tool calls in LLM client @shamoon (#12718)
Fix: Handle passwords for removal action as lists @stumpylog (#12716)
Bumps all our versions to 3.0.0 @stumpylog (#12715)
Feature: Further reduce document importer memory usage @stumpylog (#12707)
Chore(deps-dev): Bump @playwright/test from 1.59.0 to 1.59.1 in /src-ui @dependabot[bot] (#12692)
Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#12689)
Chore(deps-dev): Bump @codecov/webpack-plugin from 1.9.1 to 2.0.1 in /src-ui @dependabot[bot] (#12691)
Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 2 updates @dependabot[bot] (#12685)
Chore(deps-dev): Bump @types/node from 25.5.0 to 25.6.0 in /src-ui @dependabot[bot] (#12690)
Chore(deps-dev): Bump webpack from 5.105.3 to 5.106.2 in /src-ui @dependabot[bot] (#12693)
Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 15 updates @dependabot[bot] (#12684)
Tweakhancement: use fixed position instead of display none for printing @shamoon (#12706)
Fix: avoid unnecessary close_old_connections in Celery task dispatch @stumpylog (#12701)
Chore(deps): Bump the utilities-patch group across 1 directory with 7 updates @dependabot[bot] (#12702)
Chore(deps): Bump the utilities-minor group across 1 directory with 9 updates @dependabot[bot] (#12696)
Chore(deps): Bump ocrmypdf from 17.4.0 to 17.4.2 in the document-processing group across 1 directory @dependabot[bot] (#12687)
Chore(deps-dev): Bump the development group with 2 updates @dependabot[bot] (#12683)
Enhancement: Paperless-ngx v3 Logo @shamoon (#12673)
Tweakhancement: localize some more task result messages @shamoon (#12672)
Enhancement: chat message document links @shamoon (#12670)
Fix: apply tag changes directly to document in db @shamoon (#12664)
Tweakhancement: make upload notification open an anchor link @shamoon (#12659)
Tweakhancement: tweak tasks UI, make open doc an anchor @shamoon (#12658)
Fix: Use FileResponse for file API responses @stumpylog (#12638)
Chore: Paginate the task listing @stumpylog (#12633)
Enhancement: show small task summary in system status @shamoon (#12634)
Security: Don't allow the example secret key as a secret key @stumpylog (#12630)
Chore(deps): Bump uuid from 13.0.0 to 14.0.0 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12627)
Enhancement: new Tasks UI @shamoon (#12614)
Feature: Allow monitoring access to tasks summary @stumpylog (#12624)
Chore(deps): Bump lxml from 6.0.2 to 6.1.0 in the uv group across 1 directory @dependabot[bot] (#12619)
Performance: Increases workflow related M2M prefetching @stumpylog (#12618)
Tweak: remove stale index warning @shamoon (#12616)
Fixhancement: Exact custom field monetary exact searching @stumpylog (#12592)
Performance: Resolves another N+1 query related to custom fields @stumpylog (#12617)
Enhancement: add highlighting to title + content searches @shamoon (#12593)
Feature: Redesign the task system @stumpylog (#12584)
Fix: relative added date check visibility @shamoon (#12600)
Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi (#12597)
Chore(deps): Bump hono from 4.12.12 to 4.12.14 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12585)
Feature: Tune SQLite default settings for increased speed @stumpylog (#12580)
Feature: Document fuzzy match improvements @stumpylog (#12579)
Fix: reject invalid requests to API notes endpoint @ggouzi (#12582)
[BREAKING] Remove the positional arguments from the pre/post consume scripts @stumpylog (#12573)
Chore(deps): Bump follow-redirects from 1.15.11 to 1.16.0 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12575)
Chore(deps): Bump pillow from 12.1.1 to 12.2.0 in the uv group across 1 directory @dependabot[bot] (#12574)
Chore(deps-dev): Bump pytest from 9.0.2 to 9.0.3 in the uv group across 1 directory @dependabot[bot] (#12568)
Enhancement: validate and sanitize uploaded logos @shamoon (#12551)
Chore(deps): Bump the utilities-minor group across 1 directory with 19 updates @dependabot[bot] (#12540)
Chore(deps): Bump cryptography from 46.0.6 to 46.0.7 in the uv group across 1 directory @dependabot[bot] (#12546)
Chore(deps-dev): Bump types-python-dateutil from 2.9.0.20260305 to 2.9.0.20260323 @dependabot[bot] (#12542)
Chore(deps-dev): Bump types-pytz from 2025.2.0.20251108 to 2026.1.1.20260304 @dependabot[bot] (#12541)
Chore(deps): Bump django-guardian from 3.3.0 to 3.3.1 in the utilities-patch group across 1 directory @dependabot[bot] (#12539)
Chore(deps-dev): Bump zensical from 0.0.29 to 0.0.31 in the development group across 1 directory @dependabot[bot] (#12532)
Chore(deps): Bump pdfjs-dist from 5.4.624 to 5.6.205 in /src-ui @dependabot[bot] (#12536)
Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 3 updates @dependabot[bot] (#12535)
Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 5 updates @dependabot[bot] (#12533)
Chore(deps-dev): Bump jest-preset-angular from 16.1.1 to 16.1.2 in /src-ui in the frontend-jest-dependencies group across 1 directory @dependabot[bot] (#12534)
Chore(deps-dev): Bump @playwright/test from 1.58.2 to 1.59.0 in /src-ui @dependabot[bot] (#12537)
Enhancement: add view_global_statistics and view_system_status permissions @shamoon (#12530)
Chore(deps): Bump the npm_and_yarn group across 1 directory with 2 updates @dependabot[bot] (#12531)
[BREAKING] Decouple OCR control from archive file control @stumpylog (#12448)
Fixhancement: include sharelinks + bundles in export/import @shamoon (#12479)
Chore: Better typed status manager messages @stumpylog (#12509)
Enhancement: unify text search to use tantivy @shamoon (#12485)
Feature: Consumer logging correlation @stumpylog (#12510)
Chore(deps): Bump djangorestframework from 3.16.1 to 3.17.1 in the django-ecosystem group across 1 directory @dependabot[bot] (#12488)
Chore(deps): Bump the document-processing group across 1 directory with 3 updates @dependabot[bot] (#12489)
Chore(deps): Bump the utilities-patch group across 1 directory with 5 updates @dependabot[bot] (#12499)
Security: Sign the Celery pickled tasks @stumpylog (#12504)
Security enhancement: allow opt-in blocking internal mail hosts @shamoon (#12502)
Feature: Replace Whoosh with tantivy search backend @stumpylog (#12471)
Chore(deps): Bump aiohttp from 3.13.3 to 3.13.4 in the uv group across 1 directory @dependabot[bot] (#12486)
Chore(deps): Bump lodash from 4.17.23 to 4.18.1 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12498)
Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 20 updates @dependabot[bot] (#12491)
Chore(deps-dev): Bump @types/node from 25.4.0 to 25.5.0 in /src-ui @dependabot[bot] (#12494)
Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @dependabot[bot] (#12493)
Performance: support bulk edit without id lists @shamoon (#12355)
Performance: deprecate and remove usage of all in API results @shamoon (#12309)
Performance: support passing selection data with filtered document requests @shamoon (#12300)
Chore(deps): Bump cryptography from 46.0.5 to 46.0.6 in the uv group across 1 directory @dependabot[bot] (#12458)
Tweakhancement: show file extension in StoragePath test @shamoon (#12452)
Feature: Transition all checksums to use SHA256 @stumpylog (#12432)
Chore(deps): Bump requests from 2.32.5 to 2.33.0 in the uv group across 1 directory @dependabot[bot] (#12441)
Enhancement: auto-hide the search bar on mobile @shamoon (#12404)
Chore: logger, response and template sanitization cleanup @shamoon (#12439)
Fix: Respect workflow change_groups during consumption @stumpylog (#12431)
Security: prevent prototype pollution in frontend settings and list view @shamoon (#12438)
Chore(deps): Bump cbor2 from 5.8.0 to 5.9.0 in the uv group across 1 directory @dependabot[bot] (#12424)
Chore(deps): Bump tinytag from 2.2.0 to 2.2.1 in the uv group across 1 directory @dependabot[bot] (#12396)
Chore(deps): Bump ujson from 5.11.0 to 5.12.0 @dependabot[bot] (#12387)
Chore(deps): Bump pyasn1 from 0.6.2 to 0.6.3 @dependabot[bot] (#12370)
Chore(deps): Bump the utilities-patch group across 1 directory with 2 updates @dependabot[bot] (#12382)
Chore(deps): Bump openai from 2.24.0 to 2.26.0 in the utilities-minor group @dependabot[bot] (#12379)
Chore(deps-dev): Bump types-python-dateutil from 2.9.0.20260124 to 2.9.0.20260305 @dependabot[bot] (#12380)
Chore(deps): Update django-allauth[mfa,socialaccount] requirement from ~=65.14.0 to ~=65.15.0 @dependabot[bot] (#12381)
Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates @dependabot[bot] (#12374)
Chore(deps): Bump @ng-select/ng-select from 21.4.1 to 21.5.2 in /src-ui in the frontend-angular-dependencies group @dependabot[bot] (#12373)
Chore(deps-dev): Bump @types/node from 25.3.3 to 25.4.0 in /src-ui @dependabot[bot] (#12376)
Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @dependabot[bot] (#12375)
Chore: Reduce system status test times @stumpylog (#12354)
Chore(deps): Bump pyopenssl from 25.3.0 to 26.0.0 @dependabot[bot] (#12363)
Chore(deps): Bump pyjwt from 2.10.1 to 2.12.0 @dependabot[bot] (#12335)
Change: sort custom fields alphabetically by default @shamoon (#12358)
Feature: Add progress information to the classifier training for a better ux @stumpylog (#12331)
Chore: bump Angular dependencies to 21.2.x @shamoon (#12338)
Bump ocrmypdf from 16.13.0 to 17.3.0 in the document-processing group @dependabot[bot] (#12267)
Feature: document parser plugin framework @stumpylog (#12294)
Chore(deps): Bump tornado from 6.5.4 to 6.5.5 @dependabot[bot] (#12327)
Enhancement: Make the StatusConsumer truly async @stumpylog (#12298)
Chore(deps): Bump the utilities-minor group across 1 directory with 5 updates @dependabot[bot] (#12324)
Chore: mark document detail email action as deprecated @shamoon (#12308)
Chore: separate actions from bulk edit endpoint @shamoon (#12286)
[BREAKING] Chore: drop support for api versions < 9 @shamoon (#12284)
Chore(deps): Bump the utilities-patch group across 1 directory with 6 updates @dependabot[bot] (#12291)
Performance: Stream JSON during import for memory improvements @stumpylog (#12276)
Feature: Migrate import/export to rich progress @stumpylog (#12260)
Enhancement: Show more document details in merge dialog @svenstaro (#12271)
Performance: Further export memory improvements @stumpylog (#12273)
Chore: pytest style paperless tests @stumpylog (#12254)
Chore: update ESLint to v10 @shamoon (#12256)
Bump django-allauth from 65.14.0 to 65.14.1 @dependabot[bot] (#12253)
Bump django from 5.2.11 to 5.2.12 @dependabot[bot] (#12249)
[BREAKING] Chore: Drop support for Python 3.10 @stumpylog (#12234)
Performance: Improve exporter memory efficiency @stumpylog (#12236)
Enhancement: saved view sharing @shamoon (#12142)
Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons @cryptomilk (#12239)
Enhancement: “live” document updates @shamoon (#12141)
Enhancement: Improve the retagger output using rich @stumpylog (#12194)
Enhancement: Transition sanity check to rich and improve output @stumpylog (#12182)
Enhancement: Switch all indexing to use rich @stumpylog (#12193)
Chore(deps): Bump whitenoise from 6.11.0 to 6.12.0 in the django-ecosystem group @dependabot[bot] (#12192)
Fixhancement: show sequential + id version labels, fix padding @shamoon (#12196)
[BREAKING] Chore: Refactor advanced database settings to allow more user configuration @stumpylog (#12165)
Chore(deps): Bump the utilities-patch group across 1 directory with 11 updates @dependabot[bot] (#12179)
Feature: Switch progress bar library to rich @stumpylog (#12169)
Chore(deps): Bump nltk from 3.9.2 to 3.9.3 @dependabot[bot] (#12177)
Enhancment: Formatted filename for single document downloads @JanKleine (#12095)
Chore(deps): Bump the utilities-minor group across 1 directory with 7 updates @dependabot[bot] (#12174)
Feature: document file versions @shamoon (#12061)
[BREAKING] Remove API v1 compatability @stumpylog (#12166)
Enhancement: prevent duplicate mail processing across rules @shamoon (#12159)
Feature: move to trash action for workflows @JanKleine (#11176)
Tweakhancement: reset to page 1 on reset filters @shamoon (#12143)
Fix: correct user dropdown button icon styling @shamoon (#12092)
Enhancement: consolidate management lists into document attributes section @shamoon (#12045)
Enhancement: option to stop processing further mail rules @shamoon (#12053)
[BREAKING] Remove pybzar as a barcode reader @stumpylog (#12065)
Chore(deps): Bump pillow from 12.1.0 to 12.1.1 @dependabot[bot] (#12064)
Chore(deps): Bump cryptography from 46.0.3 to 46.0.5 @dependabot[bot] (#12060)
Chore: Optimizes the integer fields for choice types @stumpylog (#12057)
Chore(deps): Bump the utilities-patch group across 1 directory with 3 updates @dependabot[bot] (#12051)
Tweak: improve 2-digit year parsing @shamoon (#12044)
Enhancement: pngx pdf viewer @shamoon (#12043)
Fix: Handle an OOM kill of celery workers in the task handler @stumpylog (#12040)
Chore(deps-dev): Bump @playwright/test from 1.58.1 to 1.58.2 in /src-ui @dependabot[bot] (#12032)
Chore(deps): Bump the utilities-minor group across 1 directory with 2 updates @dependabot[bot] (#12020)
Fixhancement: improve ASN handling with PDF operations @shamoon (#11689)
Upgrade: Bump @types/node from 25.2.0 to 25.2.1 in /src-ui @dependabot[bot] (#12008)
Upgrade: Bump webpack from 5.103.0 to 5.105.0 in /src-ui @dependabot[bot] (#12007)
Chore: bump Angular to 21.1.3, ngx-ui-tour-ng-bootstrap to v18 @shamoon (#12015)
Chore: Switches to use prek in place of pre-commit @stumpylog (#12002)
Chore(deps): Bump the utilities-patch group with 3 updates @dependabot[bot] (#11981)
Chore(deps): Bump the utilities-minor group across 1 directory with 6 updates @dependabot[bot] (#11993)
Chore(deps): Bump drf-spectacular-sidecar from 2025.10.1 to 2026.1.1 @dependabot[bot] (#11985)
Chore(deps): Update django-allauth[mfa,socialaccount] requirement from ~=65.13.1 to ~=65.14.0 @dependabot[bot] (#11984)
Chore(deps): Update granian[uvloop] requirement from ~=2.6.0 to ~=2.7.0 @dependabot[bot] (#11983)
Chore(deps): Bump django from 5.2.10 to 5.2.11 @dependabot[bot] (#11988)
Feature: Enable users to customize date parsing via plugins @stumpylog (#11931)
Chore: Fix further test flakiness @stumpylog (#11987)
Feature: password removal workflow action @shamoon (#11665)
Fix: re-run ASN check after barcode detection @shamoon (#11681)
Fix: prevent infinite loading crash in mail component @shamoon (#11978)
Enhancement: per-type object page sizing @shamoon (#11977)
Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 22 updates @dependabot[bot] (#11968)
Chore(deps): Bump zone.js from 0.15.1 to 0.16.0 in /src-ui @dependabot[bot] (#11970)
Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @dependabot[bot] (#11969)
Chore(deps-dev): Bump @types/node from 24.10.1 to 25.2.0 in /src-ui @dependabot[bot] (#11972)
Chore(deps-dev): Bump @playwright/test from 1.57.0 to 1.58.1 in /src-ui @dependabot[bot] (#11971)
Enhancement: improve filter drop-down performance with virtual scrolling @shamoon (#11973)
Tweakhancement: tweak bulk delete text @shamoon (#11967)
Feature: support split documents based on tag barcodes @schober-ch (#11645)
Chore: Bulk backend updates @stumpylog (#11543)
Tweak: increase minimum screen width before inserting padding @JanKleine (#11926)
Enhancement: Add setting for default PDF Editor mode @JanKleine (#11927)
Fixhancement: auto-queue llm index if needed @shamoon (#11891)
Feature: sharelink bundles @shamoon (#11682)
Enhancement: user control of doc details fields @shamoon (#11906)
Enhancement: improve relative dates in date filter @JanKleine (#11899)
Performance: faster statistics panel on dashboard @Merinorus (#11760)
Enhancement: allow duplicates with warnings, UI for discovery @shamoon (#11815)
Enhancement: configurable SSO groups claim @Gabgobie (#11841)
Enhancement: support select all for management lists @shamoon (#11889)
Tweakhancement: display document id, with copy @shamoon (#11896)
Enhancement: Add support for app oidc @paulgessinger (#11756)
Enhancement: Add 'any of' workflow trigger filters @shamoon (#11683)
[BREAKING] Remove support for document and thumbnail encryption @stumpylog (#11850)
Fix: ensure css color-scheme for dark mode @shamoon (#11855)
Enhancement: support doc_id placeholder in workflow templates @shamoon (#11847)
[BREAKING] Feature: Simplify and improve the consumer @stumpylog (#11753)
Fix: fix tag list horizontal scroll, again @shamoon (#11839)
Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon (#11811)
Chore(deps): Bump the utilities-patch group across 1 directory with 7 updates @dependabot[bot] (#11793)
Chore(deps): Bump the utilities-minor group across 1 directory with 10 updates @dependabot[bot] (#11799)
Chore(deps): Bump pyasn1 from 0.6.1 to 0.6.2 @dependabot[bot] (#11801)
Chore(deps): Bump torch from 2.7.1 to 2.8.0 @dependabot[bot] (#11800)
Chore(deps): Bump brotli from 1.1.0 to 1.2.0 @dependabot[bot] (#11796)
Chore(deps): Bump transformers from 4.51.3 to 4.53.0 @dependabot[bot] (#11797)
Chore(deps): Bump django from 5.2.7 to 5.2.9 @dependabot[bot] (#11794)
Chore(deps): Bump the llama-index group @dependabot[bot] (#11798)
Chore(deps): Bump marshmallow from 3.26.1 to 3.26.2 @dependabot[bot] (#11790)
Chore(deps): Bump uv from 0.9.3 to 0.9.6 @dependabot[bot] (#11795)
Chore(deps): Bump aiohttp from 3.11.18 to 3.13.3 @dependabot[bot] (#11789)
Chore(deps): Bump urllib3 from 2.5.0 to 2.6.3 @dependabot[bot] (#11792)
Chore(deps): Bump virtualenv from 20.34.0 to 20.36.1 @dependabot[bot] (#11774)
Fix: use explicit order field for workflow actions @shamoon (#11781)
Chore(deps): Bump azure-core from 1.33.0 to 1.38.0 @dependabot[bot] (#11776)
Feature: Paperless AI @shamoon (#10319)
Performance: improve treenode inefficiencies @shamoon (#11606)
Chore: upgrade to node v24 @shamoon (#11747)
Chore: upgrade to Angular v21 @shamoon (#11746)
Feature: Remote OCR (Azure AI) @shamoon (#10320)
Feature: password removal action @shamoon (#11656)
Fix: fix recurring workflow to respect latest run time @shamoon (#11735)
Fixhancement: add error handling and retry when opening index @shamoon (#11731)
Tweakhancement: use anchor element for management list quick filter buttons @shamoon (#11692)
Fix: validate cf integer values within PostgreSQL range @shamoon (#11666)
Fix: support ordering by storage path name @shamoon ([#116 - Jul 17, 2026
- Date parsed from source:Jul 17, 2026
- First seen by Releasebot:Jul 18, 2026
Paperless-ngx v3.0.0-beta.rc2
paperless-ngx ships 3.0.0-beta.rc2 with major AI and search upgrades, OCR Templates, Angular v22 updates, better filtering and chat controls, plus a long list of bug fixes, security improvements, and dependency refreshes ahead of the 3.0 release.
paperless-ngx 3.0.0-beta.rc2
Features / Enhancements
- docker-compose(deps): bump greenmail/standalone from 2.1.8 to 2.1.9 in /docker/compose @dependabot[bot] (#13067)
- docker-compose(deps): bump gotenberg/gotenberg from 8.33 to 8.34 in /docker/compose @dependabot[bot] (#13066)
- docker-compose(deps): bump nginx from 1.31.1-alpine to 1.31.2-alpine in /docker/compose @dependabot[bot] (#13065)
- docker(deps): Bump astral-sh/uv from 0.11.19-python3.12-trixie-slim to 0.11.28-python3.12-trixie-slim @dependabot[bot] (#13070)
- Chorehancement: update to Angular v22, 'zoneless' / 'reactive' @shamoon (#13114)
- Feature: OCR Templates @Anuril (#13043)
- Enhancement (beta): support LLM timeout config @shamoon (#13002)
- Enhancement: ignore diacritics, support multiple substring matching for UI filtering @shamoon (#13021)
- Enhancement(beta): replace LanceDB vector store with sqlite-vec @stumpylog (#12990)
- Enhancement (beta): Switch the AI vector store to LanceDB @stumpylog (#12944)
- Fixhancement (beta): tasks dismiss all @shamoon (#12949)
- Enhancement (beta): add direct LLM language setting @shamoon (#12906)
- Enhancement: try to respect language for AI suggestions @shamoon (#12894)
- Enhancement: AI LLM chunk size and context window config @shamoon (#12891)
- Chore: Further dependency security updates @stumpylog (#12780)
- Enhancement: support ollama embeddings @shamoon (#12753)
- Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog (#12757)
- Enhancement: version-aware thumbnail etag @shamoon (#12754)
- Documentation: Update v3 migration docs @shamoon (#12752)
Bug Fixes
- Fix: scope ProcessedMail UID deduplication by IMAP UIDVALIDITY @chouquette (#12839)
- Fix: allow setting any UID and GID when running rootless @Tahvok (#13090)
- Fix (beta): fix sidebar document close button @shamoon (#13136)
- Fix: include wasm assets in pdf.js-based viewer @shamoon (#13122)
- Fix: fix ui labels from md5 to sha256 @shamoon (#13119)
- Fixhancement: dont assign empty title in workflow with broken template @shamoon (#13112)
- Fix: clamp mailrule max age before migration @shamoon (#13093)
- Fix: use latest document version for bulk download @shamoon (#13103)
- Fix (beta): handle relative date with comma query @shamoon (#13087)
- Fix (beta): fix sanity checker affected document counts @NgoQuocViet2001 (#13052)
- Fix (beta): preserve Unicode in localization prompt @shamoon (#13055)
- Fix: change tantivy token limit to title field max length @shamoon (#13046)
- Fix: include last-modified in doc etag @shamoon (#13044)
- Fix (beta): Stream chunks during compaction to prevent oom on smaller installs @stumpylog (#13014)
- Fixhancement (beta): truncate embedding queries for small chunk size @shamoon (#13028)
- Fix(beta): Workaround a Tantivy panic in more like this searching @stumpylog (#13026)
- Fix (beta): Catch consumer files created during watcher re-creations @stumpylog (#13013)
- Fix (beta): restore v2 (Whoosh) advanced-search query compatibility @stumpylog (#13010)
- Fix (beta): retry celery ping and report warning on no response @shamoon (#13012)
- Fix (beta): don't send chat message on Enter while composing with IME (CJK) @mzyy94 (#12999)
- Fix: Apply unicode normalization to all paths and path components @stumpylog (#12993)
- Fix: Handle the UTF 16 and BOM text files better @stumpylog (#12994)
- Fix (beta): avoid DRF update calling save on all fields @shamoon (#12992)
- Fix: release pooled DB connection during AI LLM/embedding calls @stumpylog (#12983)
- Fix: health-check pooled DB connections and close the pool on worker shutdown @stumpylog (#12977)
- Fix: wrap long titles in delete confirm dialog @shamoon (#12973)
- Fix (beta): fix re-ordering in merge dialog @shamoon (#12967)
- Fix (beta): move task filtering to backend fully @shamoon (#12956)
- Fix (beta): avoid unnecessary creating new PDF with pw removal workflow @shamoon (#12948)
- Fixhancement (beta): tasks dismiss all @shamoon (#12949)
- Fix (beta): correct chat message bg color @shamoon (#12955)
- Fix (beta): respect disable state for suggest endpoint, require change perms @shamoon (#12942)
- Fix: Ensure checksum comparision is using SHA256 @stumpylog (#12939)
- Fix: Restrict the AI backend at settings configure time @stumpylog (#12903)
- Fix (beta): correctly apply i18n in suggestions dropdown @shamoon (#12905)
- Fix: Lock AI index during reading and don't index documents many times during a bulk update @stumpylog (#12899)
- Fix: Minor fixes for the AI indexing @stumpylog (#12893)
- Fix (beta): dont use tool calling with ollama @shamoon (#12896)
- Fix: Improvements for security around the AI @stumpylog (#12895)
- Fix: correctly show timestamp tooltip on history item @nathanaelhoun (#12879)
- Fix: Fold query and autocomplete terms with Tantivy's ascii_fold so special letters match @stumpylog (#12868)
- Fix: Don't store autocomplete_word, only index it @stumpylog (#12867)
- Fix: Preserve Whoosh date range swapping in Tantviy @stumpylog (#12866)
- Fix: Always release search index writer @stumpylog (#12865)
- Fix: Handle CJK title, content and metadata searching @stumpylog (#12862)
- Fix: Restrict date query rewrites to date or datetime fields only @stumpylog (#12864)
- Fix: Missing call to tanvity wait_merging_threads @stumpylog (#12863)
- Fix: Handle tanvity index lock contention @stumpylog (#12856)
- Fix (beta): better catch chat errors @shamoon (#12854)
- Security (beta): fixes for v3 beta @shamoon (#12838)
- Fix (beta): normalize long punctuation chunks to improve embedding @shamoon (#12848)
- Fix: use chord.on_error before apply_async @shamoon (#12842)
- Fix: Don't use smaller integer fields for some workflow fields @stumpylog (#12834)
- Fix: Password removal source file location @stumpylog (#12830)
- Fix (beta): use correct html button type for custom field buttons @shamoon (#12819)
- Fix: Defer password removal workflow action until the file is in place @stumpylog (#12814)
- Fix: Allow setting allauth rate limit configuration settings @stumpylog (#12798)
- Fix: Don't embed the metadata which is already embedded into the context @stumpylog (#12795)
- Fix: Sanitize dash or plus from the text search path @stumpylog (#12789)
- Fix: improve new tasks ui layout across screen sizes @shamoon (#12784)
- Fix: Update parser contract to require empty strings, not None @shamoon (#12775)
- Fix: Use a persistent, writeable location for hugging face models @stumpylog (#12771)
- Fix: create LLM_INDEX_DIR before writing meta.json on first run @pReya (#12759)
- Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog (#12757)
- Fix: use response synthesizer for RAG doc chat @shamoon (#12751)
- Fix: only update modified field in notes actions @shamoon (#12750)
- Fix: Handle dash or plus operators in search queries @stumpylog (#12734)
- Fixes trash preview when a document has deleted versions @stumpylog (#12742)
- Fix: exclude versions from stats count @shamoon (#12738)
- Fixes celery chords by using Redis as our result backend @stumpylog (#12741)
- Fix: bump version.py to 3.0.0 also @shamoon (#12736)
- Fix: makes the font cache folder writeable to all users @stumpylog (#12726)
- Fixes Whoosh year only queries to be rewritten to Tantivy date syntax @stumpylog (#12725)
- Fix: pass allow parallel tool calls in LLM client @shamoon (#12718)
- Fix: Handle passwords for removal action as lists @stumpylog (#12716)
- Bumps all our versions to 3.0.0 @stumpylog (#12715)
Documentation
- Fix: clamp mailrule max age before migration @shamoon (#13093)
- Documentation (beta): Updates documentation for new v3 features @stumpylog (#13033)
- Documentation: remove duplicate words in three files @mvanhorn (#12852)
- Fix: Allow setting allauth rate limit configuration settings @stumpylog (#12798)
- Documentation: Update v3 migration docs @shamoon (#12752)
Maintenance
- Chore(deps): Bump the actions group across 1 directory with 14 updates @dependabot[bot] (#13079)
- Chore(deps): Bump the actions group across 1 directory with 12 updates @dependabot[bot] (#12909)
Dependencies
37 changes
- Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 4 updates @dependabot[bot] (#13137)
- Chore(deps-dev): Bump the development group across 1 directory with 2 updates @dependabot[bot] (#13068)
- docker-compose(deps): bump greenmail/standalone from 2.1.8 to 2.1.9 in /docker/compose @dependabot[bot] (#13067)
- docker-compose(deps): bump gotenberg/gotenberg from 8.33 to 8.34 in /docker/compose @dependabot[bot] (#13066)
- docker-compose(deps): bump nginx from 1.31.1-alpine to 1.31.2-alpine in /docker/compose @dependabot[bot] (#13065)
- docker(deps): Bump astral-sh/uv from 0.11.19-python3.12-trixie-slim to 0.11.28-python3.12-trixie-slim @dependabot[bot] (#13070)
- Chorehancement: update to Angular v22, 'zoneless' / 'reactive' @shamoon (#13114)
- Chore(deps): Bump the actions group across 1 directory with 14 updates @dependabot[bot] (#13079)
- Chore(deps): Bump pdfjs-dist from 5.7.284 to 6.0.227 in /src-ui @dependabot[bot] (#13080)
- Chore(deps-dev): Bump @playwright/test from 1.60.0 to 1.61.1 in /src-ui @dependabot[bot] (#13078)
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#13076)
- Chore(deps): Bump uuid from 14.0.0 to 14.0.1 in /src-ui @dependabot[bot] (#13077)
- Chore(deps-dev): Bump jest-preset-angular from 16.1.5 to 17.0.0 in /src-ui in the frontend-jest-dependencies group across 1 directory @dependabot[bot] (#13075)
- Chore(deps-dev): Bump @types/node from 25.9.1 to 26.0.0 in /src-ui @dependabot[bot] (#13081)
- Chore(deps): Bump the npm_and_yarn group across 1 directory with 3 updates @dependabot[bot] (#13016)
- Chore(deps): Bump the uv group across 1 directory with 2 updates @dependabot[bot] (#12995)
- Chore(deps): Bump the utilities-patch group across 1 directory with 4 updates @dependabot[bot] (#12931)
- Chore(deps-dev): Bump types-markdown from 3.10.2.20260211 to 3.10.2.20260518 @dependabot[bot] (#12927)
- Chore(deps): Bump aiohttp from 3.13.4 to 3.14.0 in the uv group across 1 directory @dependabot[bot] (#12930)
- Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 2 updates @dependabot[bot] (#12923)
- docker(deps): Bump astral-sh/uv from 0.11.6-python3.12-trixie-slim to 0.11.19-python3.12-trixie-slim @dependabot[bot] (#12920)
- Chore(deps): Bump the actions group across 1 directory with 12 updates @dependabot[bot] (#12909)
- docker-compose(deps): bump apache/tika from 3.2.3.0 to 3.3.1.0 in /docker/compose @dependabot[bot] (#12912)
- docker-compose(deps): bump gotenberg/gotenberg from 8.27 to 8.33 in /docker/compose @dependabot[bot] (#12910)
- docker-compose(deps): Bump nginx from 1.29.5-alpine to 1.31.1-alpine in /docker/compose @dependabot[bot] (#12911)
- Chore(deps-dev): Bump @playwright/test from 1.59.1 to 1.60.0 in /src-ui @dependabot[bot] (#12919)
- Chore(deps-dev): Bump @types/node from 25.6.0 to 25.9.1 in /src-ui @dependabot[bot] (#12915)
- Chore(deps): Bump pdfjs-dist from 5.6.205 to 5.7.284 in /src-ui @dependabot[bot] (#12918)
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#12913)
- Chore(deps-dev): Bump webpack from 5.106.2 to 5.107.2 in /src-ui @dependabot[bot] (#12917)
- Chore(deps): Bump zone.js from 0.16.1 to 0.16.2 in /src-ui @dependabot[bot] (#12916)
- Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 3 updates @dependabot[bot] (#12908)
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @dependabot[bot] (#12907)
- Chore(deps): Bump hono from 4.12.16 to 4.12.18 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12767)
- Chore(deps): Bump @babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12764)
- Chore(deps): Bump fast-uri from 3.1.1 to 3.1.2 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12763)
- Chore: Targeted dependency upgrades @stumpylog (#12731)
All App Changes
113 changes
- Chore(deps-dev): Bump the development group across 1 directory with 2 updates @dependabot[bot] (#13068)
- Fix: scope ProcessedMail UID deduplication by IMAP UIDVALIDITY @chouquette (#12839)
- Fix (beta): fix sidebar document close button @shamoon (#13136)
- Fix: include wasm assets in pdf.js-based viewer @shamoon (#13122)
- Fix: fix ui labels from md5 to sha256 @shamoon (#13119)
- Chorehancement: update to Angular v22, 'zoneless' / 'reactive' @shamoon (#13114)
- Fixhancement: dont assign empty title in workflow with broken template @shamoon (#13112)
- Fix: clamp mailrule max age before migration @shamoon (#13093)
- Fix: use latest document version for bulk download @shamoon (#13103)
- Fix (beta): handle relative date with comma query @shamoon (#13087)
- Chore(deps): Bump pdfjs-dist from 5.7.284 to 6.0.227 in /src-ui @dependabot[bot] (#13080)
- Chore(deps-dev): Bump @playwright/test from 1.60.0 to 1.61.1 in /src-ui @dependabot[bot] (#13078)
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#13076)
- Chore(deps): Bump uuid from 14.0.0 to 14.0.1 in /src-ui @dependabot[bot] (#13077)
- Chore(deps-dev): Bump jest-preset-angular from 16.1.5 to 17.0.0 in /src-ui in the frontend-jest-dependencies group across 1 directory @dependabot[bot] (#13075)
- Chore(deps-dev): Bump @types/node from 25.9.1 to 26.0.0 in /src-ui @dependabot[bot] (#13081)
- Fix (beta): fix sanity checker affected document counts @NgoQuocViet2001 (#13052)
- Fix (beta): preserve Unicode in localization prompt @shamoon (#13055)
- Fix: change tantivy token limit to title field max length @shamoon (#13046)
- Feature: OCR Templates @Anuril (#13043)
- Fix: include last-modified in doc etag @shamoon (#13044)
- Fix (beta): Stream chunks during compaction to prevent oom on smaller installs @stumpylog (#13014)
- Fixhancement (beta): truncate embedding queries for small chunk size @shamoon (#13028)
- Enhancement (beta): support LLM timeout config @shamoon (#13002)
- Fix(beta): Workaround a Tantivy panic in more like this searching @stumpylog (#13026)
- Chore (beta): set tool_required to openai-like llm calls @shamoon (#13025)
- Enhancement: ignore diacritics, support multiple substring matching for UI filtering @shamoon (#13021)
- Fix (beta): Catch consumer files created during watcher re-creations @stumpylog (#13013)
- Chore(deps): Bump the npm_and_yarn group across 1 directory with 3 updates @dependabot[bot] (#13016)
- Fix (beta): restore v2 (Whoosh) advanced-search query compatibility @stumpylog (#13010)
- Fix (beta): retry celery ping and report warning on no response @shamoon (#13012)
- Enhancement(beta): replace LanceDB vector store with sqlite-vec @stumpylog (#12990)
- Chore(deps): Bump the uv group across 1 directory with 2 updates @dependabot[bot] (#12995)
- Chore(deps): Bump the utilities-patch group across 1 directory with 4 updates @dependabot[bot] (#12931)
- Fix (beta): don't send chat message on Enter while composing with IME (CJK) @mzyy94 (#12999)
- Fix: Apply unicode normalization to all paths and path components @stumpylog (#12993)
- Fix: Handle the UTF 16 and BOM text files better @stumpylog (#12994)
- Fix (beta): avoid DRF update calling save on all fields @shamoon (#12992)
- Fix: release pooled DB connection during AI LLM/embedding calls @stumpylog (#12983)
- Fix: health-check pooled DB connections and close the pool on worker shutdown @stumpylog (#12977)
- Fix: wrap long titles in delete confirm dialog @shamoon (#12973)
- Fix (beta): fix re-ordering in merge dialog @shamoon (#12967)
- Fix (beta): move task filtering to backend fully @shamoon (#12956)
- Chore(deps-dev): Bump types-markdown from 3.10.2.20260211 to 3.10.2.20260518 @dependabot[bot] (#12927)
- Chore(deps): Bump aiohttp from 3.13.4 to 3.14.0 in the uv group across 1 directory @dependabot[bot] (#12930)
- Fix (beta): avoid unnecessary creating new PDF with pw removal workflow @shamoon (#12948)
- Enhancement (beta): Switch the AI vector store to LanceDB @stumpylog (#12944)
- Fixhancement (beta): tasks dismiss all @shamoon (#12949)
- Fix (beta): correct chat message bg color @shamoon (#12955)
- Fix (beta): respect disable state for suggest endpoint, require change perms @shamoon (#12942)
- Fix: Ensure checksum comparision is using SHA256 @stumpylog (#12939)
- Fix: Restrict the AI backend at settings configure time @stumpylog (#12903)
- Enhancement (beta): add direct LLM language setting @shamoon (#12906)
- Chore(deps-dev): Bump @playwright/test from 1.59.1 to 1.60.0 in /src-ui @dependabot[bot] (#12919)
- Fix (beta): correctly apply i18n in suggestions dropdown @shamoon (#12905)
- Chore(deps-dev): Bump @types/node from 25.6.0 to 25.9.1 in /src-ui @dependabot[bot] (#12915)
- Chore(deps): Bump pdfjs-dist from 5.6.205 to 5.7.284 in /src-ui @dependabot[bot] (#12918)
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @dependabot[bot] (#12913)
- Chore(deps-dev): Bump webpack from 5.106.2 to 5.107.2 in /src-ui @dependabot[bot] (#12917)
- Chore(deps): Bump zone.js from 0.16.1 to 0.16.2 in /src-ui @dependabot[bot] (#12916)
- Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 3 updates @dependabot[bot] (#12908)
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @dependabot[bot] (#12907)
- Fix: Lock AI index during reading and don't index documents many times during a bulk update @stumpylog (#12899)
- Fix: Minor fixes for the AI indexing @stumpylog (#12893)
- Fix (beta): dont use tool calling with ollama @shamoon (#12896)
- Enhancement: try to respect language for AI suggestions @shamoon (#12894)
- Enhancement: AI LLM chunk size and context window config @shamoon (#12891)
- Fix: Improvements for security around the AI @stumpylog (#12895)
- Fix: correctly show timestamp tooltip on history item @nathanaelhoun (#12879)
- Fix: Fold query and autocomplete terms with Tantivy's ascii_fold so special letters match @stumpylog (#12868)
- Fix: Don't store autocomplete_word, only index it @stumpylog (#12867)
- Fix: Preserve Whoosh date range swapping in Tantviy @stumpylog (#12866)
- Fix: Always release search index writer @stumpylog (#12865)
- Fix: Handle CJK title, content and metadata searching @stumpylog (#12862)
- Fix: Restrict date query rewrites to date or datetime fields only @stumpylog (#12864)
- Fix: Missing call to tanvity wait_merging_threads @stumpylog (#12863)
- Fix: Handle tanvity index lock contention @stumpylog (#12856)
- Fix (beta): better catch chat errors @shamoon (#12854)
- Performance (beta): dont re-build vector index with each chat @shamoon (#12847)
- Security (beta): fixes for v3 beta @shamoon (#12838)
- Fix (beta): normalize long punctuation chunks to improve embedding @shamoon (#12848)
- Fix: use chord.on_error before apply_async @shamoon (#12842)
- Fix: Don't use smaller integer fields for some workflow fields @stumpylog (#12834)
- Fix: Password removal source file location @stumpylog (#12830)
- Fix (beta): use correct html button type for custom field buttons @shamoon (#12819)
- Fix: Defer password removal workflow action until the file is in place @stumpylog (#12814)
- Fix: Allow setting allauth rate limit configuration settings @stumpylog (#12798)
- Fix: Don't embed the metadata which is already embedded into the context @stumpylog (#12795)
- Fix: Sanitize dash or plus from the text search path @stumpylog (#12789)
- Fix: improve new tasks ui layout across screen sizes @shamoon (#12784)
- Fix: Update parser contract to require empty strings, not None @shamoon (#12775)
- Chore: Further dependency security updates @stumpylog (#12780)
- Fix: Use a persistent, writeable location for hugging face models @stumpylog (#12771)
- Chore(deps): Bump hono from 4.12.16 to 4.12.18 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12767)
- Enhancement: support ollama embeddings @shamoon (#12753)
- Fix: create LLM_INDEX_DIR before writing meta.json on first run @pReya (#12759)
- Chore(deps): Bump @babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12764)
- Chore(deps): Bump fast-uri from 3.1.1 to 3.1.2 in /src-ui in the npm_and_yarn group across 1 directory @dependabot[bot] (#12763)
- Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog (#12757)
- Fix: use response synthesizer for RAG doc chat @shamoon (#12751)
- Fix: only update modified field in notes actions @shamoon (#12750)
- Enhancement: version-aware thumbnail etag @shamoon (#12754)
- Documentation: Update v3 migration docs @shamoon (#12752)
- Fix: Handle dash or plus operators in search queries @stumpylog (#12734)
- Fixes trash preview when a document has deleted versions @stumpylog (#12742)
- Fix: exclude versions from stats count @shamoon (#12738)
- Fixes celery chords by using Redis as our result backend @stumpylog (#12741)
- Fix: bump version.py to 3.0.0 also @shamoon (#12736)
- Chore: Targeted dependency upgrades @stumpylog (#12731)
- Fixes Whoosh year only queries to be rewritten to Tantivy date syntax @stumpylog (#12725)
- Fix: pass allow parallel tool calls in LLM client @shamoon (#12718)
- Fix: Handle passwords for removal action as lists @stumpylog (#12716)
- Bumps all our versions to 3.0.0 @stumpylog (#12715)
- May 6, 2026
- Date parsed from source:May 6, 2026
- First seen by Releasebot:May 6, 2026
- Modified by Releasebot:May 7, 2026
Paperless-ngx v3.0.0-beta.rc1
paperless-ngx releases 3.0.0 beta rc1 with major new AI and OCR features, a new tantivy search backend, document versioning, plugin-based parsers, sharelink bundles, refreshed tasks UI, broad performance gains, and many breaking changes for v3.
paperless-ngx 3.0.0-beta.rc1
Notable Changes
- Feature: Paperless AI @shamoon (#10319)
- Feature: Remote OCR (Azure AI) @shamoon (#10320)
- Feature: sharelink bundles @shamoon (#11682)
- Feature: document file versions @shamoon (#12061)
- Feature: document parser plugin framework @stumpylog (#12294)
- Feature: Replace Whoosh with tantivy search backend @stumpylog (#12471)
Breaking Changes
- [BREAKING] Feature: Simplify and improve the consumer @stumpylog (#11753)
- [BREAKING] Chore: Remove support for document and thumbnail encryption @stumpylog (#11850)
- [BREAKING] Chore: Remove old migrations and re-create them fresh for v3 @stumpylog (#11854)
- [BREAKING] Chore: Remove pybzar as a barcode reader @stumpylog (#12065)
- [BREAKING] Chore: Refactor advanced database settings to allow more user configuration @stumpylog (#12165)
- [BREAKING] Chore: Remove API v1 compatibility @stumpylog (#12166)
- [BREAKING] Enhancement: saved view sharing @shamoon (#12142)
- [BREAKING] Chore: Drop support for Python 3.10 @stumpylog (#12234)
- [BREAKING] Chore: drop support for api versions < 9 @shamoon (#12284)
- Breaking: Decouple OCR control from archive file control @stumpylog (#12448)
- Breaking: Remove the positional arguments from the pre/post consume scripts @stumpylog (#12573)
Features / Enhancements
- Feature: move to trash action for workflows @JanKleine (#11176)
- Feature: password removal action @shamoon (#11656)
- Feature: password removal workflow action @shamoon (#11665)
- Enhancement: Add 'any of' workflow trigger filters @shamoon (#11683)
- Fixhancement: improve ASN handling with PDF operations @shamoon (#11689)
- Tweakhancement: use anchor element for management list quick filter buttons @shamoon (#11692)
- Enhancement: Add support for app oidc @paulgessinger (#11756)
- Enhancement: allow duplicates with warnings, UI for discovery @shamoon (#11815)
- Enhancement: configurable SSO groups claim @Gabgobie (#11841)
- Enhancement: support doc_id placeholder in workflow templates @shamoon (#11847)
- Enhancement: support select all for management lists @shamoon (#11889)
- Fixhancement: auto-queue llm index if needed @shamoon (#11891)
- Tweakhancement: display document id, with copy @shamoon (#11896)
- Enhancement: improve relative dates in date filter @JanKleine (#11899)
- Enhancement: user control of doc details fields @shamoon (#11906)
- Enhancement: Add setting for default PDF Editor mode @JanKleine (#11927)
- Feature: Enable users to customize date parsing via plugins @stumpylog (#11931)
- Tweakhancement: tweak bulk delete text @shamoon (#11967)
- Enhancement: improve filter drop-down performance with virtual scrolling @shamoon (#11973)
- Enhancement: per-type object page sizing @shamoon (#11977)
- Enhancement: pngx pdf viewer @shamoon (#12043)
- Tweak: improve 2-digit year parsing @shamoon (#12044)
- Enhancement: consolidate management lists into document attributes section @shamoon (#12045)
- Enhancement: option to stop processing further mail rules @shamoon (#12053)
- Enhancment: Formatted filename for single document downloads @JanKleine (#12095)
- Tweakhancement: reset to page 1 on reset filters @shamoon (#12143)
- Enhancement: prevent duplicate mail processing across rules @shamoon (#12159)
- Feature: Switch progress bar library to rich @stumpylog (#12169)
- Enhancement: Transition sanity check to rich and improve output @stumpylog (#12182)
- Enhancement: add version label filename placeholder @JanKleine (#12185)
- Enhancement: Switch all indexing to use rich @stumpylog (#12193)
- Enhancement: Improve the retagger output using rich @stumpylog (#12194)
- Tweak: Ignore version documents for workflows, trigger updated on root when versions change @shamoon (#12217)
- Enhancement: version added workflow trigger @shamoon (#12219)
- Change: use explicit create instead of cloning for versions @shamoon (#12226)
- Fixhancement: support version-specific edits @shamoon (#12233)
- Feature: Migrate import/export to rich progress @stumpylog (#12260)
- Enhancement: Show more document details in merge dialog @svenstaro (#12271)
- Enhancement: Make the StatusConsumer truly async @stumpylog (#12298)
- Feature: Add progress information to the classifier training for a better ux @stumpylog (#12331)
- Feature: Convert Tika parser to the plugin system @stumpylog (#12333)
- Feature: Convert remote AI parser to plugin system @stumpylog (#12334)
- Change: sort custom fields alphabetically by default @shamoon (#12358)
- Chore: Convert mail parser to plugin style @stumpylog (#12397)
- Chore: Convert Tesseract parser to plugin style @stumpylog (#12403)
- Enhancement: auto-hide the search bar on mobile @shamoon (#12404)
- Chore: Drop old signal and unneeded apps, transition to parser registry instead @stumpylog (#12405)
- Fixhancement: default mail-created correspondent matching to exact @shamoon (#12414)
- Feature: Transition all checksums to use SHA256 @stumpylog (#12432)
- Tweakhancement: show file extension in StoragePath test @shamoon (#12452)
- Fixhancement: include sharelinks + bundles in export/import @shamoon (#12479)
- Enhancement: unify text search to use tantivy @shamoon (#12485)
- Security enhancement: allow opt-in blocking internal mail hosts @shamoon (#12502)
- Feature: Consumer logging correlation @stumpylog (#12510)
- Enhancement: add view_global_statistics and view_system_status permissions @shamoon (#12530)
- Enhancement: validate and sanitize uploaded logos @shamoon (#12551)
- Feature: Document fuzzy match improvements @stumpylog (#12579)
- Feature: Tune SQLite default settings for increased speed @stumpylog (#12580)
- Enhancement: add highlighting to title + content searches @shamoon (#12593)
- Tweak: remove stale index warning @shamoon (#12616)
- Feature: Allow monitoring access to tasks summary @stumpylog (#12624)
- Feature: Redesign the task system @stumpylog (#12584)
- Enhancement: new Tasks UI @shamoon (#12614)
- Enhancement: show small task summary in system status @shamoon (#12634)
- Tweakhancement: tweak tasks UI, make open doc an anchor @shamoon (#12658)
- Tweakhancement: make upload notification open an anchor link @shamoon (#12659)
- Enhancement: chat message document links @shamoon (#12670)
- Tweakhancement: localize some more task result messages @shamoon (#12672)
- Enhancement: Paperless-ngx v3 Logo @shamoon (#12673)
- Change: separate llm suggestions endpoint @shamoon (#12675)
- Tweakhancement: use fixed position instead of display none for printing @shamoon (#12706)
- Feature: Further reduce document importer memory usage @stumpylog (#12707)
- Tweak: add icons to ai suggestion dropdown @shamoon (#12708)
- Fixhancement: include trashed documents in document exporter/importer @JanKleine (#12425)
- Enhancement: Paperless-ngx v3 Logo @shamoon (#12673)
- Enhancement: saved view sharing @shamoon (#12142)
- Chore: separate actions from bulk edit endpoint @shamoon (#12286)
Performance Improvements
- Performance: improve treenode inefficiencies @shamoon (#11606)
- Performance: pre-compress static files on ARM64 @stumpylog (#11721)
- Performance: faster statistics panel on dashboard @Merinorus (#11760)
- Performance fix: use subqueries to improve object retrieval in large installs @shamoon (#11950)
- Performance: Improve exporter memory efficiency @stumpylog (#12236)
- Performance: Further export memory improvements @stumpylog (#12273)
- Lazy imports of the heavy AI modules @stumpylog (#12275)
- Performance: Stream JSON during import for memory improvements @stumpylog (#12276)
- Performance: support passing selection data with filtered document requests @shamoon (#12300)
- Performance: deprecate and remove usage of all in API results @shamoon (#12309)
- Performance: support bulk edit without id lists @shamoon (#12355)
- Performance: Increases workflow related M2M prefetching @stumpylog (#12618)
- Performance: Resolves another N+1 query related to custom fields @stumpylog (#12617)
Bug Fixes
- Fix: re-run ASN check after barcode detection @shamoon (#11681)
- Fix: use explicit order field for workflow actions @shamoon (#11781)
- Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon (#11811)
- Fix: fix tag list horizontal scroll, again @shamoon (#11839)
- Fix: ensure css color-scheme for dark mode @shamoon (#11855)
- Fix: use correct field id for overrides @shamoon (#11869)
- Fix: Running management scripts under rootless could fail @stumpylog (#11870)
- Fixhancement: change date calculation for 'this year' to include future documents @shamoon (#11884)
- Fix: extract all ids for nested tags @shamoon (#11888)
- Fix: fix broken docker create_classifier command in 2.20.6 @shamoon (#11965)
- Fix: prevent infinite loading crash in mail component @shamoon (#11978)
- Fix: Handle an OOM kill of celery workers in the task handler @stumpylog (#12040)
- Fix(dev): history causing infinite requests @shamoon (#12059)
- Fix: correct user dropdown button icon styling @shamoon (#12092)
- Fix: unify POSTs when toggling sidebar to prevent db lock @shamoon (#12129)
- Fix: pass api_base to OpenAIEmbedding @shamoon (#12151)
- Fix: correct page count by separating display vs collection sizes for tags @shamoon (#12170)
- Fixhancement: config option reset @shamoon (#12176)
- Fixhancement: show sequential + id version labels, fix padding @shamoon (#12196)
- Fix: correct doc version filename handling @shamoon (#12223)
- Fix: enforce path limit for db filename fields @shamoon (#12235)
- Fix: apply ordering after annotating tag document count @shamoon (#12238)
- Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons @cryptomilk (#12239)
- Fix: support string coercion in filepath jinja templates @shamoon (#12244)
- Fix (dev): Add saved view compatibility in API version 9 @shamoon (#12280)
- Fix: prevent stale db filename during workflow actions @shamoon (#12289)
- Fix: use effective content for matching and suggestion content @shamoon (#12293)
- Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count @shamoon (#12302)
- Fix: Removes the double exec that prevented migrations from running @stumpylog (#12317)
- Fixhancement: clear descendant selections in dropdown when parent toggled @shamoon (#12326)
- Fix: correct dropdown list active color in dark mode @shamoon (#12328)
- Fixhancement: only offer basic auth for appropriate requests @shamoon (#12362)
- Fix: Don't try to update the user when running as non-root @stumpylog (#12365)
- Fix: fix file button hover color in dark mode @shamoon (#12367)
- Fix: remove pagination from document notes api spec @shamoon (#12388)
- Fix: avoid moving files if already moved @shamoon (#12389)
- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename @stumpylog (#12390)
- Fix: don't try to usermod/groupmod when non-root + update docs @stumpylog (#12391)
- Fix: validate date CF value in serializer @shamoon (#12410)
- Fix: Respect workflow change_groups during consumption @stumpylog (#12431)
- Fix: add fallback ordering for documents by id after created @shamoon (#12440)
- Fix: limit share link viewset actions @shamoon (#12461)
- Fix: dont defer tag change application in workflows @shamoon (#12478)
- Fix: prevent duplicate parent tag IDs @shamoon (#12522)
- Fix: do not submit permissions for non-owners @shamoon (#12571)
- Fix: reject invalid requests to API notes endpoint @ggouzi (#12582)
- Fixhancement: Exact custom field monetary exact searching @stumpylog (#12592)
- Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi (#12597)
- Fix: relative added date check visibility @shamoon (#12600)
- Fix: Changes bare metal webserver to use uvloop @stumpylog (#12626)
- Fix: correctly scope mail account enumeration @shamoon (#12636)
- Fix: Use FileResponse for file API responses @stumpylog (#12638)
- Fix: use only allauth login/logout endpoints @shamoon (#12639)
- Fix: apply tag changes directly to document in db @shamoon (#12664)
- Fix: fix a minor pdf viewer uncaught error @shamoon (#12669)
- Fix: avoid unnecessary close_old_connections in Celery task dispatch @stumpylog (#12701)
- Fix (dev): return empty list for non-positive search limit @shamoon (#12703)
- Fix (dev): resolve tantivy search-filtered documents in bulk edit @shamoon (#12705)
- Fix: Don't try to update the user when running as non-root @stumpylog (#12365)
Security
- Chore: Manually upgrades allauth to resolve a security issue with it @stumpylog (#11853)
- Security: prevent prototype pollution in frontend settings and list view @shamoon (#12438)
- Security: Sign the Celery pickled tasks @stumpylog (#12504)
- Security: Don't allow the example secret key as a secret key @stumpylog (#12630)
Maintenance
- Chore: Switches to use prek in place of pre-commit @stumpylog (#12002)
- Chore: Re-work CI into multiple workflows @stumpylog (#11719)
- Chore: Build the ARM64 image using the native ARM64 runner @stumpylog (#11720)
- Chore: upgrade to Angular v21 @shamoon (#11746)
- Chore: upgrade to node v24 @shamoon (#11747)
- Chore: Bulk backend updates @stumpylog (#11543)
- Chore: remove deprecated Angular method @philipgullickson (#11919)
- Chore: Http interceptors refactor @philipgullickson (#11923)
- Chore: Fix further test flakiness @stumpylog (#11987)
- Chore: Enable mypy checking in CI @stumpylog (#11991)
- Chore: bump Angular to 21.1.3, ngx-ui-tour-ng-bootstrap to v18 @shamoon (#12015)
- Chore: Optimizes the integer fields for choice types @stumpylog (#12057)
- Chore: Pngx pdf viewer fixes @shamoon (#12083)
- Chore: Improve user migration path @stumpylog (#12232)
- Chore: pytest style paperless tests @stumpylog (#12254)
- Chore: update ESLint to v10 @shamoon (#12256)
- Chore: Finish settings refactor @stumpylog (#12263)
- Chore: Don't upload digests file as a zip @stumpylog (#12264)
- Chore: mark document detail email action as deprecated @shamoon (#12308)
- Chore: Disables the system checks for management commands in tests and when unnecessary @stumpylog (#12332)
- Chore: Reduce system status test times @stumpylog (#12354)
- Chore: Instead of manual temporary directory management, use a context manager @stumpylog (#12430)
- Chore: logger, response and template sanitization cleanup @shamoon (#12439)
- Chore: Better typed status manager messages @stumpylog (#12509)
- Chore: Resolves some zizmor reported code scan findings @stumpylog (#12516)
- Chore: address more zizmor flags @shamoon (#12529)
- Chore: Paginate the task listing @stumpylog (#12633)
Translations
- New Crowdin translations by GitHub Action (#11627)
- Feature: Indonesian translation @trismawan25 (#11641)
- Apr 27, 2026
- Date parsed from source:Apr 27, 2026
- First seen by Releasebot:Apr 27, 2026
Paperless-ngx v2.20.15
paperless-ngx ships a recommended security-focused update that addresses GHSA-8c6x-pfjq-9gr7 and tightens several core fixes, including login and logout handling, mail account scoping, custom field query behavior, and API notes request validation.
paperless-ngx 2.20.15
Note
This release addresses a security issue (GHSA-8c6x-pfjq-9gr7) and is recommended for all users. Our sincere thank you to the community members who reported this.
Bug Fixes
- Fix: use only allauth login/logout endpoints @shamoon (#12639)
- Fix: correctly scope mail account enumeration @shamoon (#12636)
- Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi (#12597)
- Fix: reject invalid requests to API notes endpoint @ggouzi (#12582)
All App Changes
4 changes
- Fix: use only allauth login/logout endpoints @shamoon (#12639)
- Fix: correctly scope mail account enumeration @shamoon (#12636)
- Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type (#12597)
- Fix: reject invalid requests to API notes endpoint (#12582)
- Apr 14, 2026
- Date parsed from source:Apr 14, 2026
- First seen by Releasebot:Apr 15, 2026
Paperless-ngx v2.20.14
paperless-ngx ships 2.20.14 with a focused round of bug fixes and workflow improvements, tightening permissions, tag handling, share links, document ordering, mail-created correspondent matching, and date validation.
paperless-ngx 2.20.14
Bug Fixes
- Fix: do not submit permissions for non-owners @shamoon (#12571)
- Fix: prevent duplicate parent tag IDs @shamoon (#12522)
- Fix: dont defer tag change application in workflows @shamoon (#12478)
- Fix: limit share link viewset actions @shamoon (#12461)
- Fix: add fallback ordering for documents by id after created @shamoon (#12440)
- Fixhancement: default mail-created correspondent matching to exact @shamoon (#12414)
- Fix: validate date CF value in serializer @shamoon (#12410)
All App Changes
7 changes
- Fix: do not submit permissions for non-owners @shamoon (#12571)
- Fix: prevent duplicate parent tag IDs @shamoon (#12522)
- Fix: dont defer tag change application in workflows @shamoon (#12478)
- Fix: limit share link viewset actions @shamoon (#12461)
- Fix: add fallback ordering for documents by id after created @shamoon (#12440)
- Fixhancement: default mail-created correspondent matching to exact @shamoon (#12414)
- Fix: validate date CF value in serializer @shamoon (#12410)
- Mar 21, 2026
- Date parsed from source:Mar 21, 2026
- First seen by Releasebot:Mar 21, 2026
Paperless-ngx v2.20.13
paperless-ngx fixes visible suggestions, search permissions, link validation, and mail rule account attachment permissions.
paperless-ngx 2.20.13
Bug Fixes
- Fix: suggest corrections only if visible results
- Fix: require view permission for more-like search
- Fix: validate document link targets
- Fix: enforce permissions when attaching accounts to mail rules
- Mar 20, 2026
- Date parsed from source:Mar 20, 2026
- First seen by Releasebot:Mar 21, 2026
Paperless-ngx v2.20.12
paperless-ngx 2.20.12 fixes a reported security issue and improves stability with several bug fixes, including workflow save handling, file move behavior, dark mode button styling, and basic auth request handling.
paperless-ngx 2.20.12
Note
This release addresses a security issue (GHSA-96jx-fj7m-qh6x) and is recommended for all users. Our sincere thank you to the community members who reported this.
Bug Fixes
- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename @stumpylog (#12390)
- Fix: don't try to usermod/groupmod when non-root + update docs (#12365) @stumpylog (#12391)
- Fix: avoid moving files if already moved @shamoon (#12389)
- Fix: remove pagination from document notes api spec @shamoon (#12388)
- Fix: fix file button hover color in dark mode @shamoon (#12367)
- Fixhancement: only offer basic auth for appropriate requests @shamoon (#12362)
All App Changes
5 changes
- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename @stumpylog (#12390)
- Fix: avoid moving files if already moved @shamoon (#12389)
- Fix: remove pagination from document notes api spec @shamoon (#12388)
- Fix: fix file button hover color in dark mode @shamoon (#12367)
- Fixhancement: only offer basic auth for appropriate requests @shamoon (#12362)
- Mar 16, 2026
- Date parsed from source:Mar 16, 2026
- First seen by Releasebot:Mar 16, 2026
Paperless-ngx v2.20.11
paperless-ngx releases 2.20.11 addressing a security issue GHSA-59xh-5vwx-4c4q and includes bug fixes and small improvements. It fixes dark mode dropdown active color, clears descendant selections when a parent toggles, prevents wrapping with many tags, and stops stale DB filenames in workflows.
paperless-ngx 2.20.11
Note
This release addresses a security issue (GHSA-59xh-5vwx-4c4q) and is recommended for all users. Our sincere thank you to the community members who reported this.
Bug Fixes
- Fix: correct dropdown list active color in dark mode @shamoon (#12328)
- Fixhancement: clear descendant selections in dropdown when parent toggled @shamoon (#12326)
- Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count @shamoon (#12302)
- Fix: prevent stale db filename during workflow actions @shamoon (#12289)
All App Changes
4 changes
- Fix: correct dropdown list active color in dark mode @shamoon (#12328)
- Fixhancement: clear descendant selections in dropdown when parent toggled @shamoon (#12326)
- Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count @shamoon (#12302)
- Fix: prevent stale db filename during workflow actions @shamoon (#12289)
- Mar 4, 2026
- Date parsed from source:Mar 4, 2026
- First seen by Releasebot:Mar 5, 2026
Paperless-ngx v2.20.10
Paperless-ngx 2.20.10 fixes a storage path template bug from 2.20.7 and patches string coercion in filepath templates, tag document count ordering, and DB filename path limits. After upgrading, users can run document_renamer to correct impacted paths.
paperless-ngx 2.20.10
Note
This release addresses a bug in v2.20.7 that affected some pre-existing storage path templates. Affected users can run the document_renamer command to correct this after updating.
Bug Fixes
- Fix: support string coercion in filepath jinja templates @shamoon (#12244)
- Fix: apply ordering after annotating tag document count @shamoon (#12238)
- Fix: enforce path limit for db filename fields @shamoon (#12235)
All App Changes
3 changes
- Fix: support string coercion in filepath jinja templates @shamoon (#12244)
- Fix: apply ordering after annotating tag document count @shamoon (#12238)
- Fix: enforce path limit for db filename fields @shamoon (#12235)
- Feb 28, 2026
- Date parsed from source:Feb 28, 2026
- First seen by Releasebot:Mar 1, 2026
Paperless-ngx v2.20.9
paperless-ngx 2.20.9
Note
This release addresses a security issue (GHSA-386h-chg4-cfw9) and is recommended for all users. Our sincere thank you to the community members who reported this.
Bug Fixes
- Fixhancement: config option reset @shamoon (#12176)
- Fix: correct page count by separating display vs collection sizes for tags @shamoon (#12170)
All App Changes
2 changes
- Fixhancement: config option reset @shamoon (#12176)
- Fix: correct page count by separating display vs collection sizes for tags @shamoon (#12170)
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.