v3.0.0

fosrl/pangolinv3.0.0Jul 22, 2026by github-actions[bot]

AI Summary

A major version update for Paperless-ngx introducing AI features, a new search engine, and significant architectural changes.

Key Highlights

  • Replaced Whoosh search backend with Tantivy
  • Introduced document parser plugin framework
  • Added Paperless AI capabilities and Remote OCR (Azure AI)
  • Added document file versions and sharelink bundles
  • Upgraded to Angular v22 with 'zoneless' / 'reactive' patterns

Breaking Changes

  • Remove positional arguments from pre/post consume scripts
  • Decouple OCR control from archive file control
  • Drop support for API versions < 9
  • Drop support for Python 3.10
  • Refactor advanced database settings
  • Remove API v1 compatibility
  • Remove pybzar as a barcode reader
  • Remove support for document and thumbnail encryption
  • Simplify and improve the consumer

New Features

  • Replace Whoosh with tantivy search backend
  • Document parser plugin framework
  • Document file versions
  • Sharelink bundles
  • Paperless AI
  • Remote OCR (Azure AI)
  • New Tasks UI
  • Replace LanceDB vector store with sqlite-vec
  • Support ollama embeddings
  • Angular v22 upgrade

Full Release Notes

## paperless-ngx 3.0.0


### Breaking Changes

- [BREAKING] Remove the positional arguments from the pre/post consume scripts @stumpylog ([#12573](https://github.com/paperless-ngx/paperless-ngx/pull/12573))
- [BREAKING] Decouple OCR control from archive file control @stumpylog ([#12448](https://github.com/paperless-ngx/paperless-ngx/pull/12448))
- [BREAKING] Chore: drop support for api versions \< 9 @shamoon ([#12284](https://github.com/paperless-ngx/paperless-ngx/pull/12284))
- [BREAKING] Chore: Drop support for Python 3.10 @stumpylog ([#12234](https://github.com/paperless-ngx/paperless-ngx/pull/12234))
- [BREAKING] Chore: Refactor advanced database settings to allow more user configuration @stumpylog ([#12165](https://github.com/paperless-ngx/paperless-ngx/pull/12165))
- [BREAKING] Remove API v1 compatability @stumpylog ([#12166](https://github.com/paperless-ngx/paperless-ngx/pull/12166))
- [BREAKING] Remove pybzar as a barcode reader @stumpylog ([#12065](https://github.com/paperless-ngx/paperless-ngx/pull/12065))
- [BREAKING] Remove support for document and thumbnail encryption @stumpylog ([#11850](https://github.com/paperless-ngx/paperless-ngx/pull/11850))
- [BREAKING] Feature: Simplify and improve the consumer @stumpylog ([#11753](https://github.com/paperless-ngx/paperless-ngx/pull/11753))

### Notable Changes

- Feature: Replace Whoosh with tantivy search backend @stumpylog ([#12471](https://github.com/paperless-ngx/paperless-ngx/pull/12471))
- Feature: document parser plugin framework @stumpylog ([#12294](https://github.com/paperless-ngx/paperless-ngx/pull/12294))
- Feature: document file versions @shamoon ([#12061](https://github.com/paperless-ngx/paperless-ngx/pull/12061))
- Feature: sharelink bundles @shamoon ([#11682](https://github.com/paperless-ngx/paperless-ngx/pull/11682))
- Feature: Paperless AI @shamoon ([#10319](https://github.com/paperless-ngx/paperless-ngx/pull/10319))
- Feature: Remote OCR (Azure AI) @shamoon ([#10320](https://github.com/paperless-ngx/paperless-ngx/pull/10320))

### Features / Enhancements

- [Beta] Paperless-ngx v3.0.0 Beta @shamoon ([#12713](https://github.com/paperless-ngx/paperless-ngx/pull/12713))
- Tweakhancement (beta): allow some bulk operations with all @shamoon ([#13193](https://github.com/paperless-ngx/paperless-ngx/pull/13193))
- Security (beta): enforce current permissions in autocomplete @shamoon ([#13188](https://github.com/paperless-ngx/paperless-ngx/pull/13188))
- Security (beta): bound email linkification @shamoon ([#13187](https://github.com/paperless-ngx/paperless-ngx/pull/13187))
- Change: update root modified timestamp on version changes @shamoon ([#13170](https://github.com/paperless-ngx/paperless-ngx/pull/13170))
- Performance: add DB indexes for common query/sort patterns @stumpylog ([#13167](https://github.com/paperless-ngx/paperless-ngx/pull/13167))
- Performance: use NgOptimizedImage for thumbnail lazy loading @shamoon ([#13169](https://github.com/paperless-ngx/paperless-ngx/pull/13169))
- Performance: Tantivy indexing optimization @Merinorus ([#13053](https://github.com/paperless-ngx/paperless-ngx/pull/13053))
- Chorehancement: update to Angular v22, 'zoneless' / 'reactive' @shamoon ([#13114](https://github.com/paperless-ngx/paperless-ngx/pull/13114))
- Enhancement (beta): support LLM timeout config @shamoon ([#13002](https://github.com/paperless-ngx/paperless-ngx/pull/13002))
- Enhancement: ignore diacritics, support multiple substring matching for UI filtering @shamoon ([#13021](https://github.com/paperless-ngx/paperless-ngx/pull/13021))
- Enhancement(beta): replace LanceDB vector store with sqlite-vec @stumpylog ([#12990](https://github.com/paperless-ngx/paperless-ngx/pull/12990))
- Enhancement (beta): Switch the AI vector store to LanceDB @stumpylog ([#12944](https://github.com/paperless-ngx/paperless-ngx/pull/12944))
- Fixhancement (beta): tasks dismiss all @shamoon ([#12949](https://github.com/paperless-ngx/paperless-ngx/pull/12949))
- Enhancement (beta): add direct LLM language setting @shamoon ([#12906](https://github.com/paperless-ngx/paperless-ngx/pull/12906))
- Enhancement: try to respect language for AI suggestions @shamoon ([#12894](https://github.com/paperless-ngx/paperless-ngx/pull/12894))
- Enhancement: AI LLM chunk size and context window config @shamoon ([#12891](https://github.com/paperless-ngx/paperless-ngx/pull/12891))
- Enhancement: support ollama embeddings @shamoon ([#12753](https://github.com/paperless-ngx/paperless-ngx/pull/12753))
- Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog ([#12757](https://github.com/paperless-ngx/paperless-ngx/pull/12757))
- Enhancement: version-aware thumbnail etag @shamoon ([#12754](https://github.com/paperless-ngx/paperless-ngx/pull/12754))
- Documentation: Update v3 migration docs @shamoon ([#12752](https://github.com/paperless-ngx/paperless-ngx/pull/12752))
- Feature: Further reduce document importer memory usage @stumpylog ([#12707](https://github.com/paperless-ngx/paperless-ngx/pull/12707))
- Tweakhancement: use fixed position instead of display none for printing @shamoon ([#12706](https://github.com/paperless-ngx/paperless-ngx/pull/12706))
- Enhancement: Paperless-ngx v3 Logo @shamoon ([#12673](https://github.com/paperless-ngx/paperless-ngx/pull/12673))
- Tweakhancement: localize some more task result messages @shamoon ([#12672](https://github.com/paperless-ngx/paperless-ngx/pull/12672))
- Enhancement: chat message document links @shamoon ([#12670](https://github.com/paperless-ngx/paperless-ngx/pull/12670))
- Tweakhancement: make upload notification open an anchor link @shamoon ([#12659](https://github.com/paperless-ngx/paperless-ngx/pull/12659))
- Tweakhancement: tweak tasks UI, make open doc an anchor @shamoon ([#12658](https://github.com/paperless-ngx/paperless-ngx/pull/12658))
- Enhancement: show small task summary in system status @shamoon ([#12634](https://github.com/paperless-ngx/paperless-ngx/pull/12634))
- Enhancement: new Tasks UI @shamoon ([#12614](https://github.com/paperless-ngx/paperless-ngx/pull/12614))
- Feature: Allow monitoring access to tasks summary @stumpylog ([#12624](https://github.com/paperless-ngx/paperless-ngx/pull/12624))
- Tweak: remove stale index warning @shamoon ([#12616](https://github.com/paperless-ngx/paperless-ngx/pull/12616))
- Enhancement: add highlighting to title + content searches @shamoon ([#12593](https://github.com/paperless-ngx/paperless-ngx/pull/12593))
- Feature: Redesign the task system @stumpylog ([#12584](https://github.com/paperless-ngx/paperless-ngx/pull/12584))
- Feature: Tune SQLite default settings for increased speed @stumpylog ([#12580](https://github.com/paperless-ngx/paperless-ngx/pull/12580))
- Feature: Document fuzzy match improvements @stumpylog ([#12579](https://github.com/paperless-ngx/paperless-ngx/pull/12579))
- Enhancement: validate and sanitize uploaded logos @shamoon ([#12551](https://github.com/paperless-ngx/paperless-ngx/pull/12551))
- Enhancement: add view\_global\_statistics and view\_system\_status permissions @shamoon ([#12530](https://github.com/paperless-ngx/paperless-ngx/pull/12530))
- Fixhancement: include sharelinks + bundles in export/import @shamoon ([#12479](https://github.com/paperless-ngx/paperless-ngx/pull/12479))
- Enhancement: unify text search to use tantivy @shamoon ([#12485](https://github.com/paperless-ngx/paperless-ngx/pull/12485))
- Feature: Consumer logging correlation @stumpylog ([#12510](https://github.com/paperless-ngx/paperless-ngx/pull/12510))
- Security enhancement: allow opt-in blocking internal mail hosts @shamoon ([#12502](https://github.com/paperless-ngx/paperless-ngx/pull/12502))
- Feature: Replace Whoosh with tantivy search backend @stumpylog ([#12471](https://github.com/paperless-ngx/paperless-ngx/pull/12471))
- Fixhancement: include trashed documents in document exporter/importer @JanKleine ([#12425](https://github.com/paperless-ngx/paperless-ngx/pull/12425))
- Tweakhancement: show file extension in StoragePath test @shamoon ([#12452](https://github.com/paperless-ngx/paperless-ngx/pull/12452))
- Feature: Transition all checksums to use SHA256 @stumpylog ([#12432](https://github.com/paperless-ngx/paperless-ngx/pull/12432))
- Enhancement: auto-hide the search bar on mobile @shamoon ([#12404](https://github.com/paperless-ngx/paperless-ngx/pull/12404))
- Change: sort custom fields alphabetically by default @shamoon ([#12358](https://github.com/paperless-ngx/paperless-ngx/pull/12358))
- Feature: Add progress information to the classifier training for a better ux @stumpylog ([#12331](https://github.com/paperless-ngx/paperless-ngx/pull/12331))
- Feature: document parser plugin framework @stumpylog ([#12294](https://github.com/paperless-ngx/paperless-ngx/pull/12294))
- Enhancement: Make the StatusConsumer truly async @stumpylog ([#12298](https://github.com/paperless-ngx/paperless-ngx/pull/12298))
- Feature: Migrate import/export to rich progress @stumpylog ([#12260](https://github.com/paperless-ngx/paperless-ngx/pull/12260))
- Enhancement: Show more document details in merge dialog @svenstaro ([#12271](https://github.com/paperless-ngx/paperless-ngx/pull/12271))
- Enhancement: saved view sharing @shamoon ([#12142](https://github.com/paperless-ngx/paperless-ngx/pull/12142))
- Enhancement: “live” document updates @shamoon ([#12141](https://github.com/paperless-ngx/paperless-ngx/pull/12141))
- Enhancement: Improve the retagger output using rich @stumpylog ([#12194](https://github.com/paperless-ngx/paperless-ngx/pull/12194))
- Enhancement: Transition sanity check to rich and improve output @stumpylog ([#12182](https://github.com/paperless-ngx/paperless-ngx/pull/12182))
- Enhancement: Switch all indexing to use rich @stumpylog ([#12193](https://github.com/paperless-ngx/paperless-ngx/pull/12193))
- Feature: Switch progress bar library to rich @stumpylog ([#12169](https://github.com/paperless-ngx/paperless-ngx/pull/12169))
- Enhancment: Formatted filename for single document downloads @JanKleine ([#12095](https://github.com/paperless-ngx/paperless-ngx/pull/12095))
- Feature: document file versions @shamoon ([#12061](https://github.com/paperless-ngx/paperless-ngx/pull/12061))
- Enhancement: prevent duplicate mail processing across rules @shamoon ([#12159](https://github.com/paperless-ngx/paperless-ngx/pull/12159))
- Feature: move to trash action for workflows @JanKleine ([#11176](https://github.com/paperless-ngx/paperless-ngx/pull/11176))
- Tweakhancement: reset to page 1 on reset filters @shamoon ([#12143](https://github.com/paperless-ngx/paperless-ngx/pull/12143))
- Enhancement: consolidate management lists into document attributes section @shamoon ([#12045](https://github.com/paperless-ngx/paperless-ngx/pull/12045))
- Enhancement: option to stop processing further mail rules @shamoon ([#12053](https://github.com/paperless-ngx/paperless-ngx/pull/12053))
- Tweak: improve 2-digit year parsing @shamoon ([#12044](https://github.com/paperless-ngx/paperless-ngx/pull/12044))
- Enhancement: pngx pdf viewer @shamoon ([#12043](https://github.com/paperless-ngx/paperless-ngx/pull/12043))
- Fixhancement: improve ASN handling with PDF operations @shamoon ([#11689](https://github.com/paperless-ngx/paperless-ngx/pull/11689))
- Feature: Enable users to customize date parsing via plugins @stumpylog ([#11931](https://github.com/paperless-ngx/paperless-ngx/pull/11931))
- Feature: password removal workflow action @shamoon ([#11665](https://github.com/paperless-ngx/paperless-ngx/pull/11665))
- Enhancement: per-type object page sizing @shamoon ([#11977](https://github.com/paperless-ngx/paperless-ngx/pull/11977))
- Enhancement: improve filter drop-down performance with virtual scrolling @shamoon ([#11973](https://github.com/paperless-ngx/paperless-ngx/pull/11973))
- Tweakhancement: tweak bulk delete text @shamoon ([#11967](https://github.com/paperless-ngx/paperless-ngx/pull/11967))
- Feature: support split documents based on tag barcodes @schober-ch ([#11645](https://github.com/paperless-ngx/paperless-ngx/pull/11645))
- Enhancement: Add setting for default PDF Editor mode @JanKleine ([#11927](https://github.com/paperless-ngx/paperless-ngx/pull/11927))
- Fixhancement: auto-queue llm index if needed @shamoon ([#11891](https://github.com/paperless-ngx/paperless-ngx/pull/11891))
- Feature: sharelink bundles @shamoon ([#11682](https://github.com/paperless-ngx/paperless-ngx/pull/11682))
- Enhancement: user control of doc details fields @shamoon ([#11906](https://github.com/paperless-ngx/paperless-ngx/pull/11906))
- Enhancement: improve relative dates in date filter @JanKleine ([#11899](https://github.com/paperless-ngx/paperless-ngx/pull/11899))
- Enhancement: allow duplicates with warnings, UI for discovery @shamoon ([#11815](https://github.com/paperless-ngx/paperless-ngx/pull/11815))
- Enhancement: configurable SSO groups claim @Gabgobie ([#11841](https://github.com/paperless-ngx/paperless-ngx/pull/11841))
- Enhancement: support select all for management lists @shamoon ([#11889](https://github.com/paperless-ngx/paperless-ngx/pull/11889))
- Tweakhancement: display document id, with copy @shamoon ([#11896](https://github.com/paperless-ngx/paperless-ngx/pull/11896))
- Enhancement: Add support for app oidc @paulgessinger ([#11756](https://github.com/paperless-ngx/paperless-ngx/pull/11756))
- Enhancement: Add 'any of' workflow trigger filters @shamoon ([#11683](https://github.com/paperless-ngx/paperless-ngx/pull/11683))
- Enhancement: support doc\_id placeholder in workflow templates @shamoon ([#11847](https://github.com/paperless-ngx/paperless-ngx/pull/11847))
- Performance: improve treenode inefficiencies @shamoon ([#11606](https://github.com/paperless-ngx/paperless-ngx/pull/11606))
- Feature: Remote OCR (Azure AI) @shamoon ([#10320](https://github.com/paperless-ngx/paperless-ngx/pull/10320))
- Feature: password removal action @shamoon ([#11656](https://github.com/paperless-ngx/paperless-ngx/pull/11656))
- Tweakhancement: use anchor element for management list quick filter buttons @shamoon ([#11692](https://github.com/paperless-ngx/paperless-ngx/pull/11692))
- Feature: Indonesian translation @shamoon ([#11641](https://github.com/paperless-ngx/paperless-ngx/pull/11641))

### Bug Fixes

- Fix (beta): prevent pdfjs offsetParent warning @shamoon ([#13197](https://github.com/paperless-ngx/paperless-ngx/pull/13197))
- Fix (beta): dont include hidden buttons in virtual scroll container height @shamoon ([#13194](https://github.com/paperless-ngx/paperless-ngx/pull/13194))
- Fix (beta): fix custom field bulk editing for 'all' @shamoon ([#13191](https://github.com/paperless-ngx/paperless-ngx/pull/13191))
- Security (beta): two small permission check fixes @shamoon ([#13186](https://github.com/paperless-ngx/paperless-ngx/pull/13186))
- Fix (beta): short-circuit ObjectOwnedOrGrantedPermissionsFilter for superusers @stumpylog ([#13183](https://github.com/paperless-ngx/paperless-ngx/pull/13183))
- Fix (beta): compute num\_notes via a subquery instead of Count()+distinct @stumpylog ([#13182](https://github.com/paperless-ngx/paperless-ngx/pull/13182))
- Fix: prevent tag assignment from reverting other pending workflow assignments @stumpylog ([#13178](https://github.com/paperless-ngx/paperless-ngx/pull/13178))
- Fix(beta): cache per-request effective-document resolution for thumb/metadata/preview @stumpylog ([#13166](https://github.com/paperless-ngx/paperless-ngx/pull/13166))
- Fix: fallback from archive version for share links @shamoon ([#13163](https://github.com/paperless-ngx/paperless-ngx/pull/13163))
- Fix: better handle saved view errors in dashboard widgets @shamoon ([#13164](https://github.com/paperless-ngx/paperless-ngx/pull/13164))
- Fix (beta): convert chat component to signal-backed Angular @shamoon ([#13152](https://github.com/paperless-ngx/paperless-ngx/pull/13152))
- Fix: HTTP 500 filtering documents by tags + custom field query on MariaDB @stumpylog ([#13143](https://github.com/paperless-ngx/paperless-ngx/pull/13143))
- Fix: scope ProcessedMail UID deduplication by IMAP UIDVALIDITY @chouquette ([#12839](https://github.com/paperless-ngx/paperless-ngx/pull/12839))
- Fix: allow setting any UID and GID when running rootless @Tahvok ([#13090](https://github.com/paperless-ngx/paperless-ngx/pull/13090))
- Fix (beta): fix sidebar document close button @shamoon ([#13136](https://github.com/paperless-ngx/paperless-ngx/pull/13136))
- Fix: include wasm assets in pdf.js-based viewer @shamoon ([#13122](https://github.com/paperless-ngx/paperless-ngx/pull/13122))
- Fix: fix ui labels from md5 to sha256 @shamoon ([#13119](https://github.com/paperless-ngx/paperless-ngx/pull/13119))
- Fixhancement: dont assign empty title in workflow with broken template @shamoon ([#13112](https://github.com/paperless-ngx/paperless-ngx/pull/13112))
- Fix: clamp mailrule max age before migration @shamoon ([#13093](https://github.com/paperless-ngx/paperless-ngx/pull/13093))
- Fix: use latest document version for bulk download @shamoon ([#13103](https://github.com/paperless-ngx/paperless-ngx/pull/13103))
- Fix (beta): handle relative date with comma query @shamoon ([#13087](https://github.com/paperless-ngx/paperless-ngx/pull/13087))
- Fix (beta): fix sanity checker affected document counts @NgoQuocViet2001 ([#13052](https://github.com/paperless-ngx/paperless-ngx/pull/13052))
- Fix (beta): preserve Unicode in localization prompt @shamoon ([#13055](https://github.com/paperless-ngx/paperless-ngx/pull/13055))
- Fix: change tantivy token limit to title field max length @shamoon ([#13046](https://github.com/paperless-ngx/paperless-ngx/pull/13046))
- Fix: include last-modified in doc etag @shamoon ([#13044](https://github.com/paperless-ngx/paperless-ngx/pull/13044))
- Fix (beta): Stream chunks during compaction to prevent oom on smaller installs @stumpylog ([#13014](https://github.com/paperless-ngx/paperless-ngx/pull/13014))
- Fixhancement (beta): truncate embedding queries for small chunk size @shamoon ([#13028](https://github.com/paperless-ngx/paperless-ngx/pull/13028))
- Fix(beta): Workaround a Tantivy panic in more like this searching @stumpylog ([#13026](https://github.com/paperless-ngx/paperless-ngx/pull/13026))
- Fix (beta): Catch consumer files created during watcher re-creations @stumpylog ([#13013](https://github.com/paperless-ngx/paperless-ngx/pull/13013))
- Fix (beta): restore v2 (Whoosh) advanced-search query compatibility @stumpylog ([#13010](https://github.com/paperless-ngx/paperless-ngx/pull/13010))
- Fix (beta): retry celery ping and report warning on no response @shamoon ([#13012](https://github.com/paperless-ngx/paperless-ngx/pull/13012))
- Fix (beta): don't send chat message on Enter while composing with IME (CJK) @mzyy94 ([#12999](https://github.com/paperless-ngx/paperless-ngx/pull/12999))
- Fix: Apply unicode normalization to all paths and path components @stumpylog ([#12993](https://github.com/paperless-ngx/paperless-ngx/pull/12993))
- Fix: Handle the UTF 16 and BOM text files better @stumpylog ([#12994](https://github.com/paperless-ngx/paperless-ngx/pull/12994))
- Fix (beta): avoid DRF update calling `save` on all fields @shamoon ([#12992](https://github.com/paperless-ngx/paperless-ngx/pull/12992))
- Fix: release pooled DB connection during AI LLM/embedding calls @stumpylog ([#12983](https://github.com/paperless-ngx/paperless-ngx/pull/12983))
- Fix: health-check pooled DB connections and close the pool on worker shutdown @stumpylog ([#12977](https://github.com/paperless-ngx/paperless-ngx/pull/12977))
- Fix: wrap long titles in delete confirm dialog @shamoon ([#12973](https://github.com/paperless-ngx/paperless-ngx/pull/12973))
- Fix (beta): fix re-ordering in merge dialog @shamoon ([#12967](https://github.com/paperless-ngx/paperless-ngx/pull/12967))
- Fix (beta): move task filtering to backend fully @shamoon ([#12956](https://github.com/paperless-ngx/paperless-ngx/pull/12956))
- Fix (beta): avoid unnecessary creating new PDF with pw removal workflow @shamoon ([#12948](https://github.com/paperless-ngx/paperless-ngx/pull/12948))
- Fixhancement (beta): tasks dismiss all @shamoon ([#12949](https://github.com/paperless-ngx/paperless-ngx/pull/12949))
- Fix (beta): correct chat message bg color @shamoon ([#12955](https://github.com/paperless-ngx/paperless-ngx/pull/12955))
- Fix (beta): respect disable state for suggest endpoint, require change perms @shamoon ([#12942](https://github.com/paperless-ngx/paperless-ngx/pull/12942))
- Fix: Ensure checksum comparision is using SHA256 @stumpylog ([#12939](https://github.com/paperless-ngx/paperless-ngx/pull/12939))
- Fix: Restrict the AI backend at settings configure time @stumpylog ([#12903](https://github.com/paperless-ngx/paperless-ngx/pull/12903))
- Fix (beta): correctly apply i18n in suggestions dropdown @shamoon ([#12905](https://github.com/paperless-ngx/paperless-ngx/pull/12905))
- Fix: Lock AI index during reading and don't index documents many times during a bulk update @stumpylog ([#12899](https://github.com/paperless-ngx/paperless-ngx/pull/12899))
- Fix: Minor fixes for the AI indexing @stumpylog ([#12893](https://github.com/paperless-ngx/paperless-ngx/pull/12893))
- Fix (beta): dont use tool calling with ollama @shamoon ([#12896](https://github.com/paperless-ngx/paperless-ngx/pull/12896))
- Fix: Improvements for security around the AI @stumpylog ([#12895](https://github.com/paperless-ngx/paperless-ngx/pull/12895))
- Fix: correctly show timestamp tooltip on history item @nathanaelhoun ([#12879](https://github.com/paperless-ngx/paperless-ngx/pull/12879))
- Fix: Fold query and autocomplete terms with Tantivy's ascii\_fold so special letters match @stumpylog ([#12868](https://github.com/paperless-ngx/paperless-ngx/pull/12868))
- Fix: Don't store autocomplete\_word, only index it @stumpylog ([#12867](https://github.com/paperless-ngx/paperless-ngx/pull/12867))
- Fix: Preserve Whoosh date range swapping in Tantviy @stumpylog ([#12866](https://github.com/paperless-ngx/paperless-ngx/pull/12866))
- Fix: Always release search index writer @stumpylog ([#12865](https://github.com/paperless-ngx/paperless-ngx/pull/12865))
- Fix: Handle CJK title, content and metadata searching @stumpylog ([#12862](https://github.com/paperless-ngx/paperless-ngx/pull/12862))
- Fix: Restrict date query rewrites to date or datetime fields only @stumpylog ([#12864](https://github.com/paperless-ngx/paperless-ngx/pull/12864))
- Fix: Missing call to tanvity wait\_merging\_threads @stumpylog ([#12863](https://github.com/paperless-ngx/paperless-ngx/pull/12863))
- Fix: Handle tanvity index lock contention @stumpylog ([#12856](https://github.com/paperless-ngx/paperless-ngx/pull/12856))
- Fix (beta): better catch chat errors @shamoon ([#12854](https://github.com/paperless-ngx/paperless-ngx/pull/12854))
- Security (beta): fixes for v3 beta @shamoon ([#12838](https://github.com/paperless-ngx/paperless-ngx/pull/12838))
- Fix (beta): normalize long punctuation chunks to improve embedding @shamoon ([#12848](https://github.com/paperless-ngx/paperless-ngx/pull/12848))
- Fix: use chord.on\_error before apply\_async @shamoon ([#12842](https://github.com/paperless-ngx/paperless-ngx/pull/12842))
- Fix: Don't use smaller integer fields for some workflow fields @stumpylog ([#12834](https://github.com/paperless-ngx/paperless-ngx/pull/12834))
- Fix: Password removal source file location @stumpylog ([#12830](https://github.com/paperless-ngx/paperless-ngx/pull/12830))
- Fix (beta): use correct html button type for custom field buttons @shamoon ([#12819](https://github.com/paperless-ngx/paperless-ngx/pull/12819))
- Fix: Defer password removal workflow action until the file is in place @stumpylog ([#12814](https://github.com/paperless-ngx/paperless-ngx/pull/12814))
- Fix: Allow setting allauth rate limit configuration settings @stumpylog ([#12798](https://github.com/paperless-ngx/paperless-ngx/pull/12798))
- Fix: Don't embed the metadata which is already embedded into the context @stumpylog ([#12795](https://github.com/paperless-ngx/paperless-ngx/pull/12795))
- Fix: Sanitize dash or plus from the text search path @stumpylog ([#12789](https://github.com/paperless-ngx/paperless-ngx/pull/12789))
- Fix: improve new tasks ui layout across screen sizes @shamoon ([#12784](https://github.com/paperless-ngx/paperless-ngx/pull/12784))
- Fix: Update parser contract to require empty strings, not None @shamoon ([#12775](https://github.com/paperless-ngx/paperless-ngx/pull/12775))
- Fix: Use a persistent, writeable location for hugging face models @stumpylog ([#12771](https://github.com/paperless-ngx/paperless-ngx/pull/12771))
- Fix: create LLM\_INDEX\_DIR before writing meta.json on first run @pReya ([#12759](https://github.com/paperless-ngx/paperless-ngx/pull/12759))
- Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog ([#12757](https://github.com/paperless-ngx/paperless-ngx/pull/12757))
- Fix: use response synthesizer for RAG doc chat @shamoon ([#12751](https://github.com/paperless-ngx/paperless-ngx/pull/12751))
- Fix: only update modified field in notes actions @shamoon ([#12750](https://github.com/paperless-ngx/paperless-ngx/pull/12750))
- Fix: Handle dash or plus operators in search queries @stumpylog ([#12734](https://github.com/paperless-ngx/paperless-ngx/pull/12734))
- Fixes trash preview when a document has deleted versions @stumpylog ([#12742](https://github.com/paperless-ngx/paperless-ngx/pull/12742))
- Fix: exclude versions from stats count @shamoon ([#12738](https://github.com/paperless-ngx/paperless-ngx/pull/12738))
- Fixes celery chords by using Redis as our result backend @stumpylog ([#12741](https://github.com/paperless-ngx/paperless-ngx/pull/12741))
- Fix: bump version.py to 3.0.0 also @shamoon ([#12736](https://github.com/paperless-ngx/paperless-ngx/pull/12736))
- Fix: makes the font cache folder writeable to all users @stumpylog ([#12726](https://github.com/paperless-ngx/paperless-ngx/pull/12726))
- Fixes Whoosh year only queries to be rewritten to Tantivy date syntax @stumpylog ([#12725](https://github.com/paperless-ngx/paperless-ngx/pull/12725))
- Fix: pass allow parallel tool calls in LLM client @shamoon ([#12718](https://github.com/paperless-ngx/paperless-ngx/pull/12718))
- Fix: Handle passwords for removal action as lists @stumpylog ([#12716](https://github.com/paperless-ngx/paperless-ngx/pull/12716))
- Bumps all our versions to 3.0.0 @stumpylog ([#12715](https://github.com/paperless-ngx/paperless-ngx/pull/12715))
- Fix: avoid unnecessary close\_old\_connections in Celery task dispatch @stumpylog ([#12701](https://github.com/paperless-ngx/paperless-ngx/pull/12701))
- Fix: apply tag changes directly to document in db @shamoon ([#12664](https://github.com/paperless-ngx/paperless-ngx/pull/12664))
- Fix: Use FileResponse for file API responses @stumpylog ([#12638](https://github.com/paperless-ngx/paperless-ngx/pull/12638))
- Fix: Changes bare metal webserver to use uvloop @stumpylog ([#12626](https://github.com/paperless-ngx/paperless-ngx/pull/12626))
- Fixhancement: Exact custom field monetary exact searching @stumpylog ([#12592](https://github.com/paperless-ngx/paperless-ngx/pull/12592))
- Fix: relative added date check visibility @shamoon ([#12600](https://github.com/paperless-ngx/paperless-ngx/pull/12600))
- Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi ([#12597](https://github.com/paperless-ngx/paperless-ngx/pull/12597))
- Fix: reject invalid requests to API notes endpoint @ggouzi ([#12582](https://github.com/paperless-ngx/paperless-ngx/pull/12582))
- Fixhancement: include sharelinks + bundles in export/import @shamoon ([#12479](https://github.com/paperless-ngx/paperless-ngx/pull/12479))
- Fix: Respect workflow change\_groups during consumption @stumpylog ([#12431](https://github.com/paperless-ngx/paperless-ngx/pull/12431))
- Fix: Don't try to update the user when running as non-root @stumpylog ([#12365](https://github.com/paperless-ngx/paperless-ngx/pull/12365))
- Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons @cryptomilk ([#12239](https://github.com/paperless-ngx/paperless-ngx/pull/12239))
- Fixhancement: show sequential + id version labels, fix padding @shamoon ([#12196](https://github.com/paperless-ngx/paperless-ngx/pull/12196))
- Fix: correct user dropdown button icon styling @shamoon ([#12092](https://github.com/paperless-ngx/paperless-ngx/pull/12092))
- Fix: Handle an OOM kill of celery workers in the task handler @stumpylog ([#12040](https://github.com/paperless-ngx/paperless-ngx/pull/12040))
- Fix: re-run ASN check after barcode detection @shamoon ([#11681](https://github.com/paperless-ngx/paperless-ngx/pull/11681))
- Fix: prevent infinite loading crash in mail component @shamoon ([#11978](https://github.com/paperless-ngx/paperless-ngx/pull/11978))
- Fix: fix broken docker create\_classifier command in 2.20.6 @shamoon ([#11965](https://github.com/paperless-ngx/paperless-ngx/pull/11965))
- Fix: ensure css color-scheme for dark mode @shamoon ([#11855](https://github.com/paperless-ngx/paperless-ngx/pull/11855))
- Fix: fix tag list horizontal scroll, again @shamoon ([#11839](https://github.com/paperless-ngx/paperless-ngx/pull/11839))
- Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon ([#11811](https://github.com/paperless-ngx/paperless-ngx/pull/11811))
- Fix: use explicit order field for workflow actions @shamoon ([#11781](https://github.com/paperless-ngx/paperless-ngx/pull/11781))
- Fix: fix recurring workflow to respect latest run time @shamoon ([#11735](https://github.com/paperless-ngx/paperless-ngx/pull/11735))
- Fixhancement: add error handling and retry when opening index @shamoon ([#11731](https://github.com/paperless-ngx/paperless-ngx/pull/11731))
- Fix: validate cf integer values within PostgreSQL range @shamoon ([#11666](https://github.com/paperless-ngx/paperless-ngx/pull/11666))
- Fix: support ordering by storage path name @shamoon ([#11661](https://github.com/paperless-ngx/paperless-ngx/pull/11661))
- Fix: propagate metadata override created value @shamoon ([#11659](https://github.com/paperless-ngx/paperless-ngx/pull/11659))
- Fix: prevent ASN collisions for merge operations @shamoon ([#11634](https://github.com/paperless-ngx/paperless-ngx/pull/11634))

### Documentation

- [Beta] Paperless-ngx v3.0.0 Beta @shamoon ([#12713](https://github.com/paperless-ngx/paperless-ngx/pull/12713))
- Fix: clamp mailrule max age before migration @shamoon ([#13093](https://github.com/paperless-ngx/paperless-ngx/pull/13093))
- Documentation (beta): Updates documentation for new v3 features @stumpylog ([#13033](https://github.com/paperless-ngx/paperless-ngx/pull/13033))
- Documentation: fix PAPERLESS\_DATE\_PARSER\_LANGUAGES formatting @shamoon ([#12997](https://github.com/paperless-ngx/paperless-ngx/pull/12997))
- Documentation: remove duplicate words in three files @mvanhorn ([#12852](https://github.com/paperless-ngx/paperless-ngx/pull/12852))
- Fix: Allow setting allauth rate limit configuration settings @stumpylog ([#12798](https://github.com/paperless-ngx/paperless-ngx/pull/12798))
- Documentation: Update v3 migration docs @shamoon ([#12752](https://github.com/paperless-ngx/paperless-ngx/pull/12752))
- Enhancement: Paperless-ngx v3 Logo @shamoon ([#12673](https://github.com/paperless-ngx/paperless-ngx/pull/12673))
- Chore: separate actions from bulk edit endpoint @shamoon ([#12286](https://github.com/paperless-ngx/paperless-ngx/pull/12286))
- Chore: Switches to use prek in place of pre-commit @stumpylog ([#12002](https://github.com/paperless-ngx/paperless-ngx/pull/12002))
- Chore: upgrade to node v24 @shamoon ([#11747](https://github.com/paperless-ngx/paperless-ngx/pull/11747))

### Maintenance

- [Beta] Paperless-ngx v3.0.0 Beta @shamoon ([#12713](https://github.com/paperless-ngx/paperless-ngx/pull/12713))
- Chore(deps): Bump the actions group across 1 directory with 14 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#13079](https://github.com/paperless-ngx/paperless-ngx/pull/13079))
- Chore(deps): Bump the actions group across 1 directory with 12 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12909](https://github.com/paperless-ngx/paperless-ngx/pull/12909))
- Chore(deps): Bump the actions group across 1 directory with 17 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12686](https://github.com/paperless-ngx/paperless-ngx/pull/12686))
- Chore(deps): Bump the actions group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12538](https://github.com/paperless-ngx/paperless-ngx/pull/12538))
- Chore(deps-dev): Bump @<!---->playwright/test from 1.58.2 to 1.59.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12537](https://github.com/paperless-ngx/paperless-ngx/pull/12537))
- Chore: address more zizmor flags @shamoon ([#12529](https://github.com/paperless-ngx/paperless-ngx/pull/12529))
- Chore: Resolves some zizmor reported code scan findings @stumpylog ([#12516](https://github.com/paperless-ngx/paperless-ngx/pull/12516))
- Chore(deps): Bump the actions group across 1 directory with 9 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12490](https://github.com/paperless-ngx/paperless-ngx/pull/12490))
- Chore(deps): Bump the actions group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12377](https://github.com/paperless-ngx/paperless-ngx/pull/12377))
- Chore(deps): Bump the actions group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12322](https://github.com/paperless-ngx/paperless-ngx/pull/12322))
- Chore: Don't upload digets file as a zip @stumpylog ([#12264](https://github.com/paperless-ngx/paperless-ngx/pull/12264))
- Chore(deps): Bump the actions group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12224](https://github.com/paperless-ngx/paperless-ngx/pull/12224))
- Chore(deps): Bump j178/prek-action from 1.1.0 to 1.1.1 in the actions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#12033](https://github.com/paperless-ngx/paperless-ngx/pull/12033))
- Chore: Switches to use prek in place of pre-commit @stumpylog ([#12002](https://github.com/paperless-ngx/paperless-ngx/pull/12002))
- Chore: Enable mypy checking in CI @stumpylog ([#11991](https://github.com/paperless-ngx/paperless-ngx/pull/11991))
- Chore(deps): Bump the actions group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11966](https://github.com/paperless-ngx/paperless-ngx/pull/11966))
- Chore: upgrade to node v24 @shamoon ([#11747](https://github.com/paperless-ngx/paperless-ngx/pull/11747))
- Performance: pre-compress static files on ARM64 @stumpylog ([#11721](https://github.com/paperless-ngx/paperless-ngx/pull/11721))
- Chore(deps): Bump the actions group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11695](https://github.com/paperless-ngx/paperless-ngx/pull/11695))
- Feature: Indonesian translation @shamoon ([#11641](https://github.com/paperless-ngx/paperless-ngx/pull/11641))

### Dependencies

<details>
<summary>162 changes</summary>

Removed for character
</details>

### All App Changes

<details>
<summary>360 changes</summary>

- [Beta] Paperless-ngx v3.0.0 Beta @shamoon ([#12713](https://github.com/paperless-ngx/paperless-ngx/pull/12713))
- Chore (beta): mark first batch of thumbnails as priorty for LCP warning @shamoon ([#13196](https://github.com/paperless-ngx/paperless-ngx/pull/13196))
- Fix (beta): prevent pdfjs offsetParent warning @shamoon ([#13197](https://github.com/paperless-ngx/paperless-ngx/pull/13197))
- Fix (beta): dont include hidden buttons in virtual scroll container height @shamoon ([#13194](https://github.com/paperless-ngx/paperless-ngx/pull/13194))
- Tweakhancement (beta): allow some bulk operations with all @shamoon ([#13193](https://github.com/paperless-ngx/paperless-ngx/pull/13193))
- Fix (beta): fix custom field bulk editing for 'all' @shamoon ([#13191](https://github.com/paperless-ngx/paperless-ngx/pull/13191))
- Security (beta): enforce current permissions in autocomplete @shamoon ([#13188](https://github.com/paperless-ngx/paperless-ngx/pull/13188))
- Security (beta): bound email linkification @shamoon ([#13187](https://github.com/paperless-ngx/paperless-ngx/pull/13187))
- Security (beta): two small permission check fixes @shamoon ([#13186](https://github.com/paperless-ngx/paperless-ngx/pull/13186))
- Fix (beta): short-circuit ObjectOwnedOrGrantedPermissionsFilter for superusers @stumpylog ([#13183](https://github.com/paperless-ngx/paperless-ngx/pull/13183))
- Fix (beta): compute num\_notes via a subquery instead of Count()+distinct @stumpylog ([#13182](https://github.com/paperless-ngx/paperless-ngx/pull/13182))
- Change: update root modified timestamp on version changes @shamoon ([#13170](https://github.com/paperless-ngx/paperless-ngx/pull/13170))
- Fix: prevent tag assignment from reverting other pending workflow assignments @stumpylog ([#13178](https://github.com/paperless-ngx/paperless-ngx/pull/13178))
- Performance: add DB indexes for common query/sort patterns @stumpylog ([#13167](https://github.com/paperless-ngx/paperless-ngx/pull/13167))
- Performance: use NgOptimizedImage for thumbnail lazy loading @shamoon ([#13169](https://github.com/paperless-ngx/paperless-ngx/pull/13169))
- Fix(beta): cache per-request effective-document resolution for thumb/metadata/preview @stumpylog ([#13166](https://github.com/paperless-ngx/paperless-ngx/pull/13166))
- Fix: fallback from archive version for share links @shamoon ([#13163](https://github.com/paperless-ngx/paperless-ngx/pull/13163))
- Fix: better handle saved view errors in dashboard widgets @shamoon ([#13164](https://github.com/paperless-ngx/paperless-ngx/pull/13164))
- Fix (beta): convert chat component to signal-backed Angular @shamoon ([#13152](https://github.com/paperless-ngx/paperless-ngx/pull/13152))
- Fix: HTTP 500 filtering documents by tags + custom field query on MariaDB @stumpylog ([#13143](https://github.com/paperless-ngx/paperless-ngx/pull/13143))
- Performance: Tantivy indexing optimization @Merinorus ([#13053](https://github.com/paperless-ngx/paperless-ngx/pull/13053))
- Chore(deps-dev): Bump the development group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#13068](https://github.com/paperless-ngx/paperless-ngx/pull/13068))
- Fix: scope ProcessedMail UID deduplication by IMAP UIDVALIDITY @chouquette ([#12839](https://github.com/paperless-ngx/paperless-ngx/pull/12839))
- Fix (beta): fix sidebar document close button @shamoon ([#13136](https://github.com/paperless-ngx/paperless-ngx/pull/13136))
- Fix: include wasm assets in pdf.js-based viewer @shamoon ([#13122](https://github.com/paperless-ngx/paperless-ngx/pull/13122))
- Fix: fix ui labels from md5 to sha256 @shamoon ([#13119](https://github.com/paperless-ngx/paperless-ngx/pull/13119))
- Chorehancement: update to Angular v22, 'zoneless' / 'reactive' @shamoon ([#13114](https://github.com/paperless-ngx/paperless-ngx/pull/13114))
- Fixhancement: dont assign empty title in workflow with broken template @shamoon ([#13112](https://github.com/paperless-ngx/paperless-ngx/pull/13112))
- Fix: clamp mailrule max age before migration @shamoon ([#13093](https://github.com/paperless-ngx/paperless-ngx/pull/13093))
- Fix: use latest document version for bulk download @shamoon ([#13103](https://github.com/paperless-ngx/paperless-ngx/pull/13103))
- Fix (beta): handle relative date with comma query @shamoon ([#13087](https://github.com/paperless-ngx/paperless-ngx/pull/13087))
- Chore(deps): Bump pdfjs-dist from 5.7.284 to 6.0.227 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#13080](https://github.com/paperless-ngx/paperless-ngx/pull/13080))
- Chore(deps-dev): Bump @<!---->playwright/test from 1.60.0 to 1.61.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#13078](https://github.com/paperless-ngx/paperless-ngx/pull/13078))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#13076](https://github.com/paperless-ngx/paperless-ngx/pull/13076))
- Chore(deps): Bump uuid from 14.0.0 to 14.0.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#13077](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#13075](https://github.com/paperless-ngx/paperless-ngx/pull/13075))
- Chore(deps-dev): Bump @<!---->types/node from 25.9.1 to 26.0.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#13081](https://github.com/paperless-ngx/paperless-ngx/pull/13081))
- Fix (beta): fix sanity checker affected document counts @NgoQuocViet2001 ([#13052](https://github.com/paperless-ngx/paperless-ngx/pull/13052))
- Fix (beta): preserve Unicode in localization prompt @shamoon ([#13055](https://github.com/paperless-ngx/paperless-ngx/pull/13055))
- Fix: change tantivy token limit to title field max length @shamoon ([#13046](https://github.com/paperless-ngx/paperless-ngx/pull/13046))
- Fix: include last-modified in doc etag @shamoon ([#13044](https://github.com/paperless-ngx/paperless-ngx/pull/13044))
- Fix (beta): Stream chunks during compaction to prevent oom on smaller installs @stumpylog ([#13014](https://github.com/paperless-ngx/paperless-ngx/pull/13014))
- Fixhancement (beta): truncate embedding queries for small chunk size @shamoon ([#13028](https://github.com/paperless-ngx/paperless-ngx/pull/13028))
- Enhancement (beta): support LLM timeout config @shamoon ([#13002](https://github.com/paperless-ngx/paperless-ngx/pull/13002))
- Fix(beta): Workaround a Tantivy panic in more like this searching @stumpylog ([#13026](https://github.com/paperless-ngx/paperless-ngx/pull/13026))
- Chore (beta): set tool\_required to openai-like llm calls @shamoon ([#13025](https://github.com/paperless-ngx/paperless-ngx/pull/13025))
- Enhancement: ignore diacritics, support multiple substring matching for UI filtering @shamoon ([#13021](https://github.com/paperless-ngx/paperless-ngx/pull/13021))
- Fix (beta): Catch consumer files created during watcher re-creations @stumpylog ([#13013](https://github.com/paperless-ngx/paperless-ngx/pull/13013))
- Chore(deps): Bump the npm\_and\_yarn group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#13016](https://github.com/paperless-ngx/paperless-ngx/pull/13016))
- Fix (beta): restore v2 (Whoosh) advanced-search query compatibility @stumpylog ([#13010](https://github.com/paperless-ngx/paperless-ngx/pull/13010))
- Fix (beta): retry celery ping and report warning on no response @shamoon ([#13012](https://github.com/paperless-ngx/paperless-ngx/pull/13012))
- Enhancement(beta): replace LanceDB vector store with sqlite-vec @stumpylog ([#12990](https://github.com/paperless-ngx/paperless-ngx/pull/12990))
- Chore(deps): Bump the uv group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12995](https://github.com/paperless-ngx/paperless-ngx/pull/12995))
- Chore(deps): Bump the utilities-patch group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12931](https://github.com/paperless-ngx/paperless-ngx/pull/12931))
- Fix (beta): don't send chat message on Enter while composing with IME (CJK) @mzyy94 ([#12999](https://github.com/paperless-ngx/paperless-ngx/pull/12999))
- Fix: Apply unicode normalization to all paths and path components @stumpylog ([#12993](https://github.com/paperless-ngx/paperless-ngx/pull/12993))
- Fix: Handle the UTF 16 and BOM text files better @stumpylog ([#12994](https://github.com/paperless-ngx/paperless-ngx/pull/12994))
- Fix (beta): avoid DRF update calling `save` on all fields @shamoon ([#12992](https://github.com/paperless-ngx/paperless-ngx/pull/12992))
- Fix: release pooled DB connection during AI LLM/embedding calls @stumpylog ([#12983](https://github.com/paperless-ngx/paperless-ngx/pull/12983))
- Fix: health-check pooled DB connections and close the pool on worker shutdown @stumpylog ([#12977](https://github.com/paperless-ngx/paperless-ngx/pull/12977))
- Fix: wrap long titles in delete confirm dialog @shamoon ([#12973](https://github.com/paperless-ngx/paperless-ngx/pull/12973))
- Fix (beta): fix re-ordering in merge dialog @shamoon ([#12967](https://github.com/paperless-ngx/paperless-ngx/pull/12967))
- Fix (beta): move task filtering to backend fully @shamoon ([#12956](https://github.com/paperless-ngx/paperless-ngx/pull/12956))
- Chore(deps-dev): Bump types-markdown from 3.10.2.20260211 to 3.10.2.20260518 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12927](https://github.com/paperless-ngx/paperless-ngx/pull/12927))
- Chore(deps): Bump aiohttp from 3.13.4 to 3.14.0 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12930](https://github.com/paperless-ngx/paperless-ngx/pull/12930))
- Fix (beta): avoid unnecessary creating new PDF with pw removal workflow @shamoon ([#12948](https://github.com/paperless-ngx/paperless-ngx/pull/12948))
- Enhancement (beta): Switch the AI vector store to LanceDB @stumpylog ([#12944](https://github.com/paperless-ngx/paperless-ngx/pull/12944))
- Fixhancement (beta): tasks dismiss all @shamoon ([#12949](https://github.com/paperless-ngx/paperless-ngx/pull/12949))
- Fix (beta): correct chat message bg color @shamoon ([#12955](https://github.com/paperless-ngx/paperless-ngx/pull/12955))
- Fix (beta): respect disable state for suggest endpoint, require change perms @shamoon ([#12942](https://github.com/paperless-ngx/paperless-ngx/pull/12942))
- Fix: Ensure checksum comparision is using SHA256 @stumpylog ([#12939](https://github.com/paperless-ngx/paperless-ngx/pull/12939))
- Fix: Restrict the AI backend at settings configure time @stumpylog ([#12903](https://github.com/paperless-ngx/paperless-ngx/pull/12903))
- Enhancement (beta): add direct LLM language setting @shamoon ([#12906](https://github.com/paperless-ngx/paperless-ngx/pull/12906))
- Chore(deps-dev): Bump @<!---->playwright/test from 1.59.1 to 1.60.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12919](https://github.com/paperless-ngx/paperless-ngx/pull/12919))
- Fix (beta): correctly apply i18n in suggestions dropdown @shamoon ([#12905](https://github.com/paperless-ngx/paperless-ngx/pull/12905))
- Chore(deps-dev): Bump @<!---->types/node from 25.6.0 to 25.9.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12915](https://github.com/paperless-ngx/paperless-ngx/pull/12915))
- Chore(deps): Bump pdfjs-dist from 5.6.205 to 5.7.284 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12918](https://github.com/paperless-ngx/paperless-ngx/pull/12918))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12913](https://github.com/paperless-ngx/paperless-ngx/pull/12913))
- Chore(deps-dev): Bump webpack from 5.106.2 to 5.107.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12917](https://github.com/paperless-ngx/paperless-ngx/pull/12917))
- Chore(deps): Bump zone.js from 0.16.1 to 0.16.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12916](https://github.com/paperless-ngx/paperless-ngx/pull/12916))
- Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12908](https://github.com/paperless-ngx/paperless-ngx/pull/12908))
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12907](https://github.com/paperless-ngx/paperless-ngx/pull/12907))
- Fix: Lock AI index during reading and don't index documents many times during a bulk update @stumpylog ([#12899](https://github.com/paperless-ngx/paperless-ngx/pull/12899))
- Fix: Minor fixes for the AI indexing @stumpylog ([#12893](https://github.com/paperless-ngx/paperless-ngx/pull/12893))
- Fix (beta): dont use tool calling with ollama @shamoon ([#12896](https://github.com/paperless-ngx/paperless-ngx/pull/12896))
- Enhancement: try to respect language for AI suggestions @shamoon ([#12894](https://github.com/paperless-ngx/paperless-ngx/pull/12894))
- Enhancement: AI LLM chunk size and context window config @shamoon ([#12891](https://github.com/paperless-ngx/paperless-ngx/pull/12891))
- Fix: Improvements for security around the AI @stumpylog ([#12895](https://github.com/paperless-ngx/paperless-ngx/pull/12895))
- Fix: correctly show timestamp tooltip on history item @nathanaelhoun ([#12879](https://github.com/paperless-ngx/paperless-ngx/pull/12879))
- Fix: Fold query and autocomplete terms with Tantivy's ascii\_fold so special letters match @stumpylog ([#12868](https://github.com/paperless-ngx/paperless-ngx/pull/12868))
- Fix: Don't store autocomplete\_word, only index it @stumpylog ([#12867](https://github.com/paperless-ngx/paperless-ngx/pull/12867))
- Fix: Preserve Whoosh date range swapping in Tantviy @stumpylog ([#12866](https://github.com/paperless-ngx/paperless-ngx/pull/12866))
- Fix: Always release search index writer @stumpylog ([#12865](https://github.com/paperless-ngx/paperless-ngx/pull/12865))
- Fix: Handle CJK title, content and metadata searching @stumpylog ([#12862](https://github.com/paperless-ngx/paperless-ngx/pull/12862))
- Fix: Restrict date query rewrites to date or datetime fields only @stumpylog ([#12864](https://github.com/paperless-ngx/paperless-ngx/pull/12864))
- Fix: Missing call to tanvity wait\_merging\_threads @stumpylog ([#12863](https://github.com/paperless-ngx/paperless-ngx/pull/12863))
- Fix: Handle tanvity index lock contention @stumpylog ([#12856](https://github.com/paperless-ngx/paperless-ngx/pull/12856))
- Fix (beta): better catch chat errors @shamoon ([#12854](https://github.com/paperless-ngx/paperless-ngx/pull/12854))
- Performance (beta): dont re-build vector index with each chat @shamoon ([#12847](https://github.com/paperless-ngx/paperless-ngx/pull/12847))
- Security (beta): fixes for v3 beta @shamoon ([#12838](https://github.com/paperless-ngx/paperless-ngx/pull/12838))
- Fix (beta): normalize long punctuation chunks to improve embedding @shamoon ([#12848](https://github.com/paperless-ngx/paperless-ngx/pull/12848))
- Fix: use chord.on\_error before apply\_async @shamoon ([#12842](https://github.com/paperless-ngx/paperless-ngx/pull/12842))
- Fix: Don't use smaller integer fields for some workflow fields @stumpylog ([#12834](https://github.com/paperless-ngx/paperless-ngx/pull/12834))
- Fix: Password removal source file location @stumpylog ([#12830](https://github.com/paperless-ngx/paperless-ngx/pull/12830))
- Fix (beta): use correct html button type for custom field buttons @shamoon ([#12819](https://github.com/paperless-ngx/paperless-ngx/pull/12819))
- Fix: Defer password removal workflow action until the file is in place @stumpylog ([#12814](https://github.com/paperless-ngx/paperless-ngx/pull/12814))
- Fix: Allow setting allauth rate limit configuration settings @stumpylog ([#12798](https://github.com/paperless-ngx/paperless-ngx/pull/12798))
- Fix: Don't embed the metadata which is already embedded into the context @stumpylog ([#12795](https://github.com/paperless-ngx/paperless-ngx/pull/12795))
- Fix: Sanitize dash or plus from the text search path @stumpylog ([#12789](https://github.com/paperless-ngx/paperless-ngx/pull/12789))
- Fix: improve new tasks ui layout across screen sizes @shamoon ([#12784](https://github.com/paperless-ngx/paperless-ngx/pull/12784))
- Fix: Update parser contract to require empty strings, not None @shamoon ([#12775](https://github.com/paperless-ngx/paperless-ngx/pull/12775))
- Chore: Further dependency security updates @stumpylog ([#12780](https://github.com/paperless-ngx/paperless-ngx/pull/12780))
- Fix: Use a persistent, writeable location for hugging face models @stumpylog ([#12771](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12767](https://github.com/paperless-ngx/paperless-ngx/pull/12767))
- Enhancement: support ollama embeddings @shamoon ([#12753](https://github.com/paperless-ngx/paperless-ngx/pull/12753))
- Fix: create LLM\_INDEX\_DIR before writing meta.json on first run @pReya ([#12759](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12764](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12763](https://github.com/paperless-ngx/paperless-ngx/pull/12763))
- Tweakhancment: Include the last applied 'documents' migration in the log @stumpylog ([#12757](https://github.com/paperless-ngx/paperless-ngx/pull/12757))
- Fix: use response synthesizer for RAG doc chat @shamoon ([#12751](https://github.com/paperless-ngx/paperless-ngx/pull/12751))
- Fix: only update modified field in notes actions @shamoon ([#12750](https://github.com/paperless-ngx/paperless-ngx/pull/12750))
- Enhancement: version-aware thumbnail etag @shamoon ([#12754](https://github.com/paperless-ngx/paperless-ngx/pull/12754))
- Documentation: Update v3 migration docs @shamoon ([#12752](https://github.com/paperless-ngx/paperless-ngx/pull/12752))
- Fix: Handle dash or plus operators in search queries @stumpylog ([#12734](https://github.com/paperless-ngx/paperless-ngx/pull/12734))
- Fixes trash preview when a document has deleted versions @stumpylog ([#12742](https://github.com/paperless-ngx/paperless-ngx/pull/12742))
- Fix: exclude versions from stats count @shamoon ([#12738](https://github.com/paperless-ngx/paperless-ngx/pull/12738))
- Fixes celery chords by using Redis as our result backend @stumpylog ([#12741](https://github.com/paperless-ngx/paperless-ngx/pull/12741))
- Fix: bump version.py to 3.0.0 also @shamoon ([#12736](https://github.com/paperless-ngx/paperless-ngx/pull/12736))
- Chore: Targeted dependency upgrades @stumpylog ([#12731](https://github.com/paperless-ngx/paperless-ngx/pull/12731))
- Fixes Whoosh year only queries to be rewritten to Tantivy date syntax @stumpylog ([#12725](https://github.com/paperless-ngx/paperless-ngx/pull/12725))
- Fix: pass allow parallel tool calls in LLM client @shamoon ([#12718](https://github.com/paperless-ngx/paperless-ngx/pull/12718))
- Fix: Handle passwords for removal action as lists @stumpylog ([#12716](https://github.com/paperless-ngx/paperless-ngx/pull/12716))
- Bumps all our versions to 3.0.0 @stumpylog ([#12715](https://github.com/paperless-ngx/paperless-ngx/pull/12715))
- Feature: Further reduce document importer memory usage @stumpylog ([#12707](https://github.com/paperless-ngx/paperless-ngx/pull/12707))
- Chore(deps-dev): Bump @<!---->playwright/test from 1.59.0 to 1.59.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12692](https://github.com/paperless-ngx/paperless-ngx/pull/12692))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12689](https://github.com/paperless-ngx/paperless-ngx/pull/12689))
- Chore(deps-dev): Bump @<!---->codecov/webpack-plugin from 1.9.1 to 2.0.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12691](https://github.com/paperless-ngx/paperless-ngx/pull/12691))
- Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12685](https://github.com/paperless-ngx/paperless-ngx/pull/12685))
- Chore(deps-dev): Bump @<!---->types/node from 25.5.0 to 25.6.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12690](https://github.com/paperless-ngx/paperless-ngx/pull/12690))
- Chore(deps-dev): Bump webpack from 5.105.3 to 5.106.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12693](https://github.com/paperless-ngx/paperless-ngx/pull/12693))
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 15 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12684](https://github.com/paperless-ngx/paperless-ngx/pull/12684))
- Tweakhancement: use fixed position instead of display none for printing @shamoon ([#12706](https://github.com/paperless-ngx/paperless-ngx/pull/12706))
- Fix: avoid unnecessary close\_old\_connections in Celery task dispatch @stumpylog ([#12701](https://github.com/paperless-ngx/paperless-ngx/pull/12701))
- Chore(deps): Bump the utilities-patch group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12702](https://github.com/paperless-ngx/paperless-ngx/pull/12702))
- Chore(deps): Bump the utilities-minor group across 1 directory with 9 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12696](https://github.com/paperless-ngx/paperless-ngx/pull/12696))
- Chore(deps): Bump ocrmypdf from 17.4.0 to 17.4.2 in the document-processing group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12687](https://github.com/paperless-ngx/paperless-ngx/pull/12687))
- Chore(deps-dev): Bump the development group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12683](https://github.com/paperless-ngx/paperless-ngx/pull/12683))
- Enhancement: Paperless-ngx v3 Logo @shamoon ([#12673](https://github.com/paperless-ngx/paperless-ngx/pull/12673))
- Tweakhancement: localize some more task result messages @shamoon ([#12672](https://github.com/paperless-ngx/paperless-ngx/pull/12672))
- Enhancement: chat message document links @shamoon ([#12670](https://github.com/paperless-ngx/paperless-ngx/pull/12670))
- Fix: apply tag changes directly to document in db @shamoon ([#12664](https://github.com/paperless-ngx/paperless-ngx/pull/12664))
- Tweakhancement: make upload notification open an anchor link @shamoon ([#12659](https://github.com/paperless-ngx/paperless-ngx/pull/12659))
- Tweakhancement: tweak tasks UI, make open doc an anchor @shamoon ([#12658](https://github.com/paperless-ngx/paperless-ngx/pull/12658))
- Fix: Use FileResponse for file API responses @stumpylog ([#12638](https://github.com/paperless-ngx/paperless-ngx/pull/12638))
- Chore: Paginate the task listing @stumpylog ([#12633](https://github.com/paperless-ngx/paperless-ngx/pull/12633))
- Enhancement: show small task summary in system status @shamoon ([#12634](https://github.com/paperless-ngx/paperless-ngx/pull/12634))
- Security: Don't allow the example secret key as a secret key @stumpylog ([#12630](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12627](https://github.com/paperless-ngx/paperless-ngx/pull/12627))
- Enhancement: new Tasks UI @shamoon ([#12614](https://github.com/paperless-ngx/paperless-ngx/pull/12614))
- Feature: Allow monitoring access to tasks summary @stumpylog ([#12624](https://github.com/paperless-ngx/paperless-ngx/pull/12624))
- Chore(deps): Bump lxml from 6.0.2 to 6.1.0 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12619](https://github.com/paperless-ngx/paperless-ngx/pull/12619))
- Performance: Increases workflow related M2M prefetching @stumpylog ([#12618](https://github.com/paperless-ngx/paperless-ngx/pull/12618))
- Tweak: remove stale index warning @shamoon ([#12616](https://github.com/paperless-ngx/paperless-ngx/pull/12616))
- Fixhancement: Exact custom field monetary exact searching @stumpylog ([#12592](https://github.com/paperless-ngx/paperless-ngx/pull/12592))
- Performance: Resolves another N+1 query related to custom fields @stumpylog ([#12617](https://github.com/paperless-ngx/paperless-ngx/pull/12617))
- Enhancement: add highlighting to title + content searches @shamoon ([#12593](https://github.com/paperless-ngx/paperless-ngx/pull/12593))
- Feature: Redesign the task system @stumpylog ([#12584](https://github.com/paperless-ngx/paperless-ngx/pull/12584))
- Fix: relative added date check visibility @shamoon ([#12600](https://github.com/paperless-ngx/paperless-ngx/pull/12600))
- Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi ([#12597](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12585](https://github.com/paperless-ngx/paperless-ngx/pull/12585))
- Feature: Tune SQLite default settings for increased speed @stumpylog ([#12580](https://github.com/paperless-ngx/paperless-ngx/pull/12580))
- Feature: Document fuzzy match improvements @stumpylog ([#12579](https://github.com/paperless-ngx/paperless-ngx/pull/12579))
- Fix: reject invalid requests to API notes endpoint @ggouzi ([#12582](https://github.com/paperless-ngx/paperless-ngx/pull/12582))
- [BREAKING] Remove the positional arguments from the pre/post consume scripts @stumpylog ([#12573](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12575](https://github.com/paperless-ngx/paperless-ngx/pull/12575))
- Chore(deps): Bump pillow from 12.1.1 to 12.2.0 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12574](https://github.com/paperless-ngx/paperless-ngx/pull/12574))
- Chore(deps-dev): Bump pytest from 9.0.2 to 9.0.3 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12568](https://github.com/paperless-ngx/paperless-ngx/pull/12568))
- Enhancement: validate and sanitize uploaded logos @shamoon ([#12551](https://github.com/paperless-ngx/paperless-ngx/pull/12551))
- Chore(deps): Bump the utilities-minor group across 1 directory with 19 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12540](https://github.com/paperless-ngx/paperless-ngx/pull/12540))
- Chore(deps): Bump cryptography from 46.0.6 to 46.0.7 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12546](https://github.com/paperless-ngx/paperless-ngx/pull/12546))
- Chore(deps-dev): Bump types-python-dateutil from 2.9.0.20260305 to 2.9.0.20260323 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12542](https://github.com/paperless-ngx/paperless-ngx/pull/12542))
- Chore(deps-dev): Bump types-pytz from 2025.2.0.20251108 to 2026.1.1.20260304 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12541](https://github.com/paperless-ngx/paperless-ngx/pull/12541))
- Chore(deps): Bump django-guardian from 3.3.0 to 3.3.1 in the utilities-patch group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12539](https://github.com/paperless-ngx/paperless-ngx/pull/12539))
- Chore(deps-dev): Bump zensical from 0.0.29 to 0.0.31 in the development group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12532](https://github.com/paperless-ngx/paperless-ngx/pull/12532))
- Chore(deps): Bump pdfjs-dist from 5.4.624 to 5.6.205 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12536](https://github.com/paperless-ngx/paperless-ngx/pull/12536))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12535](https://github.com/paperless-ngx/paperless-ngx/pull/12535))
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12533](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12534](https://github.com/paperless-ngx/paperless-ngx/pull/12534))
- Chore(deps-dev): Bump @<!---->playwright/test from 1.58.2 to 1.59.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12537](https://github.com/paperless-ngx/paperless-ngx/pull/12537))
- Enhancement: add view\_global\_statistics and view\_system\_status permissions @shamoon ([#12530](https://github.com/paperless-ngx/paperless-ngx/pull/12530))
- Chore(deps): Bump the npm\_and\_yarn group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12531](https://github.com/paperless-ngx/paperless-ngx/pull/12531))
- [BREAKING] Decouple OCR control from archive file control @stumpylog ([#12448](https://github.com/paperless-ngx/paperless-ngx/pull/12448))
- Fixhancement: include sharelinks + bundles in export/import @shamoon ([#12479](https://github.com/paperless-ngx/paperless-ngx/pull/12479))
- Chore: Better typed status manager messages @stumpylog ([#12509](https://github.com/paperless-ngx/paperless-ngx/pull/12509))
- Enhancement: unify text search to use tantivy @shamoon ([#12485](https://github.com/paperless-ngx/paperless-ngx/pull/12485))
- Feature: Consumer logging correlation @stumpylog ([#12510](https://github.com/paperless-ngx/paperless-ngx/pull/12510))
- Chore(deps): Bump djangorestframework from 3.16.1 to 3.17.1 in the django-ecosystem group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12488](https://github.com/paperless-ngx/paperless-ngx/pull/12488))
- Chore(deps): Bump the document-processing group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12489](https://github.com/paperless-ngx/paperless-ngx/pull/12489))
- Chore(deps): Bump the utilities-patch group across 1 directory with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12499](https://github.com/paperless-ngx/paperless-ngx/pull/12499))
- Security: Sign the Celery pickled tasks @stumpylog ([#12504](https://github.com/paperless-ngx/paperless-ngx/pull/12504))
- Security enhancement: allow opt-in blocking internal mail hosts @shamoon ([#12502](https://github.com/paperless-ngx/paperless-ngx/pull/12502))
- Feature: Replace Whoosh with tantivy search backend @stumpylog ([#12471](https://github.com/paperless-ngx/paperless-ngx/pull/12471))
- Chore(deps): Bump aiohttp from 3.13.3 to 3.13.4 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12486](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12498](https://github.com/paperless-ngx/paperless-ngx/pull/12498))
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 20 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12491](https://github.com/paperless-ngx/paperless-ngx/pull/12491))
- Chore(deps-dev): Bump @<!---->types/node from 25.4.0 to 25.5.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12494](https://github.com/paperless-ngx/paperless-ngx/pull/12494))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12493](https://github.com/paperless-ngx/paperless-ngx/pull/12493))
- Performance: support bulk edit without id lists @shamoon ([#12355](https://github.com/paperless-ngx/paperless-ngx/pull/12355))
- Performance: deprecate and remove usage of `all` in API results @shamoon ([#12309](https://github.com/paperless-ngx/paperless-ngx/pull/12309))
- Performance: support passing selection data with filtered document requests @shamoon ([#12300](https://github.com/paperless-ngx/paperless-ngx/pull/12300))
- Chore(deps): Bump cryptography from 46.0.5 to 46.0.6 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12458](https://github.com/paperless-ngx/paperless-ngx/pull/12458))
- Tweakhancement: show file extension in StoragePath test @shamoon ([#12452](https://github.com/paperless-ngx/paperless-ngx/pull/12452))
- Feature: Transition all checksums to use SHA256 @stumpylog ([#12432](https://github.com/paperless-ngx/paperless-ngx/pull/12432))
- Chore(deps): Bump requests from 2.32.5 to 2.33.0 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12441](https://github.com/paperless-ngx/paperless-ngx/pull/12441))
- Enhancement: auto-hide the search bar on mobile @shamoon ([#12404](https://github.com/paperless-ngx/paperless-ngx/pull/12404))
- Chore: logger, response and template sanitization cleanup @shamoon ([#12439](https://github.com/paperless-ngx/paperless-ngx/pull/12439))
- Fix: Respect workflow change\_groups during consumption @stumpylog ([#12431](https://github.com/paperless-ngx/paperless-ngx/pull/12431))
- Security: prevent prototype pollution in frontend settings and list view @shamoon ([#12438](https://github.com/paperless-ngx/paperless-ngx/pull/12438))
- Chore(deps): Bump cbor2 from 5.8.0 to 5.9.0 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12424](https://github.com/paperless-ngx/paperless-ngx/pull/12424))
- Chore(deps): Bump tinytag from 2.2.0 to 2.2.1 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#12396](https://github.com/paperless-ngx/paperless-ngx/pull/12396))
- Chore(deps): Bump ujson from 5.11.0 to 5.12.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12387](https://github.com/paperless-ngx/paperless-ngx/pull/12387))
- Chore(deps): Bump pyasn1 from 0.6.2 to 0.6.3 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12370](https://github.com/paperless-ngx/paperless-ngx/pull/12370))
- Chore(deps): Bump the utilities-patch group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12382](https://github.com/paperless-ngx/paperless-ngx/pull/12382))
- Chore(deps): Bump openai from 2.24.0 to 2.26.0 in the utilities-minor group @[dependabot[bot]](https://github.com/apps/dependabot) ([#12379](https://github.com/paperless-ngx/paperless-ngx/pull/12379))
- Chore(deps-dev): Bump types-python-dateutil from 2.9.0.20260124 to 2.9.0.20260305 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12380](https://github.com/paperless-ngx/paperless-ngx/pull/12380))
- Chore(deps): Update django-allauth[mfa,socialaccount] requirement from ~=65.14.0 to ~=65.15.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12381](https://github.com/paperless-ngx/paperless-ngx/pull/12381))
- Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12374](https://github.com/paperless-ngx/paperless-ngx/pull/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]](https://github.com/apps/dependabot) ([#12373](https://github.com/paperless-ngx/paperless-ngx/pull/12373))
- Chore(deps-dev): Bump @<!---->types/node from 25.3.3 to 25.4.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12376](https://github.com/paperless-ngx/paperless-ngx/pull/12376))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12375](https://github.com/paperless-ngx/paperless-ngx/pull/12375))
- Chore: Reduce system status test times @stumpylog ([#12354](https://github.com/paperless-ngx/paperless-ngx/pull/12354))
- Chore(deps): Bump pyopenssl from 25.3.0 to 26.0.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12363](https://github.com/paperless-ngx/paperless-ngx/pull/12363))
- Chore(deps): Bump pyjwt from 2.10.1 to 2.12.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12335](https://github.com/paperless-ngx/paperless-ngx/pull/12335))
- Change: sort custom fields alphabetically by default @shamoon ([#12358](https://github.com/paperless-ngx/paperless-ngx/pull/12358))
- Feature: Add progress information to the classifier training for a better ux @stumpylog ([#12331](https://github.com/paperless-ngx/paperless-ngx/pull/12331))
- Chore: bump Angular dependencies to 21.2.x @shamoon ([#12338](https://github.com/paperless-ngx/paperless-ngx/pull/12338))
- Bump ocrmypdf from 16.13.0 to 17.3.0 in the document-processing group @[dependabot[bot]](https://github.com/apps/dependabot) ([#12267](https://github.com/paperless-ngx/paperless-ngx/pull/12267))
- Feature: document parser plugin framework @stumpylog ([#12294](https://github.com/paperless-ngx/paperless-ngx/pull/12294))
- Chore(deps): Bump tornado from 6.5.4 to 6.5.5 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12327](https://github.com/paperless-ngx/paperless-ngx/pull/12327))
- Enhancement: Make the StatusConsumer truly async @stumpylog ([#12298](https://github.com/paperless-ngx/paperless-ngx/pull/12298))
- Chore(deps): Bump the utilities-minor group across 1 directory with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12324](https://github.com/paperless-ngx/paperless-ngx/pull/12324))
- Chore: mark document detail email action as deprecated @shamoon ([#12308](https://github.com/paperless-ngx/paperless-ngx/pull/12308))
- Chore: separate actions from bulk edit endpoint @shamoon ([#12286](https://github.com/paperless-ngx/paperless-ngx/pull/12286))
- [BREAKING] Chore: drop support for api versions \< 9 @shamoon ([#12284](https://github.com/paperless-ngx/paperless-ngx/pull/12284))
- Chore(deps): Bump the utilities-patch group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12291](https://github.com/paperless-ngx/paperless-ngx/pull/12291))
- Performance: Stream JSON during import for memory improvements @stumpylog ([#12276](https://github.com/paperless-ngx/paperless-ngx/pull/12276))
- Feature: Migrate import/export to rich progress @stumpylog ([#12260](https://github.com/paperless-ngx/paperless-ngx/pull/12260))
- Enhancement: Show more document details in merge dialog @svenstaro ([#12271](https://github.com/paperless-ngx/paperless-ngx/pull/12271))
- Performance: Further export memory improvements @stumpylog ([#12273](https://github.com/paperless-ngx/paperless-ngx/pull/12273))
- Chore: pytest style paperless tests @stumpylog ([#12254](https://github.com/paperless-ngx/paperless-ngx/pull/12254))
- Chore: update ESLint to v10 @shamoon ([#12256](https://github.com/paperless-ngx/paperless-ngx/pull/12256))
- Bump django-allauth from 65.14.0 to 65.14.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12253](https://github.com/paperless-ngx/paperless-ngx/pull/12253))
- Bump django from 5.2.11 to 5.2.12 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12249](https://github.com/paperless-ngx/paperless-ngx/pull/12249))
- [BREAKING] Chore: Drop support for Python 3.10 @stumpylog ([#12234](https://github.com/paperless-ngx/paperless-ngx/pull/12234))
- Performance: Improve exporter memory efficiency @stumpylog ([#12236](https://github.com/paperless-ngx/paperless-ngx/pull/12236))
- Enhancement: saved view sharing @shamoon ([#12142](https://github.com/paperless-ngx/paperless-ngx/pull/12142))
- Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons @cryptomilk ([#12239](https://github.com/paperless-ngx/paperless-ngx/pull/12239))
- Enhancement: “live” document updates @shamoon ([#12141](https://github.com/paperless-ngx/paperless-ngx/pull/12141))
- Enhancement: Improve the retagger output using rich @stumpylog ([#12194](https://github.com/paperless-ngx/paperless-ngx/pull/12194))
- Enhancement: Transition sanity check to rich and improve output @stumpylog ([#12182](https://github.com/paperless-ngx/paperless-ngx/pull/12182))
- Enhancement: Switch all indexing to use rich @stumpylog ([#12193](https://github.com/paperless-ngx/paperless-ngx/pull/12193))
- Chore(deps): Bump whitenoise from 6.11.0 to 6.12.0 in the django-ecosystem group @[dependabot[bot]](https://github.com/apps/dependabot) ([#12192](https://github.com/paperless-ngx/paperless-ngx/pull/12192))
- Fixhancement: show sequential + id version labels, fix padding @shamoon ([#12196](https://github.com/paperless-ngx/paperless-ngx/pull/12196))
- [BREAKING] Chore: Refactor advanced database settings to allow more user configuration @stumpylog ([#12165](https://github.com/paperless-ngx/paperless-ngx/pull/12165))
- Chore(deps): Bump the utilities-patch group across 1 directory with 11 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12179](https://github.com/paperless-ngx/paperless-ngx/pull/12179))
- Feature: Switch progress bar library to rich @stumpylog ([#12169](https://github.com/paperless-ngx/paperless-ngx/pull/12169))
- Chore(deps): Bump nltk from 3.9.2 to 3.9.3 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12177](https://github.com/paperless-ngx/paperless-ngx/pull/12177))
- Enhancment: Formatted filename for single document downloads @JanKleine ([#12095](https://github.com/paperless-ngx/paperless-ngx/pull/12095))
- Chore(deps): Bump the utilities-minor group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12174](https://github.com/paperless-ngx/paperless-ngx/pull/12174))
- Feature: document file versions @shamoon ([#12061](https://github.com/paperless-ngx/paperless-ngx/pull/12061))
- [BREAKING] Remove API v1 compatability @stumpylog ([#12166](https://github.com/paperless-ngx/paperless-ngx/pull/12166))
- Enhancement: prevent duplicate mail processing across rules @shamoon ([#12159](https://github.com/paperless-ngx/paperless-ngx/pull/12159))
- Feature: move to trash action for workflows @JanKleine ([#11176](https://github.com/paperless-ngx/paperless-ngx/pull/11176))
- Tweakhancement: reset to page 1 on reset filters @shamoon ([#12143](https://github.com/paperless-ngx/paperless-ngx/pull/12143))
- Fix: correct user dropdown button icon styling @shamoon ([#12092](https://github.com/paperless-ngx/paperless-ngx/pull/12092))
- Enhancement: consolidate management lists into document attributes section @shamoon ([#12045](https://github.com/paperless-ngx/paperless-ngx/pull/12045))
- Enhancement: option to stop processing further mail rules @shamoon ([#12053](https://github.com/paperless-ngx/paperless-ngx/pull/12053))
- [BREAKING] Remove pybzar as a barcode reader @stumpylog ([#12065](https://github.com/paperless-ngx/paperless-ngx/pull/12065))
- Chore(deps): Bump pillow from 12.1.0 to 12.1.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12064](https://github.com/paperless-ngx/paperless-ngx/pull/12064))
- Chore(deps): Bump cryptography from 46.0.3 to 46.0.5 @[dependabot[bot]](https://github.com/apps/dependabot) ([#12060](https://github.com/paperless-ngx/paperless-ngx/pull/12060))
- Chore: Optimizes the integer fields for choice types @stumpylog ([#12057](https://github.com/paperless-ngx/paperless-ngx/pull/12057))
- Chore(deps): Bump the utilities-patch group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12051](https://github.com/paperless-ngx/paperless-ngx/pull/12051))
- Tweak: improve 2-digit year parsing @shamoon ([#12044](https://github.com/paperless-ngx/paperless-ngx/pull/12044))
- Enhancement: pngx pdf viewer @shamoon ([#12043](https://github.com/paperless-ngx/paperless-ngx/pull/12043))
- Fix: Handle an OOM kill of celery workers in the task handler @stumpylog ([#12040](https://github.com/paperless-ngx/paperless-ngx/pull/12040))
- Chore(deps-dev): Bump @<!---->playwright/test from 1.58.1 to 1.58.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12032](https://github.com/paperless-ngx/paperless-ngx/pull/12032))
- Chore(deps): Bump the utilities-minor group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12020](https://github.com/paperless-ngx/paperless-ngx/pull/12020))
- Fixhancement: improve ASN handling with PDF operations @shamoon ([#11689](https://github.com/paperless-ngx/paperless-ngx/pull/11689))
- Upgrade: Bump @<!---->types/node from 25.2.0 to 25.2.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12008](https://github.com/paperless-ngx/paperless-ngx/pull/12008))
- Upgrade: Bump webpack from 5.103.0 to 5.105.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#12007](https://github.com/paperless-ngx/paperless-ngx/pull/12007))
- Chore: bump Angular to 21.1.3, ngx-ui-tour-ng-bootstrap to v18 @shamoon ([#12015](https://github.com/paperless-ngx/paperless-ngx/pull/12015))
- Chore: Switches to use prek in place of pre-commit @stumpylog ([#12002](https://github.com/paperless-ngx/paperless-ngx/pull/12002))
- Chore(deps): Bump the utilities-patch group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11981](https://github.com/paperless-ngx/paperless-ngx/pull/11981))
- Chore(deps): Bump the utilities-minor group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11993](https://github.com/paperless-ngx/paperless-ngx/pull/11993))
- Chore(deps): Bump drf-spectacular-sidecar from 2025.10.1 to 2026.1.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11985](https://github.com/paperless-ngx/paperless-ngx/pull/11985))
- Chore(deps): Update django-allauth[mfa,socialaccount] requirement from ~=65.13.1 to ~=65.14.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11984](https://github.com/paperless-ngx/paperless-ngx/pull/11984))
- Chore(deps): Update granian[uvloop] requirement from ~=2.6.0 to ~=2.7.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11983](https://github.com/paperless-ngx/paperless-ngx/pull/11983))
- Chore(deps): Bump django from 5.2.10 to 5.2.11 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11988](https://github.com/paperless-ngx/paperless-ngx/pull/11988))
- Feature: Enable users to customize date parsing via plugins @stumpylog ([#11931](https://github.com/paperless-ngx/paperless-ngx/pull/11931))
- Chore: Fix further test flakiness @stumpylog ([#11987](https://github.com/paperless-ngx/paperless-ngx/pull/11987))
- Feature: password removal workflow action @shamoon ([#11665](https://github.com/paperless-ngx/paperless-ngx/pull/11665))
- Fix: re-run ASN check after barcode detection @shamoon ([#11681](https://github.com/paperless-ngx/paperless-ngx/pull/11681))
- Fix: prevent infinite loading crash in mail component @shamoon ([#11978](https://github.com/paperless-ngx/paperless-ngx/pull/11978))
- Enhancement: per-type object page sizing @shamoon ([#11977](https://github.com/paperless-ngx/paperless-ngx/pull/11977))
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 22 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11968](https://github.com/paperless-ngx/paperless-ngx/pull/11968))
- Chore(deps): Bump zone.js from 0.15.1 to 0.16.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11970](https://github.com/paperless-ngx/paperless-ngx/pull/11970))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11969](https://github.com/paperless-ngx/paperless-ngx/pull/11969))
- Chore(deps-dev): Bump @<!---->types/node from 24.10.1 to 25.2.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11972](https://github.com/paperless-ngx/paperless-ngx/pull/11972))
- Chore(deps-dev): Bump @<!---->playwright/test from 1.57.0 to 1.58.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11971](https://github.com/paperless-ngx/paperless-ngx/pull/11971))
- Enhancement: improve filter drop-down performance with virtual scrolling @shamoon ([#11973](https://github.com/paperless-ngx/paperless-ngx/pull/11973))
- Tweakhancement: tweak bulk delete text @shamoon ([#11967](https://github.com/paperless-ngx/paperless-ngx/pull/11967))
- Feature: support split documents based on tag barcodes @schober-ch ([#11645](https://github.com/paperless-ngx/paperless-ngx/pull/11645))
- Chore: Bulk backend updates @stumpylog ([#11543](https://github.com/paperless-ngx/paperless-ngx/pull/11543))
- Tweak: increase minimum screen width before inserting padding @JanKleine ([#11926](https://github.com/paperless-ngx/paperless-ngx/pull/11926))
- Enhancement: Add setting for default PDF Editor mode @JanKleine ([#11927](https://github.com/paperless-ngx/paperless-ngx/pull/11927))
- Fixhancement: auto-queue llm index if needed @shamoon ([#11891](https://github.com/paperless-ngx/paperless-ngx/pull/11891))
- Feature: sharelink bundles @shamoon ([#11682](https://github.com/paperless-ngx/paperless-ngx/pull/11682))
- Enhancement: user control of doc details fields @shamoon ([#11906](https://github.com/paperless-ngx/paperless-ngx/pull/11906))
- Enhancement: improve relative dates in date filter @JanKleine ([#11899](https://github.com/paperless-ngx/paperless-ngx/pull/11899))
- Performance: faster statistics panel on dashboard @Merinorus ([#11760](https://github.com/paperless-ngx/paperless-ngx/pull/11760))
- Enhancement: allow duplicates with warnings, UI for discovery @shamoon ([#11815](https://github.com/paperless-ngx/paperless-ngx/pull/11815))
- Enhancement: configurable SSO groups claim @Gabgobie ([#11841](https://github.com/paperless-ngx/paperless-ngx/pull/11841))
- Enhancement: support select all for management lists @shamoon ([#11889](https://github.com/paperless-ngx/paperless-ngx/pull/11889))
- Tweakhancement: display document id, with copy @shamoon ([#11896](https://github.com/paperless-ngx/paperless-ngx/pull/11896))
- Enhancement: Add support for app oidc @paulgessinger ([#11756](https://github.com/paperless-ngx/paperless-ngx/pull/11756))
- Enhancement: Add 'any of' workflow trigger filters @shamoon ([#11683](https://github.com/paperless-ngx/paperless-ngx/pull/11683))
- [BREAKING] Remove support for document and thumbnail encryption @stumpylog ([#11850](https://github.com/paperless-ngx/paperless-ngx/pull/11850))
- Fix: ensure css color-scheme for dark mode @shamoon ([#11855](https://github.com/paperless-ngx/paperless-ngx/pull/11855))
- Enhancement: support doc\_id placeholder in workflow templates @shamoon ([#11847](https://github.com/paperless-ngx/paperless-ngx/pull/11847))
- [BREAKING] Feature: Simplify and improve the consumer @stumpylog ([#11753](https://github.com/paperless-ngx/paperless-ngx/pull/11753))
- Fix: fix tag list horizontal scroll, again @shamoon ([#11839](https://github.com/paperless-ngx/paperless-ngx/pull/11839))
- Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon ([#11811](https://github.com/paperless-ngx/paperless-ngx/pull/11811))
- Chore(deps): Bump the utilities-patch group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11793](https://github.com/paperless-ngx/paperless-ngx/pull/11793))
- Chore(deps): Bump the utilities-minor group across 1 directory with 10 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11799](https://github.com/paperless-ngx/paperless-ngx/pull/11799))
- Chore(deps): Bump pyasn1 from 0.6.1 to 0.6.2 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11801](https://github.com/paperless-ngx/paperless-ngx/pull/11801))
- Chore(deps): Bump torch from 2.7.1 to 2.8.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11800](https://github.com/paperless-ngx/paperless-ngx/pull/11800))
- Chore(deps): Bump brotli from 1.1.0 to 1.2.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11796](https://github.com/paperless-ngx/paperless-ngx/pull/11796))
- Chore(deps): Bump transformers from 4.51.3 to 4.53.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11797](https://github.com/paperless-ngx/paperless-ngx/pull/11797))
- Chore(deps): Bump django from 5.2.7 to 5.2.9 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11794](https://github.com/paperless-ngx/paperless-ngx/pull/11794))
- Chore(deps): Bump the llama-index group @[dependabot[bot]](https://github.com/apps/dependabot) ([#11798](https://github.com/paperless-ngx/paperless-ngx/pull/11798))
- Chore(deps): Bump marshmallow from 3.26.1 to 3.26.2 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11790](https://github.com/paperless-ngx/paperless-ngx/pull/11790))
- Chore(deps): Bump uv from 0.9.3 to 0.9.6 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11795](https://github.com/paperless-ngx/paperless-ngx/pull/11795))
- Chore(deps): Bump aiohttp from 3.11.18 to 3.13.3 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11789](https://github.com/paperless-ngx/paperless-ngx/pull/11789))
- Chore(deps): Bump urllib3 from 2.5.0 to 2.6.3 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11792](https://github.com/paperless-ngx/paperless-ngx/pull/11792))
- Chore(deps): Bump virtualenv from 20.34.0 to 20.36.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11774](https://github.com/paperless-ngx/paperless-ngx/pull/11774))
- Fix: use explicit order field for workflow actions @shamoon ([#11781](https://github.com/paperless-ngx/paperless-ngx/pull/11781))
- Chore(deps): Bump azure-core from 1.33.0 to 1.38.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11776](https://github.com/paperless-ngx/paperless-ngx/pull/11776))
- Feature: Paperless AI @shamoon ([#10319](https://github.com/paperless-ngx/paperless-ngx/pull/10319))
- Performance: improve treenode inefficiencies @shamoon ([#11606](https://github.com/paperless-ngx/paperless-ngx/pull/11606))
- Chore: upgrade to node v24 @shamoon ([#11747](https://github.com/paperless-ngx/paperless-ngx/pull/11747))
- Chore: upgrade to Angular v21 @shamoon ([#11746](https://github.com/paperless-ngx/paperless-ngx/pull/11746))
- Feature: Remote OCR (Azure AI) @shamoon ([#10320](https://github.com/paperless-ngx/paperless-ngx/pull/10320))
- Feature: password removal action @shamoon ([#11656](https://github.com/paperless-ngx/paperless-ngx/pull/11656))
- Fix: fix recurring workflow to respect latest run time @shamoon ([#11735](https://github.com/paperless-ngx/paperless-ngx/pull/11735))
- Fixhancement: add error handling and retry when opening index @shamoon ([#11731](https://github.com/paperless-ngx/paperless-ngx/pull/11731))
- Tweakhancement: use anchor element for management list quick filter buttons @shamoon ([#11692](https://github.com/paperless-ngx/paperless-ngx/pull/11692))
- Fix: validate cf integer values within PostgreSQL range @shamoon ([#11666](https://github.com/paperless-ngx/paperless-ngx/pull/11666))
- Fix: support ordering by storage path name @shamoon ([#116