Changelog - Paperless-ngx
Author: the Paperless-ngx team
Description: Documentation for the Paperless-ngx document management system software.

Skip to content

# Changelog

## paperless-ngx 3.0.3

### Bug Fixes

- Fixhancement: PAPERLESS_ALLAUTH_TRUSTED_PROXY_COUNT @shamoon (#13281)
- Fix: preserve document fields during Gotenberg conversion to PDF @stumpylog (#13271)
- Fix: Makes the email date aware as soon as possible during parsing @stumpylog (#13266)
- Fix: Handle a plain string as Celery sometimes provides for the traceback @stumpylog (#13267)
- Fix: Emit the torch index into the requirements.txt for people still using it @stumpylog (#13265)
- Fix: handle notes without a user when building the search index @matthiasmast (#13260)

### Documentation

- Docs: warn bare-metal users about stale files when upgrading @stumpylog (#13296)
- Documentation: Add the NumPy CPU baseline increase to the migration guide @stumpylog (#13269)

### Maintenance

- Fix: Emit the torch index into the requirements.txt for people still using it @stumpylog (#13265)

### All App Changes

6 changes
- Fixhancement: PAPERLESS\_ALLAUTH\_TRUSTED\_PROXY\_COUNT [@shamoon](https://github.com/shamoon) ([#13281](https://github.com/paperless-ngx/paperless-ngx/pull/13281)) - Tweak: adjust top navbar wrapping when AI chat button visible [@shamoon](https://github.com/shamoon) ([#13280](https://github.com/paperless-ngx/paperless-ngx/pull/13280)) - Fix: preserve document fields during Gotenberg conversion to PDF [@stumpylog](https://github.com/stumpylog) ([#13271](https://github.com/paperless-ngx/paperless-ngx/pull/13271)) - Fix: Makes the email date aware as soon as possible during parsing [@stumpylog](https://github.com/stumpylog) ([#13266](https://github.com/paperless-ngx/paperless-ngx/pull/13266)) - Fix: Handle a plain string as Celery sometimes provides for the traceback [@stumpylog](https://github.com/stumpylog) ([#13267](https://github.com/paperless-ngx/paperless-ngx/pull/13267)) - Fix: handle notes without a user when building the search index [@matthiasmast](https://github.com/matthiasmast) ([#13260](https://github.com/paperless-ngx/paperless-ngx/pull/13260))

## paperless-ngx 3.0.2

### Bug Fixes

- Fix: fix broken migration in 3.0.1 @shamoon (#13242)

### All App Changes

- Fix: fix broken migration in 3.0.1 @shamoon (#13242)

## paperless-ngx 3.0.1

### Bug Fixes

- Fix: selection_data re-derives the filtered document set 5 times over @stumpylog (#13229)
- Fix: exclude source document from its own RAG similarity results @stumpylog (#13233)
- Fix: split mailrule maximum_age clamp into its own migration @stumpylog (#13231)
- Chore: mark yes in confirm button for translation @shamoon (#13225)
- Fix: correct URL for W001 check @shamoon (#13220)
- Fix: ensure create dialog uses correct attribute type @shamoon (#13221)
- Fix: correct database engine from postgres to postgresql @OberstVonGatow (#13213)
- Fix: remove unnecessary .distinct() dominating document list queries @stumpylog (#13205)
- Fix: also wrap non-breaking words in chat messages, handle whitespace @shamoon (#13211)
- Fix: tag/custom-field document_count scales badly with tag count @stumpylog (#13203)
- Fix: batch document user_can_change checks to avoid per-row N+1 @stumpylog (#13204)
- Fix: fix app title restoration @shamoon (#13208)
- Fix: handle long wrapping titles in AI chat document list @shamoon (#13206)

### Dependencies

- Chore(deps-dev): Bump postcss from 8.5.6 to 8.5.22 in /src/paperless_mail/templates in the npm_and_yarn group across 1 directory @dependabot[bot] (#13236)
- Chore(deps): Bump pyasn1 from 0.6.3 to 0.6.4 in the uv group across 1 directory @dependabot[bot] (#13237)
- Chore(deps): Bump the uv group across 1 directory with 8 updates @dependabot[bot] (#13189)

### All App Changes

17 changes
- Chore(deps-dev): Bump postcss from 8.5.6 to 8.5.22 in /src/paperless\_mail/templates in the npm\_and\_yarn group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#13236](https://github.com/paperless-ngx/paperless-ngx/pull/13236)) - Fix: selection\_data re-derives the filtered document set 5 times over [@stumpylog](https://github.com/stumpylog) ([#13229](https://github.com/paperless-ngx/paperless-ngx/pull/13229)) - Chore: reword "Settings > Default permissions" description for clarity [@NotaInutilis](https://github.com/NotaInutilis) ([#13232](https://github.com/paperless-ngx/paperless-ngx/pull/13232)) - Chore(deps): Bump pyasn1 from 0.6.3 to 0.6.4 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#13237](https://github.com/paperless-ngx/paperless-ngx/pull/13237)) - Chore(deps): Bump the uv group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#13189](https://github.com/paperless-ngx/paperless-ngx/pull/13189)) - Fix: exclude source document from its own RAG similarity results [@stumpylog](https://github.com/stumpylog) ([#13233](https://github.com/paperless-ngx/paperless-ngx/pull/13233)) - Fix: split mailrule maximum\_age clamp into its own migration [@stumpylog](https://github.com/stumpylog) ([#13231](https://github.com/paperless-ngx/paperless-ngx/pull/13231)) - Chore: mark yes in confirm button for translation [@shamoon](https://github.com/shamoon) ([#13225](https://github.com/paperless-ngx/paperless-ngx/pull/13225)) - Fix: correct URL for W001 check [@shamoon](https://github.com/shamoon) ([#13220](https://github.com/paperless-ngx/paperless-ngx/pull/13220)) - Fix: ensure create dialog uses correct attribute type [@shamoon](https://github.com/shamoon) ([#13221](https://github.com/paperless-ngx/paperless-ngx/pull/13221)) - Fix: correct database engine from postgres to postgresql [@OberstVonGatow](https://github.com/OberstVonGatow) ([#13213](https://github.com/paperless-ngx/paperless-ngx/pull/13213)) - Fix: remove unnecessary .distinct() dominating document list queries [@stumpylog](https://github.com/stumpylog) ([#13205](https://github.com/paperless-ngx/paperless-ngx/pull/13205)) - Fix: also wrap non-breaking words in chat messages, handle whitespace [@shamoon](https://github.com/shamoon) ([#13211](https://github.com/paperless-ngx/paperless-ngx/pull/13211)) - Fix: tag/custom-field document\_count scales badly with tag count [@stumpylog](https://github.com/stumpylog) ([#13203](https://github.com/paperless-ngx/paperless-ngx/pull/13203)) - Fix: batch document user\_can\_change checks to avoid per-row N+1 [@stumpylog](https://github.com/stumpylog) ([#13204](https://github.com/paperless-ngx/paperless-ngx/pull/13204)) - Fix: fix app title restoration [@shamoon](https://github.com/shamoon) ([#13208](https://github.com/paperless-ngx/paperless-ngx/pull/13208)) - Fix: handle long wrapping titles in AI chat document list [@shamoon](https://github.com/shamoon) ([#13206](https://github.com/paperless-ngx/paperless-ngx/pull/13206))

## paperless-ngx 3.0.0

### Breaking Changes

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

### Notable Changes

- Feature: Replace Whoosh with tantivy search backend @stumpylog (#12471)
- Feature: document parser plugin framework @stumpylog (#12294)
- Feature: document file versions @shamoon (#12061)
- Feature: sharelink bundles @shamoon (#11682)
- Feature: Paperless AI @shamoon (#10319)
- Feature: Remote OCR (Azure AI) @shamoon (#10320)

### Features / Enhancements

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

### Bug Fixes

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

### Documentation

- Documentation (beta): Updates documentation for new v3 features @stumpylog (#13033)
- Documentation: fix PAPERLESS_DATE_PARSER_LANGUAGES formatting @shamoon (#12997)
- Documentation: remove duplicate words in three files @mvanhorn (#12852)
- Documentation: Update v3 migration docs @shamoon (#12752)

### Maintenance

- Chore: separate actions from bulk edit endpoint @shamoon (#12286)
- Chore: address more zizmor flags @shamoon (#12529)
- Chore: Resolves some zizmor reported code scan findings @stumpylog (#12516)
- Chore: Don't upload digets file as a zip @stumpylog (#12264)
- Chore: Switches to use prek in place of pre-commit @stumpylog (#12002)
- Chore: Enable mypy checking in CI @stumpylog (#11991)
- Chore: upgrade to node v24 @shamoon (#11747)
- Performance: pre-compress static files on ARM64 @stumpylog (#11721)

### Dependencies

160 changes
- Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#13137](https://github.com/paperless-ngx/paperless-ngx/pull/13137)) - 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)) - docker-compose(deps): bump greenmail/standalone from 2.1.8 to 2.1.9 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#13067](https://github.com/paperless-ngx/paperless-ngx/pull/13067)) - docker-compose(deps): bump gotenberg/gotenberg from 8.33 to 8.34 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#13066](https://github.com/paperless-ngx/paperless-ngx/pull/13066)) - docker-compose(deps): bump nginx from 1.31.1-alpine to 1.31.2-alpine in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#13065](https://github.com/paperless-ngx/paperless-ngx/pull/13065)) - docker(deps): Bump astral-sh/uv from 0.11.19-python3.12-trixie-slim to 0.11.28-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#13070](https://github.com/paperless-ngx/paperless-ngx/pull/13070)) - 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 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)) - 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)) - 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)) - 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)) - Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12923](https://github.com/paperless-ngx/paperless-ngx/pull/12923)) - docker(deps): Bump astral-sh/uv from 0.11.6-python3.12-trixie-slim to 0.11.19-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#12920](https://github.com/paperless-ngx/paperless-ngx/pull/12920)) - 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)) - docker-compose(deps): bump apache/tika from 3.2.3.0 to 3.3.1.0 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#12912](https://github.com/paperless-ngx/paperless-ngx/pull/12912)) - docker-compose(deps): bump gotenberg/gotenberg from 8.27 to 8.33 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#12910](https://github.com/paperless-ngx/paperless-ngx/pull/12910)) - docker-compose(deps): Bump nginx from 1.29.5-alpine to 1.31.1-alpine in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#12911](https://github.com/paperless-ngx/paperless-ngx/pull/12911)) - 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)) - 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)) - 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)) - 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)) - Chore: Targeted dependency upgrades [@stumpylog](https://github.com/stumpylog) ([#12731](https://github.com/paperless-ngx/paperless-ngx/pull/12731)) - 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)) - 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 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 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)) - Chore(deps): Bump the pre-commit-dependencies group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12694](https://github.com/paperless-ngx/paperless-ngx/pull/12694)) - 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)) - 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)) - 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)) - 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)) - 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): 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 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)) - 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)) - 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)) - 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 the pre-commit-dependencies group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12495](https://github.com/paperless-ngx/paperless-ngx/pull/12495)) - 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 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 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)) - 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)) - 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)) - 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 https://github.com/astral-sh/ruff-pre-commit from v0.15.5 to 0.15.6 in the pre-commit-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#12371](https://github.com/paperless-ngx/paperless-ngx/pull/12371)) - 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 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(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)) - Chore: bump Angular dependencies to 21.2.x [@shamoon](https://github.com/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)) - 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)) - 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(deps): Bump the pre-commit-dependencies group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#12323](https://github.com/paperless-ngx/paperless-ngx/pull/12323)) - 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)) - docker(deps): bump astral-sh/uv from 0.10.7-python3.12-trixie-slim to 0.10.9-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#12265](https://github.com/paperless-ngx/paperless-ngx/pull/12265)) - 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)) - Chore: update ESLint to v10 [@shamoon](https://github.com/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)) - docker(deps): Bump astral-sh/uv from 0.10.5-python3.12-trixie-slim to 0.10.7-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#12191](https://github.com/paperless-ngx/paperless-ngx/pull/12191)) - 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: Updates actions to the most specific version released [@stumpylog](https://github.com/stumpylog) ([#12222](https://github.com/paperless-ngx/paperless-ngx/pull/12222)) - 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)) - docker-compose(deps): Bump gotenberg/gotenberg from 8.26 to 8.27 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#12190](https://github.com/paperless-ngx/paperless-ngx/pull/12190)) - Chore: Updates s6-overlay to 3.2.2.0 [@stumpylog](https://github.com/stumpylog) ([#12189](https://github.com/paperless-ngx/paperless-ngx/pull/12189)) - 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)) - 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)) - 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)) - docker(deps): Bump astral-sh/uv from 0.10.0-python3.12-trixie-slim to 0.10.4-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#12125](https://github.com/paperless-ngx/paperless-ngx/pull/12125)) - 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(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)) - 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)) - docker(deps): Bump astral-sh/uv from 0.9.29-python3.12-trixie-slim to 0.10.0-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#12019](https://github.com/paperless-ngx/paperless-ngx/pull/12019)) - 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)) - docker-compose(deps): Bump nginx from 1.29-alpine to 1.29.5-alpine in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#12018](https://github.com/paperless-ngx/paperless-ngx/pull/12018)) - 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)) - docker(deps): Bump astral-sh/uv from 0.9.26-python3.12-trixie-slim to 0.9.28-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#11980](https://github.com/paperless-ngx/paperless-ngx/pull/11980)) - docker-compose(deps): Bump gotenberg/gotenberg from 8.25 to 8.26 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#11979](https://github.com/paperless-ngx/paperless-ngx/pull/11979)) - 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)) - 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(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)) - Chore: Bulk backend updates [@stumpylog](https://github.com/stumpylog) ([#11543](https://github.com/paperless-ngx/paperless-ngx/pull/11543)) - Chore: Manually upgrades allauth to resolve a security issue with it [@stumpylog](https://github.com/stumpylog) ([#11853](https://github.com/paperless-ngx/paperless-ngx/pull/11853)) - 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)) - docker(deps): Bump astral-sh/uv from 0.9.15-python3.12-trixie-slim to 0.9.24-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#11762](https://github.com/paperless-ngx/paperless-ngx/pull/11762)) - 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)) - 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)) - Chore: upgrade to Angular v21 [@shamoon](https://github.com/shamoon) ([#11746](https://github.com/paperless-ngx/paperless-ngx/pull/11746)) - 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))

### All App Changes

360 changes
- [Beta] Paperless-ngx v3.0.0 Beta [@shamoon](https://github.com/shamoon) ([#12713](https://github.com/paperless-ngx/paperless-ngx/pull/12713)) - Chore (beta): mark first batch of thumbnails as priority for LCP warning [@shamoon](https://github.com/shamoon) ([#13196](https://github.com/paperless-ngx/paperless-ngx/pull/13196)) - Fix (beta): prevent pdfjs offsetParent warning [@shamoon](https://github.com/shamoon) ([#13197](https://github.com/paperless-ngx/paperless-ngx/pull/13197)) - Fix (beta): dont include hidden buttons in virtual scroll container height [@shamoon](https://github.com/shamoon) ([#13194](https://github.com/paperless-ngx/paperless-ngx/pull/13194)) - Tweakhancement (beta): allow some bulk operations with all [@shamoon](https://github.com/shamoon) ([#13193](https://github.com/paperless-ngx/paperless-ngx/pull/13193)) - Fix (beta): fix custom field bulk editing for 'all' [@shamoon](https://github.com/shamoon) ([#13191](https://github.com/paperless-ngx/paperless-ngx/pull/13191)) - Security (beta): enforce current permissions in autocomplete [@shamoon](https://github.com/shamoon) ([#13188](https://github.com/paperless-ngx/paperless-ngx/pull/13188)) - Security (beta): bound email linkification [@shamoon](https://github.com/shamoon) ([#13187](https://github.com/paperless-ngx/paperless-ngx/pull/13187)) - Security (beta): two small permission check fixes [@shamoon](https://github.com/shamoon) ([#13186](https://github.com/paperless-ngx/paperless-ngx/pull/13186)) - Fix (beta): short-circuit ObjectOwnedOrGrantedPermissionsFilter for superusers [@stumpylog](https://github.com/stumpylog) ([#13183](https://github.com/paperless-ngx/paperless-ngx/pull/13183)) - Fix (beta): compute num\_notes via a subquery instead of Count()+distinct [@stumpylog](https://github.com/stumpylog) ([#13182](https://github.com/paperless-ngx/paperless-ngx/pull/13182)) - Change: update root modified timestamp on version changes [@shamoon](https://github.com/shamoon) ([#13170](https://github.com/paperless-ngx/paperless-ngx/pull/13170)) - Fix: prevent tag assignment from reverting other pending workflow assignments [@stumpylog](https://github.com/stumpylog) ([#13178](https://github.com/paperless-ngx/paperless-ngx/pull/13178)) - Performance: add DB indexes for common query/sort patterns [@stumpylog](https://github.com/stumpylog) ([#13167](https://github.com/paperless-ngx/paperless-ngx/pull/13167)) - Performance: use NgOptimizedImage for thumbnail lazy loading [@shamoon](https://github.com/shamoon) ([#13169](https://github.com/paperless-ngx/paperless-ngx/pull/13169)) - Fix(beta): cache per-request effective-document resolution for thumb/metadata/preview [@stumpylog](https://github.com/stumpylog) ([#13166](https://github.com/paperless-ngx/paperless-ngx/pull/13166)) - Fix: fallback from archive version for share links [@shamoon](https://github.com/shamoon) ([#13163](https://github.com/paperless-ngx/paperless-ngx/pull/13163)) - Fix: better handle saved view errors in dashboard widgets [@shamoon](https://github.com/shamoon) ([#13164](https://github.com/paperless-ngx/paperless-ngx/pull/13164)) - Fix (beta): convert chat component to signal-backed Angular [@shamoon](https://github.com/shamoon) ([#13152](https://github.com/paperless-ngx/paperless-ngx/pull/13152)) - Fix: HTTP 500 filtering documents by tags + custom field query on MariaDB [@stumpylog](https://github.com/stumpylog) ([#13143](https://github.com/paperless-ngx/paperless-ngx/pull/13143)) - Performance: Tantivy indexing optimization [@Merinorus](https://github.com/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](https://github.com/chouquette) ([#12839](https://github.com/paperless-ngx/paperless-ngx/pull/12839)) - Fix (beta): fix sidebar document close button [@shamoon](https://github.com/shamoon) ([#13136](https://github.com/paperless-ngx/paperless-ngx/pull/13136)) - Fix: include wasm assets in pdf.js-based viewer [@shamoon](https://github.com/shamoon) ([#13122](https://github.com/paperless-ngx/paperless-ngx/pull/13122)) - Fix: fix ui labels from md5 to sha256 [@shamoon](https://github.com/shamoon) ([#13119](https://github.com/paperless-ngx/paperless-ngx/pull/13119)) - Chorehancement: update to Angular v22, 'zoneless' / 'reactive' [@shamoon](https://github.com/shamoon) ([#13114](https://github.com/paperless-ngx/paperless-ngx/pull/13114)) - Fixhancement: dont assign empty title in workflow with broken template [@shamoon](https://github.com/shamoon) ([#13112](https://github.com/paperless-ngx/paperless-ngx/pull/13112)) - Fix: clamp mailrule max age before migration [@shamoon](https://github.com/shamoon) ([#13093](https://github.com/paperless-ngx/paperless-ngx/pull/13093)) - Fix: use latest document version for bulk download [@shamoon](https://github.com/shamoon) ([#13103](https://github.com/paperless-ngx/paperless-ngx/pull/13103)) - Fix (beta): handle relative date with comma query [@shamoon](https://github.com/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](https://github.com/NgoQuocViet2001) ([#13052](https://github.com/paperless-ngx/paperless-ngx/pull/13052)) - Fix (beta): preserve Unicode in localization prompt [@shamoon](https://github.com/shamoon) ([#13055](https://github.com/paperless-ngx/paperless-ngx/pull/13055)) - Fix: change tantivy token limit to title field max length [@shamoon](https://github.com/shamoon) ([#13046](https://github.com/paperless-ngx/paperless-ngx/pull/13046)) - Fix: include last-modified in doc etag [@shamoon](https://github.com/shamoon) ([#13044](https://github.com/paperless-ngx/paperless-ngx/pull/13044)) - Fix (beta): Stream chunks during compaction to prevent oom on smaller installs [@stumpylog](https://github.com/stumpylog) ([#13014](https://github.com/paperless-ngx/paperless-ngx/pull/13014)) - Fixhancement (beta): truncate embedding queries for small chunk size [@shamoon](https://github.com/shamoon) ([#13028](https://github.com/paperless-ngx/paperless-ngx/pull/13028)) - Enhancement (beta): support LLM timeout config [@shamoon](https://github.com/shamoon) ([#13002](https://github.com/paperless-ngx/paperless-ngx/pull/13002)) - Fix(beta): Workaround a Tantivy panic in more like this searching [@stumpylog](https://github.com/stumpylog) ([#13026](https://github.com/paperless-ngx/paperless-ngx/pull/13026)) - Chore (beta): set tool\_required to openai-like llm calls [@shamoon](https://github.com/shamoon) ([#13025](https://github.com/paperless-ngx/paperless-ngx/pull/13025)) - Enhancement: ignore diacritics, support multiple substring matching for UI filtering [@shamoon](https://github.com/shamoon) ([#13021](https://github.com/paperless-ngx/paperless-ngx/pull/13021)) - Fix (beta): Catch consumer files created during watcher re-creations [@stumpylog](https://github.com/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](https://github.com/stumpylog) ([#13010](https://github.com/paperless-ngx/paperless-ngx/pull/13010)) - Fix (beta): retry celery ping and report warning on no response [@shamoon](https://github.com/shamoon) ([#13012](https://github.com/paperless-ngx/paperless-ngx/pull/13012)) - Enhancement(beta): replace LanceDB vector store with sqlite-vec [@stumpylog](https://github.com/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](https://github.com/mzyy94) ([#12999](https://github.com/paperless-ngx/paperless-ngx/pull/12999)) - Fix: Apply unicode normalization to all paths and path components [@stumpylog](https://github.com/stumpylog) ([#12993](https://github.com/paperless-ngx/paperless-ngx/pull/12993)) - Fix: Handle the UTF 16 and BOM text files better [@stumpylog](https://github.com/stumpylog) ([#12994](https://github.com/paperless-ngx/paperless-ngx/pull/12994)) - Fix (beta): avoid DRF update calling `save` on all fields [@shamoon](https://github.com/shamoon) ([#12992](https://github.com/paperless-ngx/paperless-ngx/pull/12992)) - Fix: release pooled DB connection during AI LLM/embedding calls [@stumpylog](https://github.com/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](https://github.com/stumpylog) ([#12977](https://github.com/paperless-ngx/paperless-ngx/pull/12977)) - Fix: wrap long titles in delete confirm dialog [@shamoon](https://github.com/shamoon) ([#12973](https://github.com/paperless-ngx/paperless-ngx/pull/12973)) - Fix (beta): fix re-ordering in merge dialog [@shamoon](https://github.com/shamoon) ([#12967](https://github.com/paperless-ngx/paperless-ngx/pull/12967)) - Fix (beta): move task filtering to backend fully [@shamoon](https://github.com/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](https://github.com/shamoon) ([#12948](https://github.com/paperless-ngx/paperless-ngx/pull/12948)) - Enhancement (beta): Switch the AI vector store to LanceDB [@stumpylog](https://github.com/stumpylog) ([#12944](https://github.com/paperless-ngx/paperless-ngx/pull/12944)) - Fixhancement (beta): tasks dismiss all [@shamoon](https://github.com/shamoon) ([#12949](https://github.com/paperless-ngx/paperless-ngx/pull/12949)) - Fix (beta): correct chat message bg color [@shamoon](https://github.com/shamoon) ([#12955](https://github.com/paperless-ngx/paperless-ngx/pull/12955)) - Fix (beta): respect disable state for suggest endpoint, require change perms [@shamoon](https://github.com/shamoon) ([#12942](https://github.com/paperless-ngx/paperless-ngx/pull/12942)) - Fix: Ensure checksum comparison is using SHA256 [@stumpylog](https://github.com/stumpylog) ([#12939](https://github.com/paperless-ngx/paperless-ngx/pull/12939)) - Fix: Restrict the AI backend at settings configure time [@stumpylog](https://github.com/stumpylog) ([#12903](https://github.com/paperless-ngx/paperless-ngx/pull/12903)) - Enhancement (beta): add direct LLM language setting [@shamoon](https://github.com/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](https://github.com/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](https://github.com/stumpylog) ([#12899](https://github.com/paperless-ngx/paperless-ngx/pull/12899)) - Fix: Minor fixes for the AI indexing [@stumpylog](https://github.com/stumpylog) ([#12893](https://github.com/paperless-ngx/paperless-ngx/pull/12893)) - Fix (beta): dont use tool calling with ollama [@shamoon](https://github.com/shamoon) ([#12896](https://github.com/paperless-ngx/paperless-ngx/pull/12896)) - Enhancement: try to respect language for AI suggestions [@shamoon](https://github.com/shamoon) ([#12894](https://github.com/paperless-ngx/paperless-ngx/pull/12894)) - Enhancement: AI LLM chunk size and context window config [@shamoon](https://github.com/shamoon) ([#12891](https://github.com/paperless-ngx/paperless-ngx/pull/12891)) - Fix: Improvements for security around the AI [@stumpylog](https://github.com/stumpylog) ([#12895](https://github.com/paperless-ngx/paperless-ngx/pull/12895)) - Fix: correctly show timestamp tooltip on history item [@nathanaelhoun](https://github.com/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](https://github.com/stumpylog) ([#12868](https://github.com/paperless-ngx/paperless-ngx/pull/12868)) - Fix: Don't store autocomplete\_word, only index it [@stumpylog](https://github.com/stumpylog) ([#12867](https://github.com/paperless-ngx/paperless-ngx/pull/12867)) - Fix: Preserve Whoosh date range swapping in Tantviy [@stumpylog](https://github.com/stumpylog) ([#12866](https://github.com/paperless-ngx/paperless-ngx/pull/12866)) - Fix: Always release search index writer [@stumpylog](https://github.com/stumpylog) ([#12865](https://github.com/paperless-ngx/paperless-ngx/pull/12865)) - Fix: Handle CJK title, content and metadata searching [@stumpylog](https://github.com/stumpylog) ([#12862](https://github.com/paperless-ngx/paperless-ngx/pull/12862)) - Fix: Restrict date query rewrites to date or datetime fields only [@stumpylog](https://github.com/stumpylog) ([#12864](https://github.com/paperless-ngx/paperless-ngx/pull/12864)) - Fix: Missing call to tanvity wait\_merging\_threads [@stumpylog](https://github.com/stumpylog) ([#12863](https://github.com/paperless-ngx/paperless-ngx/pull/12863)) - Fix: Handle tanvity index lock contention [@stumpylog](https://github.com/stumpylog) ([#12856](https://github.com/paperless-ngx/paperless-ngx/pull/12856)) - Fix (beta): better catch chat errors [@shamoon](https://github.com/shamoon) ([#12854](https://github.com/paperless-ngx/paperless-ngx/pull/12854)) - Performance (beta): dont re-build vector index with each chat [@shamoon](https://github.com/shamoon) ([#12847](https://github.com/paperless-ngx/paperless-ngx/pull/12847)) - Security (beta): fixes for v3 beta [@shamoon](https://github.com/shamoon) ([#12838](https://github.com/paperless-ngx/paperless-ngx/pull/12838)) - Fix (beta): normalize long punctuation chunks to improve embedding [@shamoon](https://github.com/shamoon) ([#12848](https://github.com/paperless-ngx/paperless-ngx/pull/12848)) - Fix: use chord.on\_error before apply\_async [@shamoon](https://github.com/shamoon) ([#12842](https://github.com/paperless-ngx/paperless-ngx/pull/12842)) - Fix: Don't use smaller integer fields for some workflow fields [@stumpylog](https://github.com/stumpylog) ([#12834](https://github.com/paperless-ngx/paperless-ngx/pull/12834)) - Fix: Password removal source file location [@stumpylog](https://github.com/stumpylog) ([#12830](https://github.com/paperless-ngx/paperless-ngx/pull/12830)) - Fix (beta): use correct html button type for custom field buttons [@shamoon](https://github.com/shamoon) ([#12819](https://github.com/paperless-ngx/paperless-ngx/pull/12819)) - Fix: Defer password removal workflow action until the file is in place [@stumpylog](https://github.com/stumpylog) ([#12814](https://github.com/paperless-ngx/paperless-ngx/pull/12814)) - Fix: Allow setting allauth rate limit configuration settings [@stumpylog](https://github.com/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](https://github.com/stumpylog) ([#12795](https://github.com/paperless-ngx/paperless-ngx/pull/12795)) - Fix: Sanitize dash or plus from the text search path [@stumpylog](https://github.com/stumpylog) ([#12789](https://github.com/paperless-ngx/paperless-ngx/pull/12789)) - Fix: improve new tasks ui layout across screen sizes [@shamoon](https://github.com/shamoon) ([#12784](https://github.com/paperless-ngx/paperless-ngx/pull/12784)) - Fix: Update parser contract to require empty strings, not None [@shamoon](https://github.com/shamoon) ([#12775](https://github.com/paperless-ngx/paperless-ngx/pull/12775)) - Chore: Further dependency security updates [@stumpylog](https://github.com/stumpylog) ([#12780](https://github.com/paperless-ngx/paperless-ngx/pull/12780)) - Fix: Use a persistent, writeable location for hugging face models [@stumpylog](https://github.com/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](https://github.com/shamoon) ([#12753](https://github.com/paperless-ngx/paperless-ngx/pull/12753)) - Fix: create LLM\_INDEX\_DIR before writing meta.json on first run [@pReya](https://github.com/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](https://github.com/stumpylog) ([#12757](https://github.com/paperless-ngx/paperless-ngx/pull/12757)) - Fix: use response synthesizer for RAG doc chat [@shamoon](https://github.com/shamoon) ([#12751](https://github.com/paperless-ngx/paperless-ngx/pull/12751)) - Fix: only update modified field in notes actions [@shamoon](https://github.com/shamoon) ([#12750](https://github.com/paperless-ngx/paperless-ngx/pull/12750)) - Enhancement: version-aware thumbnail etag [@shamoon](https://github.com/shamoon) ([#12754](https://github.com/paperless-ngx/paperless-ngx/pull/12754)) - Documentation: Update v3 migration docs [@shamoon](https://github.com/shamoon) ([#12752](https://github.com/paperless-ngx/paperless-ngx/pull/12752)) - Fix: Handle dash or plus operators in search queries [@stumpylog](https://github.com/stumpylog) ([#12734](https://github.com/paperless-ngx/paperless-ngx/pull/12734)) - Fixes trash preview when a document has deleted versions [@stumpylog](https://github.com/stumpylog) ([#12742](https://github.com/paperless-ngx/paperless-ngx/pull/12742)) - Fix: exclude versions from stats count [@shamoon](https://github.com/shamoon) ([#12738](https://github.com/paperless-ngx/paperless-ngx/pull/12738)) - Fixes celery chords by using Redis as our result backend [@stumpylog](https://github.com/stumpylog) ([#12741](https://github.com/paperless-ngx/paperless-ngx/pull/12741)) - Fix: bump version.py to 3.0.0 also [@shamoon](https://github.com/shamoon) ([#12736](https://github.com/paperless-ngx/paperless-ngx/pull/12736)) - Chore: Targeted dependency upgrades [@stumpylog](https://github.com/stumpylog) ([#12731](https://github.com/paperless-ngx/paperless-ngx/pull/12731)) - Fixes Whoosh year only queries to be rewritten to Tantivy date syntax [@stumpylog](https://github.com/stumpylog) ([#12725](https://github.com/paperless-ngx/paperless-ngx/pull/12725)) - Fix: pass allow parallel tool calls in LLM client [@shamoon](https://github.com/shamoon) ([#12718](https://github.com/paperless-ngx/paperless-ngx/pull/12718)) - Fix: Handle passwords for removal action as lists [@stumpylog](https://github.com/stumpylog) ([#12716](https://github.com/paperless-ngx/paperless-ngx/pull/12716)) - Bumps all our versions to 3.0.0 [@stumpylog](https://github.com/stumpylog) ([#12715](https://github.com/paperless-ngx/paperless-ngx/pull/12715)) - Feature: Further reduce document importer memory usage [@stumpylog](https://github.com/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](https://github.com/shamoon) ([#12706](https://github.com/paperless-ngx/paperless-ngx/pull/12706)) - Fix: avoid unnecessary close\_old\_connections in Celery task dispatch [@stumpylog](https://github.com/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](https://github.com/shamoon) ([#12673](https://github.com/paperless-ngx/paperless-ngx/pull/12673)) - Tweakhancement: localize some more task result messages [@shamoon](https://github.com/shamoon) ([#12672](https://github.com/paperless-ngx/paperless-ngx/pull/12672)) - Enhancement: chat message document links [@shamoon](https://github.com/shamoon) ([#12670](https://github.com/paperless-ngx/paperless-ngx/pull/12670)) - Fix: apply tag changes directly to document in db [@shamoon](https://github.com/shamoon) ([#12664](https://github.com/paperless-ngx/paperless-ngx/pull/12664)) - Tweakhancement: make upload notification open an anchor link [@shamoon](https://github.com/shamoon) ([#12659](https://github.com/paperless-ngx/paperless-ngx/pull/12659)) - Tweakhancement: tweak tasks UI, make open doc an anchor [@shamoon](https://github.com/shamoon) ([#12658](https://github.com/paperless-ngx/paperless-ngx/pull/12658)) - Fix: Use FileResponse for file API responses [@stumpylog](https://github.com/stumpylog) ([#12638](https://github.com/paperless-ngx/paperless-ngx/pull/12638)) - Chore: Paginate the task listing [@stumpylog](https://github.com/stumpylog) ([#12633](https://github.com/paperless-ngx/paperless-ngx/pull/12633)) - Enhancement: show small task summary in system status [@shamoon](https://github.com/shamoon) ([#12634](https://github.com/paperless-ngx/paperless-ngx/pull/12634)) - Security: Don't allow the example secret key as a secret key [@stumpylog](https://github.com/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](https://github.com/shamoon) ([#12614](https://github.com/paperless-ngx/paperless-ngx/pull/12614)) - Feature: Allow monitoring access to tasks summary [@stumpylog](https://github.com/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](https://github.com/stumpylog) ([#12618](https://github.com/paperless-ngx/paperless-ngx/pull/12618)) - Tweak: remove stale index warning [@shamoon](https://github.com/shamoon) ([#12616](https://github.com/paperless-ngx/paperless-ngx/pull/12616)) - Fixhancement: Exact custom field monetary exact searching [@stumpylog](https://github.com/stumpylog) ([#12592](https://github.com/paperless-ngx/paperless-ngx/pull/12592)) - Performance: Resolves another N+1 query related to custom fields [@stumpylog](https://github.com/stumpylog) ([#12617](https://github.com/paperless-ngx/paperless-ngx/pull/12617)) - Enhancement: add highlighting to title + content searches [@shamoon](https://github.com/shamoon) ([#12593](https://github.com/paperless-ngx/paperless-ngx/pull/12593)) - Feature: Redesign the task system [@stumpylog](https://github.com/stumpylog) ([#12584](https://github.com/paperless-ngx/paperless-ngx/pull/12584)) - Fix: relative added date check visibility [@shamoon](https://github.com/shamoon) ([#12600](https://github.com/paperless-ngx/paperless-ngx/pull/12600)) - Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type [@ggouzi](https://github.com/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](https://github.com/stumpylog) ([#12580](https://github.com/paperless-ngx/paperless-ngx/pull/12580)) - Feature: Document fuzzy match improvements [@stumpylog](https://github.com/stumpylog) ([#12579](https://github.com/paperless-ngx/paperless-ngx/pull/12579)) - Fix: reject invalid requests to API notes endpoint [@ggouzi](https://github.com/ggouzi) ([#12582](https://github.com/paperless-ngx/paperless-ngx/pull/12582)) - [BREAKING] Remove the positional arguments from the pre/post consume scripts [@stumpylog](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/stumpylog) ([#12448](https://github.com/paperless-ngx/paperless-ngx/pull/12448)) - Fixhancement: include sharelinks + bundles in export/import [@shamoon](https://github.com/shamoon) ([#12479](https://github.com/paperless-ngx/paperless-ngx/pull/12479)) - Chore: Better typed status manager messages [@stumpylog](https://github.com/stumpylog) ([#12509](https://github.com/paperless-ngx/paperless-ngx/pull/12509)) - Enhancement: unify text search to use tantivy [@shamoon](https://github.com/shamoon) ([#12485](https://github.com/paperless-ngx/paperless-ngx/pull/12485)) - Feature: Consumer logging correlation [@stumpylog](https://github.com/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](https://github.com/stumpylog) ([#12504](https://github.com/paperless-ngx/paperless-ngx/pull/12504)) - Security enhancement: allow opt-in blocking internal mail hosts [@shamoon](https://github.com/shamoon) ([#12502](https://github.com/paperless-ngx/paperless-ngx/pull/12502)) - Feature: Replace Whoosh with tantivy search backend [@stumpylog](https://github.com/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](https://github.com/shamoon) ([#12355](https://github.com/paperless-ngx/paperless-ngx/pull/12355)) - Performance: deprecate and remove usage of `all` in API results [@shamoon](https://github.com/shamoon) ([#12309](https://github.com/paperless-ngx/paperless-ngx/pull/12309)) - Performance: support passing selection data with filtered document requests [@shamoon](https://github.com/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](https://github.com/shamoon) ([#12452](https://github.com/paperless-ngx/paperless-ngx/pull/12452)) - Feature: Transition all checksums to use SHA256 [@stumpylog](https://github.com/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](https://github.com/shamoon) ([#12404](https://github.com/paperless-ngx/paperless-ngx/pull/12404)) - Chore: logger, response and template sanitization cleanup [@shamoon](https://github.com/shamoon) ([#12439](https://github.com/paperless-ngx/paperless-ngx/pull/12439)) - Fix: Respect workflow change\_groups during consumption [@stumpylog](https://github.com/stumpylog) ([#12431](https://github.com/paperless-ngx/paperless-ngx/pull/12431)) - Security: prevent prototype pollution in frontend settings and list view [@shamoon](https://github.com/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](https://github.com/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](https://github.com/shamoon) ([#12358](https://github.com/paperless-ngx/paperless-ngx/pull/12358)) - Feature: Add progress information to the classifier training for a better ux [@stumpylog](https://github.com/stumpylog) ([#12331](https://github.com/paperless-ngx/paperless-ngx/pull/12331)) - Chore: bump Angular dependencies to 21.2.x [@shamoon](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/shamoon) ([#12308](https://github.com/paperless-ngx/paperless-ngx/pull/12308)) - Chore: separate actions from bulk edit endpoint [@shamoon](https://github.com/shamoon) ([#12286](https://github.com/paperless-ngx/paperless-ngx/pull/12286)) - [BREAKING] Chore: drop support for api versions \< 9 [@shamoon](https://github.com/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](https://github.com/stumpylog) ([#12276](https://github.com/paperless-ngx/paperless-ngx/pull/12276)) - Feature: Migrate import/export to rich progress [@stumpylog](https://github.com/stumpylog) ([#12260](https://github.com/paperless-ngx/paperless-ngx/pull/12260)) - Enhancement: Show more document details in merge dialog [@svenstaro](https://github.com/svenstaro) ([#12271](https://github.com/paperless-ngx/paperless-ngx/pull/12271)) - Performance: Further export memory improvements [@stumpylog](https://github.com/stumpylog) ([#12273](https://github.com/paperless-ngx/paperless-ngx/pull/12273)) - Chore: pytest style paperless tests [@stumpylog](https://github.com/stumpylog) ([#12254](https://github.com/paperless-ngx/paperless-ngx/pull/12254)) - Chore: update ESLint to v10 [@shamoon](https://github.com/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](https://github.com/stumpylog) ([#12234](https://github.com/paperless-ngx/paperless-ngx/pull/12234)) - Performance: Improve exporter memory efficiency [@stumpylog](https://github.com/stumpylog) ([#12236](https://github.com/paperless-ngx/paperless-ngx/pull/12236)) - Enhancement: saved view sharing [@shamoon](https://github.com/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](https://github.com/cryptomilk) ([#12239](https://github.com/paperless-ngx/paperless-ngx/pull/12239)) - Enhancement: “live” document updates [@shamoon](https://github.com/shamoon) ([#12141](https://github.com/paperless-ngx/paperless-ngx/pull/12141)) - Enhancement: Improve the retagger output using rich [@stumpylog](https://github.com/stumpylog) ([#12194](https://github.com/paperless-ngx/paperless-ngx/pull/12194)) - Enhancement: Transition sanity check to rich and improve output [@stumpylog](https://github.com/stumpylog) ([#12182](https://github.com/paperless-ngx/paperless-ngx/pull/12182)) - Enhancement: Switch all indexing to use rich [@stumpylog](https://github.com/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](https://github.com/shamoon) ([#12196](https://github.com/paperless-ngx/paperless-ngx/pull/12196)) - [BREAKING] Chore: Refactor advanced database settings to allow more user configuration [@stumpylog](https://github.com/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](https://github.com/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)) - Enhancement: Formatted filename for single document downloads [@JanKleine](https://github.com/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](https://github.com/shamoon) ([#12061](https://github.com/paperless-ngx/paperless-ngx/pull/12061)) - [BREAKING] Remove API v1 compatibility [@stumpylog](https://github.com/stumpylog) ([#12166](https://github.com/paperless-ngx/paperless-ngx/pull/12166)) - Enhancement: prevent duplicate mail processing across rules [@shamoon](https://github.com/shamoon) ([#12159](https://github.com/paperless-ngx/paperless-ngx/pull/12159)) - Feature: move to trash action for workflows [@JanKleine](https://github.com/JanKleine) ([#11176](https://github.com/paperless-ngx/paperless-ngx/pull/11176)) - Tweakhancement: reset to page 1 on reset filters [@shamoon](https://github.com/shamoon) ([#12143](https://github.com/paperless-ngx/paperless-ngx/pull/12143)) - Fix: correct user dropdown button icon styling [@shamoon](https://github.com/shamoon) ([#12092](https://github.com/paperless-ngx/paperless-ngx/pull/12092)) - Enhancement: consolidate management lists into document attributes section [@shamoon](https://github.com/shamoon) ([#12045](https://github.com/paperless-ngx/paperless-ngx/pull/12045)) - Enhancement: option to stop processing further mail rules [@shamoon](https://github.com/shamoon) ([#12053](https://github.com/paperless-ngx/paperless-ngx/pull/12053)) - [BREAKING] Remove pybzar as a barcode reader [@stumpylog](https://github.com/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](https://github.com/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](https://github.com/shamoon) ([#12044](https://github.com/paperless-ngx/paperless-ngx/pull/12044)) - Enhancement: pngx pdf viewer [@shamoon](https://github.com/shamoon) ([#12043](https://github.com/paperless-ngx/paperless-ngx/pull/12043)) - Fix: Handle an OOM kill of celery workers in the task handler [@stumpylog](https://github.com/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](https://github.com/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](https://github.com/shamoon) ([#12015](https://github.com/paperless-ngx/paperless-ngx/pull/12015)) - Chore: Switches to use prek in place of pre-commit [@stumpylog](https://github.com/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](https://github.com/stumpylog) ([#11931](https://github.com/paperless-ngx/paperless-ngx/pull/11931)) - Chore: Fix further test flakiness [@stumpylog](https://github.com/stumpylog) ([#11987](https://github.com/paperless-ngx/paperless-ngx/pull/11987)) - Feature: password removal workflow action [@shamoon](https://github.com/shamoon) ([#11665](https://github.com/paperless-ngx/paperless-ngx/pull/11665)) - Fix: re-run ASN check after barcode detection [@shamoon](https://github.com/shamoon) ([#11681](https://github.com/paperless-ngx/paperless-ngx/pull/11681)) - Fix: prevent infinite loading crash in mail component [@shamoon](https://github.com/shamoon) ([#11978](https://github.com/paperless-ngx/paperless-ngx/pull/11978)) - Enhancement: per-type object page sizing [@shamoon](https://github.com/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](https://github.com/shamoon) ([#11973](https://github.com/paperless-ngx/paperless-ngx/pull/11973)) - Tweakhancement: tweak bulk delete text [@shamoon](https://github.com/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](https://github.com/stumpylog) ([#11543](https://github.com/paperless-ngx/paperless-ngx/pull/11543)) - Tweak: increase minimum screen width before inserting padding [@JanKleine](https://github.com/JanKleine) ([#11926](https://github.com/paperless-ngx/paperless-ngx/pull/11926)) - Enhancement: Add setting for default PDF Editor mode [@JanKleine](https://github.com/JanKleine) ([#11927](https://github.com/paperless-ngx/paperless-ngx/pull/11927)) - Fixhancement: auto-queue llm index if needed [@shamoon](https://github.com/shamoon) ([#11891](https://github.com/paperless-ngx/paperless-ngx/pull/11891)) - Feature: sharelink bundles [@shamoon](https://github.com/shamoon) ([#11682](https://github.com/paperless-ngx/paperless-ngx/pull/11682)) - Enhancement: user control of doc details fields [@shamoon](https://github.com/shamoon) ([#11906](https://github.com/paperless-ngx/paperless-ngx/pull/11906)) - Enhancement: improve relative dates in date filter [@JanKleine](https://github.com/JanKleine) ([#11899](https://github.com/paperless-ngx/paperless-ngx/pull/11899)) - Performance: faster statistics panel on dashboard [@Merinorus](https://github.com/Merinorus) ([#11760](https://github.com/paperless-ngx/paperless-ngx/pull/11760)) - Enhancement: allow duplicates with warnings, UI for discovery [@shamoon](https://github.com/shamoon) ([#11815](https://github.com/paperless-ngx/paperless-ngx/pull/11815)) - Enhancement: configurable SSO groups claim [@Gabgobie](https://github.com/Gabgobie) ([#11841](https://github.com/paperless-ngx/paperless-ngx/pull/11841)) - Enhancement: support select all for management lists [@shamoon](https://github.com/shamoon) ([#11889](https://github.com/paperless-ngx/paperless-ngx/pull/11889)) - Tweakhancement: display document id, with copy [@shamoon](https://github.com/shamoon) ([#11896](https://github.com/paperless-ngx/paperless-ngx/pull/11896)) - Enhancement: Add support for app oidc [@paulgessinger](https://github.com/paulgessinger) ([#11756](https://github.com/paperless-ngx/paperless-ngx/pull/11756)) - Enhancement: Add 'any of' workflow trigger filters [@shamoon](https://github.com/shamoon) ([#11683](https://github.com/paperless-ngx/paperless-ngx/pull/11683)) - [BREAKING] Remove support for document and thumbnail encryption [@stumpylog](https://github.com/stumpylog) ([#11850](https://github.com/paperless-ngx/paperless-ngx/pull/11850)) - Fix: ensure css color-scheme for dark mode [@shamoon](https://github.com/shamoon) ([#11855](https://github.com/paperless-ngx/paperless-ngx/pull/11855)) - Enhancement: support doc\_id placeholder in workflow templates [@shamoon](https://github.com/shamoon) ([#11847](https://github.com/paperless-ngx/paperless-ngx/pull/11847)) - [BREAKING] Feature: Simplify and improve the consumer [@stumpylog](https://github.com/stumpylog) ([#11753](https://github.com/paperless-ngx/paperless-ngx/pull/11753)) - Fix: fix tag list horizontal scroll, again [@shamoon](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/shamoon) ([#10319](https://github.com/paperless-ngx/paperless-ngx/pull/10319)) - Performance: improve treenode inefficiencies [@shamoon](https://github.com/shamoon) ([#11606](https://github.com/paperless-ngx/paperless-ngx/pull/11606)) - Chore: upgrade to node v24 [@shamoon](https://github.com/shamoon) ([#11747](https://github.com/paperless-ngx/paperless-ngx/pull/11747)) - Chore: upgrade to Angular v21 [@shamoon](https://github.com/shamoon) ([#11746](https://github.com/paperless-ngx/paperless-ngx/pull/11746)) - Feature: Remote OCR (Azure AI) [@shamoon](https://github.com/shamoon) ([#10320](https://github.com/paperless-ngx/paperless-ngx/pull/10320)) - Feature: password removal action [@shamoon](https://github.com/shamoon) ([#11656](https://github.com/paperless-ngx/paperless-ngx/pull/11656)) - Fix: fix recurring workflow to respect latest run time [@shamoon](https://github.com/shamoon) ([#11735](https://github.com/paperless-ngx/paperless-ngx/pull/11735)) - Fixhancement: add error handling and retry when opening index [@shamoon](https://github.com/shamoon) ([#11731](https://github.com/paperless-ngx/paperless-ngx/pull/11731)) - Tweakhancement: use anchor element for management list quick filter buttons [@shamoon](https://github.com/shamoon) ([#11692](https://github.com/paperless-ngx/paperless-ngx/pull/11692)) - Fix: validate cf integer values within PostgreSQL range [@shamoon](https://github.com/shamoon) ([#11666](https://github.com/paperless-ngx/paperless-ngx/pull/11666)) - Fix: support ordering by storage path name [@shamoon](https://github.com/shamoon) ([#11661](https://github.com/paperless-ngx/paperless-ngx/pull/11661)) - Fix: propagate metadata override created value [@shamoon](https://github.com/shamoon) ([#11659](https://github.com/paperless-ngx/paperless-ngx/pull/11659)) - Fix: prevent ASN collisions for merge operations [@shamoon](https://github.com/shamoon) ([#11634](https://github.com/paperless-ngx/paperless-ngx/pull/11634))

## paperless-ngx 2.20.15

### Security

- Resolve GHSA-96jx-fj7m-qh6x

### Bug Fixes

- Fix: use only allauth login/logout endpoints @shamoon (#12639)
- Fix: correctly scope mail account enumeration @shamoon (#12636)
- Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi (#12597)
- Fix: reject invalid requests to API notes endpoint @ggouzi (#12582)

### All App Changes

4 changes
- Fix: use only allauth login/logout endpoints [@shamoon](https://github.com/shamoon) ([#12639](https://github.com/paperless-ngx/paperless-ngx/pull/12639)) - Fix: correctly scope mail account enumeration [@shamoon](https://github.com/shamoon) ([#12636](https://github.com/paperless-ngx/paperless-ngx/pull/12636)) - Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type [@ggouzi](https://github.com/ggouzi) ([#12597](https://github.com/paperless-ngx/paperless-ngx/pull/12597)) - Fix: reject invalid requests to API notes endpoint [@ggouzi](https://github.com/ggouzi) ([#12582](https://github.com/paperless-ngx/paperless-ngx/pull/12582))

## paperless-ngx 2.20.14

### Bug Fixes

- Fix: do not submit permissions for non-owners @shamoon (#12571)
- Fix: prevent duplicate parent tag IDs @shamoon (#12522)
- Fix: dont defer tag change application in workflows @shamoon (#12478)
- Fix: limit share link viewset actions @shamoon (#12461)
- Fix: add fallback ordering for documents by id after created @shamoon (#12440)
- Fixhancement: default mail-created correspondent matching to exact @shamoon (#12414)
- Fix: validate date CF value in serializer @shamoon (#12410)

### All App Changes

7 changes
- Fix: do not submit permissions for non-owners [@shamoon](https://github.com/shamoon) ([#12571](https://github.com/paperless-ngx/paperless-ngx/pull/12571)) - Fix: prevent duplicate parent tag IDs [@shamoon](https://github.com/shamoon) ([#12522](https://github.com/paperless-ngx/paperless-ngx/pull/12522)) - Fix: dont defer tag change application in workflows [@shamoon](https://github.com/shamoon) ([#12478](https://github.com/paperless-ngx/paperless-ngx/pull/12478)) - Fix: limit share link viewset actions [@shamoon](https://github.com/shamoon) ([#12461](https://github.com/paperless-ngx/paperless-ngx/pull/12461)) - Fix: add fallback ordering for documents by id after created [@shamoon](https://github.com/shamoon) ([#12440](https://github.com/paperless-ngx/paperless-ngx/pull/12440)) - Fixhancement: default mail-created correspondent matching to exact [@shamoon](https://github.com/shamoon) ([#12414](https://github.com/paperless-ngx/paperless-ngx/pull/12414)) - Fix: validate date CF value in serializer [@shamoon](https://github.com/shamoon) ([#12410](https://github.com/paperless-ngx/paperless-ngx/pull/12410))

## paperless-ngx 2.20.13

### Bug Fixes

- Fix: suggest corrections only if visible results
- Fix: require view permission for more-like search
- Fix: validate document link targets
- Fix: enforce permissions when attaching accounts to mail rules

## paperless-ngx 2.20.12

### Security

- Resolve GHSA-96jx-fj7m-qh6x

### Bug Fixes

- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename @stumpylog (#12390)
- Fix: don't try to usermod/groupmod when non-root + update docs (#12365) @stumpylog (#12391)
- Fix: avoid moving files if already moved @shamoon (#12389)
- Fix: remove pagination from document notes api spec @shamoon (#12388)
- Fix: fix file button hover color in dark mode @shamoon (#12367)
- Fixhancement: only offer basic auth for appropriate requests @shamoon (#12362)

### All App Changes

5 changes
- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename [@stumpylog](https://github.com/stumpylog) ([#12390](https://github.com/paperless-ngx/paperless-ngx/pull/12390)) - Fix: avoid moving files if already moved [@shamoon](https://github.com/shamoon) ([#12389](https://github.com/paperless-ngx/paperless-ngx/pull/12389)) - Fix: remove pagination from document notes api spec [@shamoon](https://github.com/shamoon) ([#12388](https://github.com/paperless-ngx/paperless-ngx/pull/12388)) - Fix: fix file button hover color in dark mode [@shamoon](https://github.com/shamoon) ([#12367](https://github.com/paperless-ngx/paperless-ngx/pull/12367)) - Fixhancement: only offer basic auth for appropriate requests [@shamoon](https://github.com/shamoon) ([#12362](https://github.com/paperless-ngx/paperless-ngx/pull/12362))

## paperless-ngx 2.20.11

### Security

- Resolve GHSA-59xh-5vwx-4c4q

### Bug Fixes

- Fix: correct dropdown list active color in dark mode @shamoon (#12328)
- Fixhancement: clear descendant selections in dropdown when parent toggled @shamoon (#12326)
- Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count @shamoon (#12302)
- Fix: prevent stale db filename during workflow actions @shamoon (#12289)

### All App Changes

4 changes
- Fix: correct dropdown list active color in dark mode [@shamoon](https://github.com/shamoon) ([#12328](https://github.com/paperless-ngx/paperless-ngx/pull/12328)) - Fixhancement: clear descendant selections in dropdown when parent toggled [@shamoon](https://github.com/shamoon) ([#12326](https://github.com/paperless-ngx/paperless-ngx/pull/12326)) - Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count [@shamoon](https://github.com/shamoon) ([#12302](https://github.com/paperless-ngx/paperless-ngx/pull/12302)) - Fix: prevent stale db filename during workflow actions [@shamoon](https://github.com/shamoon) ([#12289](https://github.com/paperless-ngx/paperless-ngx/pull/12289))

## paperless-ngx 2.20.10

### Bug Fixes

- Fix: support string coercion in filepath jinja templates @shamoon (#12244)
- Fix: apply ordering after annotating tag document count @shamoon (#12238)
- Fix: enforce path limit for db filename fields @shamoon (#12235)

### All App Changes

3 changes
- Fix: support string coercion in filepath jinja templates [@shamoon](https://github.com/shamoon) ([#12244](https://github.com/paperless-ngx/paperless-ngx/pull/12244)) - Fix: apply ordering after annotating tag document count [@shamoon](https://github.com/shamoon) ([#12238](https://github.com/paperless-ngx/paperless-ngx/pull/12238)) - Fix: enforce path limit for db filename fields [@shamoon](https://github.com/shamoon) ([#12235](https://github.com/paperless-ngx/paperless-ngx/pull/12235))

## paperless-ngx 2.20.9

### Security

- Resolve GHSA-386h-chg4-cfw9

### Bug Fixes

- Fixhancement: config option reset @shamoon (#12176)
- Fix: correct page count by separating display vs collection sizes for tags @shamoon (#12170)

### All App Changes

2 changes
- Fixhancement: config option reset [@shamoon](https://github.com/shamoon) ([#12176](https://github.com/paperless-ngx/paperless-ngx/pull/12176)) - Fix: correct page count by separating display vs collection sizes for tags [@shamoon](https://github.com/shamoon) ([#12170](https://github.com/paperless-ngx/paperless-ngx/pull/12170))

## paperless-ngx 2.20.8

### Security

- Resolve GHSA-7qqc-wrcw-2fj9

## paperless-ngx 2.20.7

### Security

- Resolve GHSA-x395-6h48-wr8v

### Bug Fixes

- Performance fix: use subqueries to improve object retrieval in large installs @shamoon (#11950)
- Fix: correct user dropdown button icon styling @shamoon (#12092)
- Fix: fix broken docker create_classifier command in 2.20.6 @shamoon (#11965)

### All App Changes

3 changes
- Performance fix: use subqueries to improve object retrieval in large installs [@shamoon](https://github.com/shamoon) ([#11950](https://github.com/paperless-ngx/paperless-ngx/pull/11950)) - Fix: correct user dropdown button icon styling [@shamoon](https://github.com/shamoon) ([#12092](https://github.com/paperless-ngx/paperless-ngx/issues/12092)) - Fix: fix broken docker create_classifier command in 2.20.6 [@shamoon](https://github.com/shamoon) ([#11965](https://github.com/paperless-ngx/paperless-ngx/issues/11965))

## paperless-ngx 2.20.6

### Security

- Resolve GHSA-jqwv-hx7q-fxh3 and GHSA-w47q-3m69-84v8

### Bug Fixes

- Fix: extract all ids for nested tags @shamoon (#11888)
- Fixhancement: change date calculation for 'this year' to include future documents @shamoon (#11884)
- Fix: Running management scripts under rootless could fail @stumpylog (#11870)
- Fix: use correct field id for overrides @shamoon (#11869)

### All App Changes

3 changes
- Fix: extract all ids for nested tags [@shamoon](https://github.com/shamoon) ([#11888](https://github.com/paperless-ngx/paperless-ngx/pull/11888)) - Fixhancement: change date calculation for 'this year' to include future documents [@shamoon](https://github.com/shamoon) ([#11884](https://github.com/paperless-ngx/paperless-ngx/pull/11884)) - Fix: use correct field id for overrides [@shamoon](https://github.com/shamoon) ([#11869](https://github.com/paperless-ngx/paperless-ngx/pull/11869))

## paperless-ngx 2.20.5

### Bug Fixes

- Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon (#11811)
- Fix: use explicit order field for workflow actions @shamoon @stumpylog (#11781)

### All App Changes

2 changes
- Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent [@shamoon](https://github.com/shamoon) ([#11811](https://github.com/paperless-ngx/paperless-ngx/pull/11811)) - Fix: use explicit order field for workflow actions [@shamoon](https://github.com/shamoon) [@stumpylog](https://github.com/stumpylog) ([#11781](https://github.com/paperless-ngx/paperless-ngx/pull/11781))

## paperless-ngx 2.20.4

### Security

- Resolve GHSA-28cf-xvcf-hw6m

### Bug Fixes

- Fix: propagate metadata override created value @shamoon (#11659)
- Fix: support ordering by storage path name @shamoon (#11661)
- Fix: validate cf integer values within PostgreSQL range @shamoon (#11666)
- Fixhancement: add error handling and retry when opening index @shamoon (#11731)
- Fix: fix recurring workflow to respect latest run time @shamoon (#11735)

### All App Changes

5 changes
- Fix: propagate metadata override created value [@shamoon](https://github.com/shamoon) ([#11659](https://github.com/paperless-ngx/paperless-ngx/pull/11659)) - Fix: support ordering by storage path name [@shamoon](https://github.com/shamoon) ([#11661](https://github.com/paperless-ngx/paperless-ngx/pull/11661)) - Fix: validate cf integer values within PostgreSQL range [@shamoon](https://github.com/shamoon) ([#11666](https://github.com/paperless-ngx/paperless-ngx/pull/11666)) - Fixhancement: add error handling and retry when opening index [@shamoon](https://github.com/shamoon) ([#11731](https://github.com/paperless-ngx/paperless-ngx/pull/11731)) - Fix: fix recurring workflow to respect latest run time [@shamoon](https://github.com/shamoon) ([#11735](https://github.com/paperless-ngx/paperless-ngx/pull/11735))

## paperless-ngx 2.20.3

### Security

- Resolve GHSA-7cq3-mhxq-w946

## paperless-ngx 2.20.2

### Security

- Resolve GHSA-6653-vcx4-69mc
- Resolve GHSA-24x5-wp64-9fcc

### Features / Enhancements

- Tweakhancement: dim inactive users in users-groups list @shamoon (#11537)

### Bug Fixes

- Fix: Expanded SVG validation whitelist and additional checks @stumpylog (#11590)
- Fix: normalize allowed SVG tag and attribute names, add version @shamoon (#11586)
- Fix: pass additional arguments to TagSerializer for permissions @shamoon (#11576)

### Maintenance

- Chore(deps): Bump actions/checkout from 5 to 6 in the actions group @dependabot[bot] (#11515)

### Dependencies

6 changes
- Chore: update Angular dependencies to 20.3.15 [@shamoon](https://github.com/shamoon) ([#11568](https://github.com/paperless-ngx/paperless-ngx/pull/11568)) - Chore(deps): Bump actions/checkout from 5 to 6 in the actions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#11515](https://github.com/paperless-ngx/paperless-ngx/pull/11515)) - Chore(deps-dev): Bump webpack from 5.102.1 to 5.103.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11513](https://github.com/paperless-ngx/paperless-ngx/pull/11513)) - Chore(deps-dev): Bump @playwright/test from 1.56.1 to 1.57.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11514](https://github.com/paperless-ngx/paperless-ngx/pull/11514)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11512](https://github.com/paperless-ngx/paperless-ngx/pull/11512)) - docker(deps): bump astral-sh/uv from 0.9.14-python3.12-trixie-slim to 0.9.15-python3.12-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#11533](https://github.com/paperless-ngx/paperless-ngx/pull/11533))

### All App Changes

12 changes
- Fix: Expanded SVG validation whitelist and additional checks [@stumpylog](https://github.com/stumpylog) ([#11590](https://github.com/paperless-ngx/paperless-ngx/pull/11590)) - Fixhancement: pass ordering to tag children [@shamoon](https://github.com/shamoon) ([#11556](https://github.com/paperless-ngx/paperless-ngx/pull/11556)) - Performance: avoid unnecessary filename operations on bulk custom field updates [@shamoon](https://github.com/shamoon) ([#11558](https://github.com/paperless-ngx/paperless-ngx/pull/11558)) - Fix: normalize allowed SVG tag and attribute names, add version [@shamoon](https://github.com/shamoon) ([#11586](https://github.com/paperless-ngx/paperless-ngx/pull/11586)) - Chore: refactor workflows code [@shamoon](https://github.com/shamoon) ([#11563](https://github.com/paperless-ngx/paperless-ngx/pull/11563)) - Fix: pass additional arguments to TagSerializer for permissions [@shamoon](https://github.com/shamoon) ([#11576](https://github.com/paperless-ngx/paperless-ngx/pull/11576)) - Chore: update Angular dependencies to 20.3.15 [@shamoon](https://github.com/shamoon) ([#11568](https://github.com/paperless-ngx/paperless-ngx/pull/11568)) - Chore(deps-dev): Bump webpack from 5.102.1 to 5.103.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11513](https://github.com/paperless-ngx/paperless-ngx/pull/11513)) - Chore(deps-dev): Bump @playwright/test from 1.56.1 to 1.57.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11514](https://github.com/paperless-ngx/paperless-ngx/pull/11514)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11512](https://github.com/paperless-ngx/paperless-ngx/pull/11512)) - Tweakhancement: dim inactive users in users-groups list [@shamoon](https://github.com/shamoon) ([#11537](https://github.com/paperless-ngx/paperless-ngx/pull/11537)) - Chore: add some output of social login errors [@shamoon](https://github.com/shamoon) ([#11527](https://github.com/paperless-ngx/paperless-ngx/pull/11527))

## paperless-ngx 2.20.1

### Bug Fixes

- Fix: set search term when using advanced search from global search @shamoon (#11503)
- Fix: change async handling of select custom field updates @shamoon (#11490)
- Fix: skip SSL for MariaDB ping in init script @danielrheinbay (#11491)
- Fix: handle allauth groups location breaking change @shamoon (#11471)

### Dependencies

- docker(deps): Bump astral-sh/uv from 0.9.10-python3.12-trixie-slim to 0.9.11-python3.12-trixie-slim @dependabot[bot] (#11450)
- Chore(deps): Bump @angular/common from 20.3.12 to 20.3.14 in /src-ui @dependabot[bot] (#11481)

### All App Changes

4 changes
- Fix: set search term when using advanced search from global search [@shamoon](https://github.com/shamoon) ([#11503](https://github.com/paperless-ngx/paperless-ngx/pull/11503)) - Fix: change async handling of select custom field updates [@shamoon](https://github.com/shamoon) ([#11490](https://github.com/paperless-ngx/paperless-ngx/pull/11490)) - Chore(deps): Bump @angular/common from 20.3.12 to 20.3.14 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11481](https://github.com/paperless-ngx/paperless-ngx/pull/11481)) - Fix: handle allauth groups location breaking change [@shamoon](https://github.com/shamoon) ([#11471](https://github.com/paperless-ngx/paperless-ngx/pull/11471))

## paperless-ngx 2.20.0

### Notable Changes

- Feature: Upgrade underlying Docker image to Trixie @stumpylog (#10562)

### Features / Enhancements

- Feature: Upgrade underlying Docker image to Trixie @stumpylog (#10562)
- Fixhancement: more log viewer improvements @shamoon (#11426)
- Performance: Replace duplicated static files with symlinks @stumpylog (#11418)
- Enhancement: add more relative dates, support modified @shamoon (#11411)
- Performance: make move files after select custom field change async @shamoon (#11391)
- Enhancement: Use a better check for the MariaDB server to be ready @stumpylog (#11396)
- Enhancement: speed-up docker container startup @flrgh (#11134)

### Bug Fixes

- Fix: prevent focus loss from change detection in cf query dropdown @shamoon (#11409)
- Fix: sort editing filterable dropdowns sooner @shamoon (#11404)
- Fix: support for custom field ordering w advanced search @shamoon (#11383)

### Maintenance

- Chore(deps): Bump the actions group with 7 updates @dependabot[bot] (#11259)

### Dependencies

16 changes
- Chore: Upgrades psycopg to 3.2.12 [@stumpylog](https://github.com/stumpylog) ([#11420](https://github.com/paperless-ngx/paperless-ngx/pull/11420)) - Chore(deps-dev): Bump glob from 10.4.1 to 10.5.0 in /src/paperless_mail/templates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11413](https://github.com/paperless-ngx/paperless-ngx/pull/11413)) - docker-compose(deps): bump gotenberg/gotenberg from 8.24 to 8.25 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#11393](https://github.com/paperless-ngx/paperless-ngx/pull/11393)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11260](https://github.com/paperless-ngx/paperless-ngx/pull/11260)) - Chore(deps-dev): Bump @playwright/test from 1.55.1 to 1.56.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11263](https://github.com/paperless-ngx/paperless-ngx/pull/11263)) - Chore(deps-dev): Bump webpack from 5.102.0 to 5.102.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11264](https://github.com/paperless-ngx/paperless-ngx/pull/11264)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11262](https://github.com/paperless-ngx/paperless-ngx/pull/11262)) - Chore(deps-dev): Bump jest-preset-angular from 15.0.2 to 15.0.3 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#11261](https://github.com/paperless-ngx/paperless-ngx/pull/11261)) - Chore(deps-dev): Bump @types/node from 24.6.1 to 24.9.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11265](https://github.com/paperless-ngx/paperless-ngx/pull/11265)) - Chore(deps): Bump the small-changes group across 1 directory with 11 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11337](https://github.com/paperless-ngx/paperless-ngx/pull/11337)) - Chore(deps): Bump django-auditlog from 3.2.1 to 3.3.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11021](https://github.com/paperless-ngx/paperless-ngx/pull/11021)) - Chore(deps): Bump the actions group with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11259](https://github.com/paperless-ngx/paperless-ngx/pull/11259)) - Chore(deps): Bump drf-spectacular-sidecar from 2025.9.1 to 2025.10.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11019](https://github.com/paperless-ngx/paperless-ngx/pull/11019)) - Chore(deps): Bump django-filter from 25.1 to 25.2 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11020](https://github.com/paperless-ngx/paperless-ngx/pull/11020)) - Chore(deps): Update django-allauth[mfa,socialaccount] requirement from ~=65.4.0 to ~=65.12.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11198](https://github.com/paperless-ngx/paperless-ngx/pull/11198)) - docker(deps): bump astral-sh/uv from 0.9.9-python3.12-bookworm-slim to 0.9.10-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#11394](https://github.com/paperless-ngx/paperless-ngx/pull/11394))

### All App Changes

19 changes
- Fixhancement: more log viewer improvements [@shamoon](https://github.com/shamoon) ([#11426](https://github.com/paperless-ngx/paperless-ngx/pull/11426)) - Chore: Upgrades psycopg to 3.2.12 [@stumpylog](https://github.com/stumpylog) ([#11420](https://github.com/paperless-ngx/paperless-ngx/pull/11420)) - Enhancement: add more relative dates, support modified [@shamoon](https://github.com/shamoon) ([#11411](https://github.com/paperless-ngx/paperless-ngx/pull/11411)) - Chore(deps-dev): Bump glob from 10.4.1 to 10.5.0 in /src/paperless_mail/templates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11413](https://github.com/paperless-ngx/paperless-ngx/pull/11413)) - Performance: make move files after select custom field change async [@shamoon](https://github.com/shamoon) ([#11391](https://github.com/paperless-ngx/paperless-ngx/pull/11391)) - Fix: prevent focus loss from change detection in cf query dropdown [@shamoon](https://github.com/shamoon) ([#11409](https://github.com/paperless-ngx/paperless-ngx/pull/11409)) - Fix: sort editing filterable dropdowns sooner [@shamoon](https://github.com/shamoon) ([#11404](https://github.com/paperless-ngx/paperless-ngx/pull/11404)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11260](https://github.com/paperless-ngx/paperless-ngx/pull/11260)) - Chore(deps-dev): Bump @playwright/test from 1.55.1 to 1.56.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11263](https://github.com/paperless-ngx/paperless-ngx/pull/11263)) - Chore(deps-dev): Bump webpack from 5.102.0 to 5.102.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11264](https://github.com/paperless-ngx/paperless-ngx/pull/11264)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11262](https://github.com/paperless-ngx/paperless-ngx/pull/11262)) - Chore(deps-dev): Bump jest-preset-angular from 15.0.2 to 15.0.3 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#11261](https://github.com/paperless-ngx/paperless-ngx/pull/11261)) - Chore(deps-dev): Bump @types/node from 24.6.1 to 24.9.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#11265](https://github.com/paperless-ngx/paperless-ngx/pull/11265)) - Chore(deps): Bump the small-changes group across 1 directory with 11 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11337](https://github.com/paperless-ngx/paperless-ngx/pull/11337)) - Chore(deps): Bump django-auditlog from 3.2.1 to 3.3.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11021](https://github.com/paperless-ngx/paperless-ngx/pull/11021)) - Chore(deps): Bump drf-spectacular-sidecar from 2025.9.1 to 2025.10.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11019](https://github.com/paperless-ngx/paperless-ngx/pull/11019)) - Chore(deps): Bump django-filter from 25.1 to 25.2 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11020](https://github.com/paperless-ngx/paperless-ngx/pull/11020)) - Chore(deps): Update django-allauth[mfa,socialaccount] requirement from ~=65.4.0 to ~=65.12.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11198](https://github.com/paperless-ngx/paperless-ngx/pull/11198)) - Fix: support for custom field ordering w advanced search [@shamoon](https://github.com/shamoon) ([#11383](https://github.com/paperless-ngx/paperless-ngx/pull/11383))

## paperless-ngx 2.19.6

### Bug Fixes

- Chore: include password validation on user edit @shamoon (#11308)
- Fix: include BASE_URL when constructing for workflows @ebardsley (#11360)
- Fixhancement: refactor email attachment logic @shamoon (#11336)
- Fixhancement: trim whitespace for some text searches @shamoon (#11357)
- Fix: update Outlook refresh token when refreshed @shamoon (#11341)
- Fix: only cache remote version data for version checking @shamoon (#11320)
- Fix: include replace none logic in storage path preview, improve jinja conditionals for empty metadata @shamoon (#11315)

### Dependencies

- docker(deps): bump astral-sh/uv from 0.9.7-python3.12-bookworm-slim to 0.9.9-python3.12-bookworm-slim @dependabot[bot] (#11338)

### All App Changes

7 changes
- Fix: include BASE_URL when constructing for workflows [@ebardsley](https://github.com/ebardsley) ([#11360](https://github.com/paperless-ngx/paperless-ngx/pull/11360)) - Fixhancement: refactor email attachment logic [@shamoon](https://github.com/shamoon) ([#11336](https://github.com/paperless-ngx/paperless-ngx/pull/11336)) - Fixhancement: trim whitespace for some text searches [@shamoon](https://github.com/shamoon) ([#11357](https://github.com/paperless-ngx/paperless-ngx/pull/11357)) - Fix: update Outlook refresh token when refreshed [@shamoon](https://github.com/shamoon) ([#11341](https://github.com/paperless-ngx/paperless-ngx/pull/11341)) - Fix: only cache remote version data for version checking [@shamoon](https://github.com/shamoon) ([#11320](https://github.com/paperless-ngx/paperless-ngx/pull/11320)) - Fix: include replace none logic in storage path preview, improve jinja conditionals for empty metadata [@shamoon](https://github.com/shamoon) ([#11315](https://github.com/paperless-ngx/paperless-ngx/pull/11315)) - Chore: include password validation on user edit [@shamoon](https://github.com/shamoon) ([#11308](https://github.com/paperless-ngx/paperless-ngx/pull/11308))

## paperless-ngx 2.19.5

### Bug Fixes

- Fix: ensure custom field query propagation, change detection @shamoon (#11291)

### Dependencies

- docker(deps): Bump astral-sh/uv from 0.9.4-python3.12-bookworm-slim to 0.9.7-python3.12-bookworm-slim @dependabot[bot] (#11283)

### All App Changes

- Fix: ensure custom field query propagation, change detection @shamoon (#11291)

## paperless-ngx 2.19.4

### Bug Fixes

- Fix: use original_file when attaching docs to workflow emails with added trigger @shamoon (#11266)
- Fix: mark 'Select' button in doc list for translation @shamoon (#11278)
- Fix: respect fields parameter for created field @shamoon (#11251)
- Fix: improve legibility of processed mail error popover in light mode @shamoon (#11258)
- Fixhancement: truncate large logs, improve auto-scroll @shamoon (#11239)
- Chore: add max-height and overflow to processedmail error popover @shamoon (#11252)
- Fix: delay iframe DOM removal, handle onafterprint error for print in FF @shamoon (#11237)
- Fix: de-deduplicate children in tag list when filtering @shamoon (#11229)

### Performance

- Performance: re-enable virtual scroll, bump ng-select @shamoon (#11279)
- Performance: use virtual scroll container and log level parsing for logs view @MickLesk (#11233)

### All App Changes

11 changes
- Performance: re-enable virtual scroll, bump ng-select [@shamoon](https://github.com/shamoon) ([#11279](https://github.com/paperless-ngx/paperless-ngx/pull/11279)) - Fix: use original_file when attaching docs to workflow emails with added trigger [@shamoon](https://github.com/shamoon) ([#11266](https://github.com/paperless-ngx/paperless-ngx/pull/11266)) - Fix: mark 'Select' button in doc list for translation [@shamoon](https://github.com/shamoon) ([#11278](https://github.com/paperless-ngx/paperless-ngx/pull/11278)) - Fix: respect fields parameter for created field [@shamoon](https://github.com/shamoon) ([#11251](https://github.com/paperless-ngx/paperless-ngx/pull/11251)) - Fix: improve legibility of processed mail error popover in light mode [@shamoon](https://github.com/shamoon) ([#11258](https://github.com/paperless-ngx/paperless-ngx/pull/11258)) - Fixhancement: truncate large logs, improve auto-scroll [@shamoon](https://github.com/shamoon) ([#11239](https://github.com/paperless-ngx/paperless-ngx/pull/11239)) - Chore: add max-height and overflow to processedmail error popover [@shamoon](https://github.com/shamoon) ([#11252](https://github.com/paperless-ngx/paperless-ngx/pull/11252)) - Fix: delay iframe DOM removal, handle onafterprint error for print in FF [@shamoon](https://github.com/shamoon) ([#11237](https://github.com/paperless-ngx/paperless-ngx/pull/11237)) - Performance: use virtual scroll container and log level parsing for logs view [@MickLesk](https://github.com/MickLesk) ([#11233](https://github.com/paperless-ngx/paperless-ngx/pull/11233)) - Chore: cache Github version check for 15 minutes [@shamoon](https://github.com/shamoon) ([#11235](https://github.com/paperless-ngx/paperless-ngx/pull/11235)) - Fix: de-deduplicate children in tag list when filtering [@shamoon](https://github.com/shamoon) ([#11229](https://github.com/paperless-ngx/paperless-ngx/pull/11229))

## paperless-ngx 2.19.3

### Bug Fixes

- Fix: remove unnecessary permission requirements for new email endpoint @shamoon (#11215)
- Fix: refactor nested sorting in filterable dropdowns @shamoon (#11214)
- Fix: add root tag filtering for tag list page consistency, fix toggle all @shamoon (#11208)
- Fix: support ConsumableDocument in email attachments @shamoon (#11196)
- Fix: add missing import for ConfirmButtonComponent in user-edit-dialog @shamoon (#11167)
- Fix: resolve migration warning in 2.19.2 @shamoon (#11157)

### Changes

- Change: make workflow action only title draggable @shamoon (#11209)
- Change: change workflowrun to softdeletemodel @shamoon (#11194)

### Dependencies

- Chore(deps): Bump django from 5.2.6 to 5.2.7 @dependabot[bot] (#11200)

### All App Changes

9 changes
- Chore(deps): Bump django from 5.2.6 to 5.2.7 @[dependabot[bot]](https://github.com/apps/dependabot) ([#11200](https://github.com/paperless-ngx/paperless-ngx/pull/11200)) - Fix: remove unnecessary permission requirements for new email endpoint [@shamoon](https://github.com/shamoon) ([#11215](https://github.com/paperless-ngx/paperless-ngx/pull/11215)) - Fix: refactor nested sorting in filterable dropdowns [@shamoon](https://github.com/shamoon) ([#11214](https://github.com/paperless-ngx/paperless-ngx/pull/11214)) - Fix: add root tag filtering for tag list page consistency, fix toggle all [@shamoon](https://github.com/shamoon) ([#11208](https://github.com/paperless-ngx/paperless-ngx/pull/11208)) - Change: make workflow action only title draggable [@shamoon](https://github.com/shamoon) ([#11209](https://github.com/paperless-ngx/paperless-ngx/pull/11209)) - Change: change workflowrun to softdeletemodel [@shamoon](https://github.com/shamoon) ([#11194](https://github.com/paperless-ngx/paperless-ngx/pull/11194)) - Chore: Minor migration optimization for workflow titles [@stumpylog](https://github.com/stumpylog) ([#11197](https://github.com/paperless-ngx/paperless-ngx/pull/11197)) - Fix: support ConsumableDocument in email attachments [@shamoon](https://github.com/shamoon) ([#11196](https://github.com/paperless-ngx/paperless-ngx/pull/11196)) - Fix: add missing import for ConfirmButtonComponent in user-edit-dialog [@shamoon](https://github.com/shamoon) ([#11167](https://github.com/paperless-ngx/paperless-ngx/pull/11167)) - Fix: resolve migration warning in 2.19.2 [@shamoon](https://github.com/shamoon) ([#11157](https://github.com/paperless-ngx/paperless-ngx/pull/11157))

## paperless-ngx 2.19.2

### Features / Enhancements

- Fixhancement: display loading status for tags instead of 'Private' @shamoon (#11140)

### Bug Fixes

- Fix: Remove edit requirement for bulk email, show based on setting @shamoon (#11149)
- Fix: handle undefined IDs in getOriginalObject @shamoon (#11147)

### All App Changes

3 changes
- Fix: Remove edit requirement for bulk email, show based on setting [@shamoon](https://github.com/shamoon) ([#11149](https://github.com/paperless-ngx/paperless-ngx/pull/11149)) - Fix: handle undefined IDs in getOriginalObject [@shamoon](https://github.com/shamoon) ([#11147](https://github.com/paperless-ngx/paperless-ngx/pull/11147)) - Fixhancement: display loading status for tags instead of 'Private' [@shamoon](https://github.com/shamoon) ([#11140](https://github.com/paperless-ngx/paperless-ngx/pull/11140))

## paperless-ngx 2.19.1

### Bug Fixes

- Fix: skip workflow title migration for empty titles @shamoon (#11136)
- Fix: restore workflow title migration @shamoon (#11131)
- Fix: retrieve document_count for tag children @shamoon (#11125)
- Fix: move hierarchical order logic in dropdown sorting @shamoon (#11128)
- Fix: use original object for children in tag list @shamoon (#11127)
- Fix: dont display or fetch users or groups with insufficient perms @shamoon (#11111)

### All App Changes

6 changes
- Fix: skip workflow title migration for empty titles [@shamoon](https://github.com/shamoon) ([#11136](https://github.com/paperless-ngx/paperless-ngx/pull/11136)) - Fix: restore workflow title migration [@shamoon](https://github.com/shamoon) ([#11131](https://github.com/paperless-ngx/paperless-ngx/pull/11131)) - Fix: retrieve document_count for tag children [@shamoon](https://github.com/shamoon) ([#11125](https://github.com/paperless-ngx/paperless-ngx/pull/11125)) - Fix: move hierarchical order logic in dropdown sorting [@shamoon](https://github.com/shamoon) ([#11128](https://github.com/paperless-ngx/paperless-ngx/pull/11128)) - Fix: use original object for children in tag list [@shamoon](https://github.com/shamoon) ([#11127](https://github.com/paperless-ngx/paperless-ngx/pull/11127)) - Fix: dont display or fetch users or groups with insufficient perms [@shamoon](https://github.com/shamoon) ([#11111](https://github.com/paperless-ngx/paperless-ngx/pull/11111))

## paperless-ngx 2.19.0

### Notable Changes

- Feature: Advanced Workflow Filters @shamoon (#11029)
- Feature: Nested Tags @shamoon (#10833)

### Features / Enhancements

- docker(deps): bump astral-sh/uv from 0.9.2-python3.12-bookworm-slim to 0.9.4-python3.12-bookworm-slim @dependabot[bot] (#11091)
- Enhancement: use friendly file names when emailing documents @JanKleine (#11055)
- Feature: Advanced Workflow Filters @shamoon (#11029)
- docker(deps): Bump astral-sh/uv from 0.8.22-python3.12-bookworm-slim to 0.9.2-python3.12-bookworm-slim @dependabot[bot] (#11052)
- Feature: add support for emailing multiple documents @JanKleine (#10666)
- Enhancement: ignore same files in sanity checker as consumer @shamoon (#10999)
- Enhancement: open color picker on swatch button click @shamoon (#10994)
- Performance: Cache django-guardian permissions when counting documents @Merinorus (#10657)
- Tweakhancement: reorganize some list \& bulk editing buttons @shamoon (#10944)
- Enhancement: support workflow path matching of barcode-split documents @DerRockWolf (#10723)
- Feature: processed mail UI @shamoon (#10866)
- Enhancement: support custom field values on post document @shamoon (#10859)
- Feature: Nested Tags @shamoon (#10833)
- Enhancement: long text custom field @jojo2357 (#10846)
- Enhancement: Add print button @mpaletti (#10626)
- Enhancement: add storage path as workflow trigger filter @david-loe (#10771)
- Enhancement: jinja template support for workflow title assignment @sidey79 (#10700)
- Enhancement: Limit excessively long content length when computing suggestions @Merinorus (#10656)

### Bug Fixes

- Fix: remove obsolete warning for custom field value index @shamoon (#11083)
- Fix: set min-height for drag-drop items container @shamoon (#11064)
- Fix custom field query dropdown toggle corners @shamoon (#11028)
- Fix: correct save hotkey action when no next document exists @shamoon (#11027)
- Fix: require only change permissions for task dismissal, add frontend error handling @shamoon (#11023)
- Chore(deps): Bulk upgrade backend dependencies @stumpylog (#10971)
- Chore: remove Codecov token from CI workflow @shamoon (#10941)
- Fix: fix select option removal and pagination update @shamoon (#10933)
- Fix: skip fuzzy matching for empty document content @shamoon (#10914)
- Fix: add extra error handling to _consume for file checks @shamoon (#10897)
- Fix: restore str celery beat schedule filename @shamoon (#10893)
- Fix: fix pdf editor hover rotate counterclockwise button @shamoon (#10848)
- Fix: warp long words in toast content @shamoon (#10839)
- Fix: fix error when bulk adding empty doc link custom fields @shamoon (#10832)
- Fix: set match value for correspondents created by mail rule @shamoon (#10820)

### Maintenance

- Chore(deps): Bump the actions group with 5 updates @dependabot[bot] (#10978)
- Chore: remove Codecov token from CI workflow @shamoon (#10941)

### Dependencies

29 changes
- docker(deps): bump astral-sh/uv from 0.9.2-python3.12-bookworm-slim to 0.9.4-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#11091](https://github.com/paperless-ngx/paperless-ngx/pull/11091)) - docker-compose(deps): Bump gotenberg/gotenberg from 8.23 to 8.24 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#11050](https://github.com/paperless-ngx/paperless-ngx/pull/11050)) - Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11065](https://github.com/paperless-ngx/paperless-ngx/pull/11065)) - docker(deps): Bump astral-sh/uv from 0.8.22-python3.12-bookworm-slim to 0.9.2-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#11052](https://github.com/paperless-ngx/paperless-ngx/pull/11052)) - Chore(deps): Bump the actions group with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10978](https://github.com/paperless-ngx/paperless-ngx/pull/10978)) - Chore(deps): Bump uuid from 11.1.0 to 13.0.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10983](https://github.com/paperless-ngx/paperless-ngx/pull/10983)) - Chore(deps-dev): Bump @playwright/test from 1.55.0 to 1.55.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10982](https://github.com/paperless-ngx/paperless-ngx/pull/10982)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10981](https://github.com/paperless-ngx/paperless-ngx/pull/10981)) - Chore(deps-dev): Bump webpack from 5.101.3 to 5.102.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10986](https://github.com/paperless-ngx/paperless-ngx/pull/10986)) - Chore(deps-dev): Bump prettier-plugin-organize-imports from 4.2.0 to 4.3.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10985](https://github.com/paperless-ngx/paperless-ngx/pull/10985)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10980](https://github.com/paperless-ngx/paperless-ngx/pull/10980)) - Chore(deps-dev): Bump @types/node from 24.3.0 to 24.6.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10984](https://github.com/paperless-ngx/paperless-ngx/pull/10984)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10979](https://github.com/paperless-ngx/paperless-ngx/pull/10979)) - docker-compose(deps): Bump library/postgres from 17 to 18 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#10965](https://github.com/paperless-ngx/paperless-ngx/pull/10965)) - Chore(deps): Bump the major-versions group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10960](https://github.com/paperless-ngx/paperless-ngx/pull/10960)) - Chore(deps): Bump types-colorama from 0.4.15.20240311 to 0.4.15.20250801 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10961](https://github.com/paperless-ngx/paperless-ngx/pull/10961)) - Chore(deps): Bump django-guardian from 3.1.3 to 3.2.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10909](https://github.com/paperless-ngx/paperless-ngx/pull/10909)) - Chore(deps): Bump django-soft-delete from 1.0.19 to 1.0.21 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10908](https://github.com/paperless-ngx/paperless-ngx/pull/10908)) - Chore(deps): Bump whitenoise from 6.10.0 to 6.11.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10910](https://github.com/paperless-ngx/paperless-ngx/pull/10910)) - Chore(deps): Bump django-cors-headers from 4.8.0 to 4.9.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10907](https://github.com/paperless-ngx/paperless-ngx/pull/10907)) - docker(deps): bump astral-sh/uv from 0.8.17-python3.12-bookworm-slim to 0.8.19-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10906](https://github.com/paperless-ngx/paperless-ngx/pull/10906)) - docker(deps): Bump astral-sh/uv from 0.8.15-python3.12-bookworm-slim to 0.8.17-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10864](https://github.com/paperless-ngx/paperless-ngx/pull/10864)) - Chore(deps): Bump the small-changes group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10880](https://github.com/paperless-ngx/paperless-ngx/pull/10880)) - Chore(deps): Bump django-guardian from 3.1.2 to 3.1.3 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#10863](https://github.com/paperless-ngx/paperless-ngx/pull/10863)) - Chore(deps): Bump pytest-cov from 6.2.1 to 7.0.0 in the development group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#10822](https://github.com/paperless-ngx/paperless-ngx/pull/10822)) - Chore(deps): Bump the django group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10811](https://github.com/paperless-ngx/paperless-ngx/pull/10811)) - docker-compose(deps): Bump gotenberg/gotenberg from 8.22 to 8.23 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#10812](https://github.com/paperless-ngx/paperless-ngx/pull/10812)) - Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10821](https://github.com/paperless-ngx/paperless-ngx/pull/10821)) - docker(deps): Bump astral-sh/uv from 0.8.13-python3.12-bookworm-slim to 0.8.15-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10810](https://github.com/paperless-ngx/paperless-ngx/pull/10810))

### All App Changes

51 changes
- Tweak: improve tag parent validation error handling [@shamoon](https://github.com/shamoon) ([#11096](https://github.com/paperless-ngx/paperless-ngx/pull/11096)) - Fix: remove obsolete warning for custom field value index [@shamoon](https://github.com/shamoon) ([#11083](https://github.com/paperless-ngx/paperless-ngx/pull/11083)) - Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#11065](https://github.com/paperless-ngx/paperless-ngx/pull/11065)) - Enhancement: use friendly file names when emailing documents [@JanKleine](https://github.com/JanKleine) ([#11055](https://github.com/paperless-ngx/paperless-ngx/pull/11055)) - Fix: set min-height for drag-drop items container [@shamoon](https://github.com/shamoon) ([#11064](https://github.com/paperless-ngx/paperless-ngx/pull/11064)) - Feature: Advanced Workflow Filters [@shamoon](https://github.com/shamoon) ([#11029](https://github.com/paperless-ngx/paperless-ngx/pull/11029)) - Feature: add support for emailing multiple documents [@JanKleine](https://github.com/JanKleine) ([#10666](https://github.com/paperless-ngx/paperless-ngx/pull/10666)) - Fix custom field query dropdown toggle corners [@shamoon](https://github.com/shamoon) ([#11028](https://github.com/paperless-ngx/paperless-ngx/pull/11028)) - Fix: correct save hotkey action when no next document exists [@shamoon](https://github.com/shamoon) ([#11027](https://github.com/paperless-ngx/paperless-ngx/pull/11027)) - Fix: require only change permissions for task dismissal, add frontend error handling [@shamoon](https://github.com/shamoon) ([#11023](https://github.com/paperless-ngx/paperless-ngx/pull/11023)) - Enhancement: ignore same files in sanity checker as consumer [@shamoon](https://github.com/shamoon) ([#10999](https://github.com/paperless-ngx/paperless-ngx/pull/10999)) - Enhancement: open color picker on swatch button click [@shamoon](https://github.com/shamoon) ([#10994](https://github.com/paperless-ngx/paperless-ngx/pull/10994)) - Chore(deps): Bump uuid from 11.1.0 to 13.0.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10983](https://github.com/paperless-ngx/paperless-ngx/pull/10983)) - Chore(deps-dev): Bump @playwright/test from 1.55.0 to 1.55.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10982](https://github.com/paperless-ngx/paperless-ngx/pull/10982)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10981](https://github.com/paperless-ngx/paperless-ngx/pull/10981)) - Chore(deps-dev): Bump webpack from 5.101.3 to 5.102.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10986](https://github.com/paperless-ngx/paperless-ngx/pull/10986)) - Chore(deps-dev): Bump prettier-plugin-organize-imports from 4.2.0 to 4.3.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10985](https://github.com/paperless-ngx/paperless-ngx/pull/10985)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10980](https://github.com/paperless-ngx/paperless-ngx/pull/10980)) - Chore(deps-dev): Bump @types/node from 24.3.0 to 24.6.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10984](https://github.com/paperless-ngx/paperless-ngx/pull/10984)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10979](https://github.com/paperless-ngx/paperless-ngx/pull/10979)) - Performance: Cache django-guardian permissions when counting documents [@Merinorus](https://github.com/Merinorus) ([#10657](https://github.com/paperless-ngx/paperless-ngx/pull/10657)) - Chore(deps): Bulk upgrade backend dependencies [@stumpylog](https://github.com/stumpylog) ([#10971](https://github.com/paperless-ngx/paperless-ngx/pull/10971)) - Chore(deps): Bump the major-versions group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10960](https://github.com/paperless-ngx/paperless-ngx/pull/10960)) - Chore(deps): Bump types-colorama from 0.4.15.20240311 to 0.4.15.20250801 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10961](https://github.com/paperless-ngx/paperless-ngx/pull/10961)) - Chore(deps): Bump django-guardian from 3.1.3 to 3.2.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10909](https://github.com/paperless-ngx/paperless-ngx/pull/10909)) - Chore(deps): Bump django-soft-delete from 1.0.19 to 1.0.21 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10908](https://github.com/paperless-ngx/paperless-ngx/pull/10908)) - Chore(deps): Bump whitenoise from 6.10.0 to 6.11.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10910](https://github.com/paperless-ngx/paperless-ngx/pull/10910)) - Tweakhancement: reorganize some list \& bulk editing buttons [@shamoon](https://github.com/shamoon) ([#10944](https://github.com/paperless-ngx/paperless-ngx/pull/10944)) - Chore(deps): Bump django-cors-headers from 4.8.0 to 4.9.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10907](https://github.com/paperless-ngx/paperless-ngx/pull/10907)) - Fix: fix select option removal and pagination update [@shamoon](https://github.com/shamoon) ([#10933](https://github.com/paperless-ngx/paperless-ngx/pull/10933)) - Enhancement: support workflow path matching of barcode-split documents [@DerRockWolf](https://github.com/DerRockWolf) ([#10723](https://github.com/paperless-ngx/paperless-ngx/pull/10723)) - Fix: skip fuzzy matching for empty document content [@shamoon](https://github.com/shamoon) ([#10914](https://github.com/paperless-ngx/paperless-ngx/pull/10914)) - Feature: processed mail UI [@shamoon](https://github.com/shamoon) ([#10866](https://github.com/paperless-ngx/paperless-ngx/pull/10866)) - Fix: add extra error handling to \_consume for file checks [@shamoon](https://github.com/shamoon) ([#10897](https://github.com/paperless-ngx/paperless-ngx/pull/10897)) - Fix: restore str celery beat schedule filename [@shamoon](https://github.com/shamoon) ([#10893](https://github.com/paperless-ngx/paperless-ngx/pull/10893)) - Enhancement: support custom field values on post document [@shamoon](https://github.com/shamoon) ([#10859](https://github.com/paperless-ngx/paperless-ngx/pull/10859)) - Feature: Nested Tags [@shamoon](https://github.com/shamoon) ([#10833](https://github.com/paperless-ngx/paperless-ngx/pull/10833)) - Chore(deps): Bump the small-changes group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10880](https://github.com/paperless-ngx/paperless-ngx/pull/10880)) - Chore(deps): Bump django-guardian from 3.1.2 to 3.1.3 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#10863](https://github.com/paperless-ngx/paperless-ngx/pull/10863)) - Enhancement: long text custom field [@jojo2357](https://github.com/jojo2357) ([#10846](https://github.com/paperless-ngx/paperless-ngx/pull/10846)) - Fix: fix pdf editor hover rotate counterclockwise button [@shamoon](https://github.com/shamoon) ([#10848](https://github.com/paperless-ngx/paperless-ngx/pull/10848)) - Fix: warp long words in toast content [@shamoon](https://github.com/shamoon) ([#10839](https://github.com/paperless-ngx/paperless-ngx/pull/10839)) - Fix: fix error when bulk adding empty doc link custom fields [@shamoon](https://github.com/shamoon) ([#10832](https://github.com/paperless-ngx/paperless-ngx/pull/10832)) - Enhancement: Add print button [@mpaletti](https://github.com/mpaletti) ([#10626](https://github.com/paperless-ngx/paperless-ngx/pull/10626)) - Enhancement: add storage path as workflow trigger filter @david-loe ([#10771](https://github.com/paperless-ngx/paperless-ngx/pull/10771)) - Enhancement: jinja template support for workflow title assignment [@sidey79](https://github.com/sidey79) ([#10700](https://github.com/paperless-ngx/paperless-ngx/pull/10700)) - Chore(deps): Bump pytest-cov from 6.2.1 to 7.0.0 in the development group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#10822](https://github.com/paperless-ngx/paperless-ngx/pull/10822)) - Chore(deps): Bump the django group with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10811](https://github.com/paperless-ngx/paperless-ngx/pull/10811)) - Enhancement: Limit excessively long content length when computing suggestions [@Merinorus](https://github.com/Merinorus) ([#10656](https://github.com/paperless-ngx/paperless-ngx/pull/10656)) - Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10821](https://github.com/paperless-ngx/paperless-ngx/pull/10821)) - Fix: set match value for correspondents created by mail rule [@shamoon](https://github.com/shamoon) ([#10820](https://github.com/paperless-ngx/paperless-ngx/pull/10820))

## paperless-ngx 2.18.4

### Features / Enhancements

- Enhancement: report websocket status @shamoon (#10777)

### Bug Fixes

- Revert "Performance: Enable virtual scrolling for large custom field … @shamoon (#10803)
- Fixhancement: update sidebar view counts on save \& next also @shamoon (#10793)
- Performance fix: add paging for custom field select options @shamoon (#10755)

### Dependencies

8 changes
- Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates [@shamoon](https://github.com/shamoon) ([#10770](https://github.com/paperless-ngx/paperless-ngx/pull/10770)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10745](https://github.com/paperless-ngx/paperless-ngx/pull/10745)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 22 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10744](https://github.com/paperless-ngx/paperless-ngx/pull/10744)) - Chore(deps): Bump bootstrap from 5.3.7 to 5.3.8 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10740](https://github.com/paperless-ngx/paperless-ngx/pull/10740)) - Chore(deps-dev): Bump @playwright/test from 1.54.2 to 1.55.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10743](https://github.com/paperless-ngx/paperless-ngx/pull/10743)) - Chore(deps-dev): Bump webpack from 5.101.0 to 5.101.3 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10751](https://github.com/paperless-ngx/paperless-ngx/pull/10751)) - Chore(deps-dev): Bump @types/node from 24.1.0 to 24.3.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10750](https://github.com/paperless-ngx/paperless-ngx/pull/10750)) - Chore(deps): Bump the actions group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10757](https://github.com/paperless-ngx/paperless-ngx/pull/10757))

### All App Changes

13 changes
- Revert "Performance: Enable virtual scrolling for large custom field … @shamoon ([#10803](https://github.com/paperless-ngx/paperless-ngx/pull/10803)) - Fixhancement: update sidebar view counts on save \& next also @shamoon ([#10793](https://github.com/paperless-ngx/paperless-ngx/pull/10793)) - Enhancement: report websocket status @shamoon ([#10777](https://github.com/paperless-ngx/paperless-ngx/pull/10777)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates @shamoon ([#10770](https://github.com/paperless-ngx/paperless-ngx/pull/10770)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10745](https://github.com/paperless-ngx/paperless-ngx/pull/10745)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 22 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10744](https://github.com/paperless-ngx/paperless-ngx/pull/10744)) - Chore(deps): Bump bootstrap from 5.3.7 to 5.3.8 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10740](https://github.com/paperless-ngx/paperless-ngx/pull/10740)) - Chore(deps-dev): Bump @playwright/test from 1.54.2 to 1.55.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10743](https://github.com/paperless-ngx/paperless-ngx/pull/10743)) - Chore(deps-dev): Bump webpack from 5.101.0 to 5.101.3 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10751](https://github.com/paperless-ngx/paperless-ngx/pull/10751)) - Chore(deps-dev): Bump @types/node from 24.1.0 to 24.3.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10750](https://github.com/paperless-ngx/paperless-ngx/pull/10750)) - Chore: switch from os.path to pathlib.Path @gothicVI ([#10539](https://github.com/paperless-ngx/paperless-ngx/pull/10539)) - Performance fix: add paging for custom field select options @shamoon ([#10755](https://github.com/paperless-ngx/paperless-ngx/pull/10755))

## paperless-ngx 2.18.3

### Bug Fixes

- Fix: include application config language settings for dateparser auto-detection @shamoon (#10722)
- Fix: hide sidebar counts during saved views organization @shamoon (#10716)
- Fix: wrap long view titles in sidebar @shamoon (#10715)
- Fixhancement: more saved view count refreshes @shamoon (#10694)
- Fix: include pagination array items for valid openapi schema @shamoon (#10682)
- Fix: prevent scroll for view name in sidebar @shamoon (#10676)
- Tweak: center document close button in app frame @shamoon (#10661)
- Performance: Enable virtual scrolling for large custom field selects @david-loe (#10708)

### Dependencies

5 changes
- Chore(deps): Update granian[uvloop] requirement from ~=2.4.1 to ~=2.5.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10529](https://github.com/paperless-ngx/paperless-ngx/pull/10529)) - Chore(deps): Bump the small-changes group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10714](https://github.com/paperless-ngx/paperless-ngx/pull/10714)) - docker-compose(deps): Bump library/mariadb from 11 to 12 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#10621](https://github.com/paperless-ngx/paperless-ngx/pull/10621)) - docker-compose(deps): Bump gotenberg/gotenberg from 8.20 to 8.22 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#10687](https://github.com/paperless-ngx/paperless-ngx/pull/10687)) - docker(deps): Bump astral-sh/uv from 0.8.8-python3.12-bookworm-slim to 0.8.13-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10685](https://github.com/paperless-ngx/paperless-ngx/pull/10685))

### All App Changes

11 changes
- Fix: include application config language settings for dateparser auto-detection [@shamoon](https://github.com/shamoon) ([#10722](https://github.com/paperless-ngx/paperless-ngx/pull/10722)) - Chore(deps): Update granian[uvloop] requirement from ~=2.4.1 to ~=2.5.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10529](https://github.com/paperless-ngx/paperless-ngx/pull/10529)) - Chore(deps): Bump the small-changes group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10714](https://github.com/paperless-ngx/paperless-ngx/pull/10714)) - Fix: hide sidebar counts during saved views organization [@shamoon](https://github.com/shamoon) ([#10716](https://github.com/paperless-ngx/paperless-ngx/pull/10716)) - Fix: wrap long view titles in sidebar [@shamoon](https://github.com/shamoon) ([#10715](https://github.com/paperless-ngx/paperless-ngx/pull/10715)) - Performance: Enable virtual scrolling for large custom field selects @david-loe ([#10708](https://github.com/paperless-ngx/paperless-ngx/pull/10708)) - Chore: refactor document details component [@shamoon](https://github.com/shamoon) ([#10662](https://github.com/paperless-ngx/paperless-ngx/pull/10662)) - Fixhancement: more saved view count refreshes [@shamoon](https://github.com/shamoon) ([#10694](https://github.com/paperless-ngx/paperless-ngx/pull/10694)) - Fix: include pagination array items for valid openapi schema [@shamoon](https://github.com/shamoon) ([#10682](https://github.com/paperless-ngx/paperless-ngx/pull/10682)) - Fix: prevent scroll for view name in sidebar [@shamoon](https://github.com/shamoon) ([#10676](https://github.com/paperless-ngx/paperless-ngx/pull/10676)) - Tweak: center document close button in app frame [@shamoon](https://github.com/shamoon) ([#10661](https://github.com/paperless-ngx/paperless-ngx/pull/10661))

## paperless-ngx 2.18.2

### Bug Fixes

- Fix: prevent loss of changes when switching between open docs @shamoon (#10659)
- Fix: ignore incomplete tasks for system status 'last run' @shamoon (#10641)
- Fix: increase legibility of date filter clear button in light mode @shamoon (#10649)
- Fix: ensure saved view count is visible with long names @shamoon (#10616)
- Tweak: improve dateparser auto-detection messages @shamoon (#10640)

### Dependencies

- Chore(deps): Bump the development group across 1 directory with 3 updates @dependabot[bot] (#10578)

### All App Changes

6 changes
- Fix: prevent loss of changes when switching between open docs [@shamoon](https://github.com/shamoon) ([#10659](https://github.com/paperless-ngx/paperless-ngx/pull/10659)) - Fix: ignore incomplete tasks for system status 'last run' [@shamoon](https://github.com/shamoon) ([#10641](https://github.com/paperless-ngx/paperless-ngx/pull/10641)) - Tweak: improve dateparser auto-detection messages [@shamoon](https://github.com/shamoon) ([#10640](https://github.com/paperless-ngx/paperless-ngx/pull/10640)) - Fix: increase legibility of date filter clear button in light mode [@shamoon](https://github.com/shamoon) ([#10649](https://github.com/paperless-ngx/paperless-ngx/pull/10649)) - Fix: ensure saved view count is visible with long names [@shamoon](https://github.com/shamoon) ([#10616](https://github.com/paperless-ngx/paperless-ngx/pull/10616)) - Chore(deps): Bump the development group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10578](https://github.com/paperless-ngx/paperless-ngx/pull/10578))

## paperless-ngx 2.18.1

### Features / Enhancements

- Tweak: fix some button consistency @shamoon (#10593)
- Fixhancement: mobile layout improvements for pdf editor @shamoon (#10588)

### Bug Fixes

- Fix: fix app logo validation with no file @shamoon (#10599)

### Documentation

- Documentation: fix filters docs @shamoon (#10600)

### All App Changes

4 changes
- Fix: fix app logo validation with no file [@shamoon](https://github.com/shamoon) ([#10599](https://github.com/paperless-ngx/paperless-ngx/pull/10599)) - Tweak: fix some button consistency [@shamoon](https://github.com/shamoon) ([#10593](https://github.com/paperless-ngx/paperless-ngx/pull/10593)) - Development: restore version tag display [@shamoon](https://github.com/shamoon) ([#10592](https://github.com/paperless-ngx/paperless-ngx/pull/10592)) - Fixhancement: mobile layout improvements for pdf editor [@shamoon](https://github.com/shamoon) ([#10588](https://github.com/paperless-ngx/paperless-ngx/pull/10588))

## paperless-ngx 2.18.0

### Notable Changes

- Feature: PDF editor @shamoon (#10318)

### Features / Enhancements

- Feature: Add filter to localize dates for filepath templating @stumpylog (#10559)
- Feature: PDF editor @shamoon (#10318)
- Enhancement: support webhook restrictions @shamoon (#10555)
- Performance: Classifier performance optimizations @Merinorus (#10363)
- Performance: add setting to enable DB connection pooling for PostgreSQL @Merinorus (#10354)
- Fixhancement: improve text thumbnail generation for large files @shamoon (#10483)
- Enhancement: disable auto spellcheck on filtering dropdowns @TheDodger (#10487)
- Enhancement: display saved view counts @shamoon (#10246)
- Fixhancement: add missing exact operator for boolean CF queries @shamoon (#10402)
- Feature: add Vietnamese translation @shamoon (#10352)
- Performance: Add support for configuring date parser languages @Merinorus (#10181)
- Enhancement: Add a database caching for improved performance @Merinorus (#9784)

### Bug Fixes

- Fix: include ignore for config logos in sanity checker @shamoon (#10473)
- Fix: track and restore changed document fields from session storage @shamoon (#10468)
- Fix: Make some natural keyword date searches timezone-aware @shamoon (#10416)
- Fixhancement: follow redirects in curl health check @V0idC0de (#10415)
- Fix: dont use translated verbose_name for getting object perms @shamoon (#10399)
- Fix: fix date format for 'today' in DateComponent @shamoon (#10369)
- Fix: default to empty permissions for group creation @shamoon (#10337)
- Fix: correct api created coercion with timezone @shamoon (#10287)
- Fix: reset search query for preview on reset filter @shamoon (#10279)
- Chore: reject absurd max age values @shamoon (#10243)
- Chore: add tasks task_id param to openapi spec @shamoon (#10469)
- Chore: include advanced search query param in API spec @shamoon (#10449)

### Security

- Address XSS vulnerability GHSA-6p53-hqqw-8j62

### Maintenance

- docker(deps): Bump astral-sh/uv from 0.8.4-python3.12-bookworm-slim to 0.8.8-python3.12-bookworm-slim @dependabot[bot] (#10564)
- docker(deps): Bump astral-sh/uv from 0.7.9-python3.12-bookworm-slim to 0.7.19-python3.12-bookworm-slim @dependabot[bot] (#10343)
- Chore(deps): Bump the small-changes group across 1 directory with 7 updates @dependabot[bot] (#10347)
- Chore(deps-dev): Bump @types/node from 22.15.29 to 24.0.10 in /src-ui @dependabot[bot] (#10306)
- Chore(deps): Bump the small-changes group across 1 directory with 8 updates @dependabot[bot] (#10481)
- docker(deps): bump astral-sh/uv from 0.7.19-python3.12-bookworm-slim to 0.8.3-python3.12-bookworm-slim @dependabot[bot] (#10465)
- Chore: switch from os.path to pathlib.Path @gothicVI (#10397)
- Chore(deps): Bump the small-changes group with 3 updates @dependabot[bot] (#10528)
- Chore(deps): Bump the django group across 1 directory with 9 updates @dependabot[bot] (#10538)
- Chore(deps): Bump stefanzweifel/git-auto-commit-action from 5 to 6 in the actions group @dependabot[bot] (#10302)

### Dependencies

23 changes
- chore: Small targeted upgrades to dependencies [@stumpylog](https://github.com/stumpylog) ([#10561](https://github.com/paperless-ngx/paperless-ngx/pull/10561)) - docker(deps): Bump astral-sh/uv from 0.8.4-python3.12-bookworm-slim to 0.8.8-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10564](https://github.com/paperless-ngx/paperless-ngx/pull/10564)) - Chore(deps): Bump the django group across 1 directory with 9 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10538](https://github.com/paperless-ngx/paperless-ngx/pull/10538)) - Chore(deps): Bump the small-changes group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10528](https://github.com/paperless-ngx/paperless-ngx/pull/10528)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10497](https://github.com/paperless-ngx/paperless-ngx/pull/10497)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10498](https://github.com/paperless-ngx/paperless-ngx/pull/10498)) - Chore(deps-dev): Bump @playwright/test from 1.53.2 to 1.54.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10499](https://github.com/paperless-ngx/paperless-ngx/pull/10499)) - Chore(deps-dev): Bump webpack from 5.99.9 to 5.101.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10501](https://github.com/paperless-ngx/paperless-ngx/pull/10501)) - Chore(deps-dev): Bump prettier-plugin-organize-imports from 4.1.0 to 4.2.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10500](https://github.com/paperless-ngx/paperless-ngx/pull/10500)) - Chore(deps-dev): Bump @types/node from 24.0.10 to 24.1.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10502](https://github.com/paperless-ngx/paperless-ngx/pull/10502)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 16 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10496](https://github.com/paperless-ngx/paperless-ngx/pull/10496)) - Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10481](https://github.com/paperless-ngx/paperless-ngx/pull/10481)) - docker(deps): bump astral-sh/uv from 0.7.19-python3.12-bookworm-slim to 0.8.3-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10465](https://github.com/paperless-ngx/paperless-ngx/pull/10465)) - docker(deps): Bump astral-sh/uv from 0.7.9-python3.12-bookworm-slim to 0.7.19-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10343](https://github.com/paperless-ngx/paperless-ngx/pull/10343)) - Chore(deps): Bump the small-changes group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10347](https://github.com/paperless-ngx/paperless-ngx/pull/10347)) - Chore(deps): Bump stefanzweifel/git-auto-commit-action from 5 to 6 in the actions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#10302](https://github.com/paperless-ngx/paperless-ngx/pull/10302)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10311](https://github.com/paperless-ngx/paperless-ngx/pull/10311)) - Chore(deps-dev): Bump @types/node from 22.15.29 to 24.0.10 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10306](https://github.com/paperless-ngx/paperless-ngx/pull/10306)) - Chore(deps): Bump bootstrap from 5.3.6 to 5.3.7 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10308](https://github.com/paperless-ngx/paperless-ngx/pull/10308)) - Chore(deps-dev): Bump webpack from 5.98.0 to 5.99.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10309](https://github.com/paperless-ngx/paperless-ngx/pull/10309)) - Chore(deps-dev): Bump @playwright/test from 1.51.1 to 1.53.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10307](https://github.com/paperless-ngx/paperless-ngx/pull/10307)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 13 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10303](https://github.com/paperless-ngx/paperless-ngx/pull/10303)) - Chore: update to Angular 20 [@shamoon](https://github.com/shamoon) ([#10273](https://github.com/paperless-ngx/paperless-ngx/pull/10273))

### All App Changes

44 changes
- chore: Small targeted upgrades to dependencies [@stumpylog](https://github.com/stumpylog) ([#10561](https://github.com/paperless-ngx/paperless-ngx/pull/10561)) - Feature: Add filter to localize dates for filepath templating [@stumpylog](https://github.com/stumpylog) ([#10559](https://github.com/paperless-ngx/paperless-ngx/pull/10559)) - Chore: Removes duplication and spread out config for codespell [@stumpylog](https://github.com/stumpylog) ([#10560](https://github.com/paperless-ngx/paperless-ngx/pull/10560)) - Chore(deps): Bump the django group across 1 directory with 9 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10538](https://github.com/paperless-ngx/paperless-ngx/pull/10538)) - Feature: PDF editor [@shamoon](https://github.com/shamoon) ([#10318](https://github.com/paperless-ngx/paperless-ngx/pull/10318)) - Enhancement: support webhook restrictions [@shamoon](https://github.com/shamoon) ([#10555](https://github.com/paperless-ngx/paperless-ngx/pull/10555)) - Performance: Classifier performance optimizations [@Merinorus](https://github.com/Merinorus) ([#10363](https://github.com/paperless-ngx/paperless-ngx/pull/10363)) - Chore: switch from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#10397](https://github.com/paperless-ngx/paperless-ngx/pull/10397)) - Chore(deps): Bump the small-changes group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10528](https://github.com/paperless-ngx/paperless-ngx/pull/10528)) - Performance: add setting to enable DB connection pooling for PostgreSQL [@Merinorus](https://github.com/Merinorus) ([#10354](https://github.com/paperless-ngx/paperless-ngx/pull/10354)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10497](https://github.com/paperless-ngx/paperless-ngx/pull/10497)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10498](https://github.com/paperless-ngx/paperless-ngx/pull/10498)) - Chore(deps-dev): Bump @playwright/test from 1.53.2 to 1.54.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10499](https://github.com/paperless-ngx/paperless-ngx/pull/10499)) - Chore(deps-dev): Bump webpack from 5.99.9 to 5.101.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10501](https://github.com/paperless-ngx/paperless-ngx/pull/10501)) - Chore(deps-dev): Bump prettier-plugin-organize-imports from 4.1.0 to 4.2.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10500](https://github.com/paperless-ngx/paperless-ngx/pull/10500)) - Chore(deps-dev): Bump @types/node from 24.0.10 to 24.1.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10502](https://github.com/paperless-ngx/paperless-ngx/pull/10502)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 16 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10496](https://github.com/paperless-ngx/paperless-ngx/pull/10496)) - Fixhancement: improve text thumbnail generation for large files [@shamoon](https://github.com/shamoon) ([#10483](https://github.com/paperless-ngx/paperless-ngx/pull/10483)) - Enhancement: disable auto spellcheck on filtering dropdowns [@TheDodger](https://github.com/TheDodger) ([#10487](https://github.com/paperless-ngx/paperless-ngx/pull/10487)) - Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10481](https://github.com/paperless-ngx/paperless-ngx/pull/10481)) - Fix: include ignore for config logos in sanity checker [@shamoon](https://github.com/shamoon) ([#10473](https://github.com/paperless-ngx/paperless-ngx/pull/10473)) - Chore: add tasks task_id param to openapi spec [@shamoon](https://github.com/shamoon) ([#10469](https://github.com/paperless-ngx/paperless-ngx/pull/10469)) - Fix: track and restore changed document fields from session storage [@shamoon](https://github.com/shamoon) ([#10468](https://github.com/paperless-ngx/paperless-ngx/pull/10468)) - Chore: include advanced search query param in API spec [@shamoon](https://github.com/shamoon) ([#10449](https://github.com/paperless-ngx/paperless-ngx/pull/10449)) - Enhancement: display saved view counts [@shamoon](https://github.com/shamoon) ([#10246](https://github.com/paperless-ngx/paperless-ngx/pull/10246)) - Fix: Make some natural keyword date searches timezone-aware [@shamoon](https://github.com/shamoon) ([#10416](https://github.com/paperless-ngx/paperless-ngx/pull/10416)) - Fixhancement: add missing exact operator for boolean CF queries [@shamoon](https://github.com/shamoon) ([#10402](https://github.com/paperless-ngx/paperless-ngx/pull/10402)) - Fix: dont use translated verbose_name for getting object perms [@shamoon](https://github.com/shamoon) ([#10399](https://github.com/paperless-ngx/paperless-ngx/pull/10399)) - Fix: fix date format for 'today' in DateComponent [@shamoon](https://github.com/shamoon) ([#10369](https://github.com/paperless-ngx/paperless-ngx/pull/10369)) - Feature: add Vietnamese translation [@shamoon](https://github.com/shamoon) ([#10352](https://github.com/paperless-ngx/paperless-ngx/pull/10352)) - Chore(deps): Bump the small-changes group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10347](https://github.com/paperless-ngx/paperless-ngx/pull/10347)) - Fix: default to empty permissions for group creation [@shamoon](https://github.com/shamoon) ([#10337](https://github.com/paperless-ngx/paperless-ngx/pull/10337)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10311](https://github.com/paperless-ngx/paperless-ngx/pull/10311)) - Chore(deps-dev): Bump @types/node from 22.15.29 to 24.0.10 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10306](https://github.com/paperless-ngx/paperless-ngx/pull/10306)) - Chore(deps): Bump bootstrap from 5.3.6 to 5.3.7 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10308](https://github.com/paperless-ngx/paperless-ngx/pull/10308)) - Chore(deps-dev): Bump webpack from 5.98.0 to 5.99.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10309](https://github.com/paperless-ngx/paperless-ngx/pull/10309)) - Chore(deps-dev): Bump @playwright/test from 1.51.1 to 1.53.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10307](https://github.com/paperless-ngx/paperless-ngx/pull/10307)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 13 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10303](https://github.com/paperless-ngx/paperless-ngx/pull/10303)) - Performance: Add support for configuring date parser languages [@Merinorus](https://github.com/Merinorus) ([#10181](https://github.com/paperless-ngx/paperless-ngx/pull/10181)) - Enhancement: Add a database caching for improved performance [@Merinorus](https://github.com/Merinorus) ([#9784](https://github.com/paperless-ngx/paperless-ngx/pull/9784)) - Fix: correct api created coercion with timezone [@shamoon](https://github.com/shamoon) ([#10287](https://github.com/paperless-ngx/paperless-ngx/pull/10287)) - Fix: reset search query for preview on reset filter [@shamoon](https://github.com/shamoon) ([#10279](https://github.com/paperless-ngx/paperless-ngx/pull/10279)) - Chore: update to Angular 20 [@shamoon](https://github.com/shamoon) ([#10273](https://github.com/paperless-ngx/paperless-ngx/pull/10273)) - Chore: reject absurd max age values [@shamoon](https://github.com/shamoon) ([#10243](https://github.com/paperless-ngx/paperless-ngx/pull/10243))

## paperless-ngx 2.17.1

### Bug Fixes

- Fix: correct PAPERLESS_EMPTY_TRASH_DIR to Path @shamoon (#10227)

### All App Changes

- Fix: correct PAPERLESS_EMPTY_TRASH_DIR to Path @shamoon (#10227)

## paperless-ngx 2.17.0

### Breaking Changes

- Fix: restore expected pre-2.16 scheduled workflow offset behavior @shamoon (#10218)

### Features / Enhancements

- QoL: log version at startup, show backend vs frontend mismatch in system status @shamoon (#10214)
- Feature: add Persian translation @shamoon (#10183)
- Enhancement: support import of zipped export @kaerbr (#10073)

### Bug Fixes

- Fix: more api fixes @shamoon (#10204)
- Fix: restore expected pre-2.16 scheduled workflow offset behavior @shamoon (#10218)
- Fix: fix some API crashes @shamoon (#10196)
- Fix: remove duplicate base path in websocket urls @robertmx (#10194)
- Fix: use hard delete for custom fields with workflow removal @shamoon (#10191)
- Fix: fix mail account test api schema @shamoon (#10164)
- Fix: correct api schema for mail_account process @shamoon (#10157)
- Fix: correct api schema for next_asn @shamoon (#10151)
- Fix: fix email and notes endpoints api spec @shamoon (#10148)

### Dependencies

- Chore: bump angular/common to 19.12.14 @shamoon (#10212)

### All App Changes

14 changes
- QoL: log version at startup, show backend vs frontend mismatch in system status [@shamoon](https://github.com/shamoon) ([#10214](https://github.com/paperless-ngx/paperless-ngx/pull/10214)) - Fix: more api fixes [@shamoon](https://github.com/shamoon) ([#10204](https://github.com/paperless-ngx/paperless-ngx/pull/10204)) - Fix: restore expected pre-2.16 scheduled workflow offset behavior [@shamoon](https://github.com/shamoon) ([#10218](https://github.com/paperless-ngx/paperless-ngx/pull/10218)) - Chore: switch from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#9933](https://github.com/paperless-ngx/paperless-ngx/pull/9933)) - Chore: bump angular/common to 19.12.14 [@shamoon](https://github.com/shamoon) ([#10212](https://github.com/paperless-ngx/paperless-ngx/pull/10212)) - Fix: fix some API crashes [@shamoon](https://github.com/shamoon) ([#10196](https://github.com/paperless-ngx/paperless-ngx/pull/10196)) - Fix: remove duplicate base path in websocket urls [@robertmx](https://github.com/robertmx) ([#10194](https://github.com/paperless-ngx/paperless-ngx/pull/10194)) - Fix: use hard delete for custom fields with workflow removal [@shamoon](https://github.com/shamoon) ([#10191](https://github.com/paperless-ngx/paperless-ngx/pull/10191)) - Feature: add Persian translation [@shamoon](https://github.com/shamoon) ([#10183](https://github.com/paperless-ngx/paperless-ngx/pull/10183)) - Enhancement: support import of zipped export [@kaerbr](https://github.com/kaerbr) ([#10073](https://github.com/paperless-ngx/paperless-ngx/pull/10073)) - Fix: fix mail account test api schema [@shamoon](https://github.com/shamoon) ([#10164](https://github.com/paperless-ngx/paperless-ngx/pull/10164)) - Fix: correct api schema for mail_account process [@shamoon](https://github.com/shamoon) ([#10157](https://github.com/paperless-ngx/paperless-ngx/pull/10157)) - Fix: correct api schema for next_asn [@shamoon](https://github.com/shamoon) ([#10151](https://github.com/paperless-ngx/paperless-ngx/pull/10151)) - Fix: fix email and notes endpoints api spec [@shamoon](https://github.com/shamoon) ([#10148](https://github.com/paperless-ngx/paperless-ngx/pull/10148))

## paperless-ngx 2.16.3

### Features / Enhancements

- Performance: pre-filter document list in scheduled workflow checks @shamoon (#10031)
- Chore: refactor consumer plugin checks to a pre-flight plugin @shamoon (#9994)
- Enhancement: include DOCUMENT_TYPE to post consume scripts @matthesrieke (#9977)

### Bug Fixes

- Fix: handle whoosh query correction errors @shamoon (#10121)
- Fix: handle favicon with non-default static dir @shamoon (#10107)
- Fixhancement: cleanup user or group references in settings upon deletion @shamoon (#10049)
- Fix: Add exception to in @Freilichtbuehne (#10070)
- Fix: include base href when opening global search result in new window @shamoon (#10066)

### Dependencies

10 changes
- Chore(deps): Bump the small-changes group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10085](https://github.com/paperless-ngx/paperless-ngx/pull/10085)) - Chore(deps): Update granian[uvloop] requirement from ~=2.2.0 to ~=2.3.2 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10055](https://github.com/paperless-ngx/paperless-ngx/pull/10055)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 18 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10099](https://github.com/paperless-ngx/paperless-ngx/pull/10099)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10100](https://github.com/paperless-ngx/paperless-ngx/pull/10100)) - Chore(deps): Bump bootstrap from 5.3.3 to 5.3.6 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10091](https://github.com/paperless-ngx/paperless-ngx/pull/10091)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.9.0 to 1.9.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10090](https://github.com/paperless-ngx/paperless-ngx/pull/10090)) - Chore(deps-dev): Bump @types/node from 22.15.3 to 22.15.29 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10089](https://github.com/paperless-ngx/paperless-ngx/pull/10089)) - Chore(deps): Bump zone.js from 0.15.0 to 0.15.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10088](https://github.com/paperless-ngx/paperless-ngx/pull/10088)) - docker(deps): bump astral-sh/uv from 0.7.8-python3.12-bookworm-slim to 0.7.9-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10084](https://github.com/paperless-ngx/paperless-ngx/pull/10084)) - docker(deps): Bump astral-sh/uv from 0.6.16-python3.12-bookworm-slim to 0.7.8-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10056](https://github.com/paperless-ngx/paperless-ngx/pull/10056))

### All App Changes

16 changes
- Fix: handle whoosh query correction errors [@shamoon](https://github.com/shamoon) ([#10121](https://github.com/paperless-ngx/paperless-ngx/pull/10121)) - Performance: pre-filter document list in scheduled workflow checks [@shamoon](https://github.com/shamoon) ([#10031](https://github.com/paperless-ngx/paperless-ngx/pull/10031)) - Chore(deps): Bump the small-changes group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10085](https://github.com/paperless-ngx/paperless-ngx/pull/10085)) - Chore: refactor consumer plugin checks to a pre-flight plugin [@shamoon](https://github.com/shamoon) ([#9994](https://github.com/paperless-ngx/paperless-ngx/pull/9994)) - Chore(deps): Update granian[uvloop] requirement from ~=2.2.0 to ~=2.3.2 @[dependabot[bot]](https://github.com/apps/dependabot) ([#10055](https://github.com/paperless-ngx/paperless-ngx/pull/10055)) - Fix: handle favicon with non-default static dir [@shamoon](https://github.com/shamoon) ([#10107](https://github.com/paperless-ngx/paperless-ngx/pull/10107)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 18 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10099](https://github.com/paperless-ngx/paperless-ngx/pull/10099)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10100](https://github.com/paperless-ngx/paperless-ngx/pull/10100)) - Chore(deps): Bump bootstrap from 5.3.3 to 5.3.6 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10091](https://github.com/paperless-ngx/paperless-ngx/pull/10091)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.9.0 to 1.9.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10090](https://github.com/paperless-ngx/paperless-ngx/pull/10090)) - Chore(deps-dev): Bump @types/node from 22.15.3 to 22.15.29 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10089](https://github.com/paperless-ngx/paperless-ngx/pull/10089)) - Chore(deps): Bump zone.js from 0.15.0 to 0.15.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10088](https://github.com/paperless-ngx/paperless-ngx/pull/10088)) - Fixhancement: cleanup user or group references in settings upon deletion [@shamoon](https://github.com/shamoon) ([#10049](https://github.com/paperless-ngx/paperless-ngx/pull/10049)) - Enhancement: include DOCUMENT_TYPE to post consume scripts [@matthesrieke](https://github.com/matthesrieke) ([#9977](https://github.com/paperless-ngx/paperless-ngx/pull/9977)) - Fix: Add exception to in [@Freilichtbuehne](https://github.com/Freilichtbuehne) ([#10070](https://github.com/paperless-ngx/paperless-ngx/pull/10070)) - Fix: include base href when opening global search result in new window [@shamoon](https://github.com/shamoon) ([#10066](https://github.com/paperless-ngx/paperless-ngx/pull/10066))

## paperless-ngx 2.16.2

### Bug Fixes

- Fix: accept datetime for created @shamoon (#10021)
- Fix: created date fixes in v2.16 @shamoon (#10026)
- Fix: mark fields for created objects as dirty @shamoon (#10022)
- Fix: add fallback to copyfile on PermissionError @samuel-kosmann (#10023)

### Dependencies

- Chore: warn users about removal of postgres v13 support @shamoon (#9980)

### All App Changes

5 changes
- Fix: accept datetime for created [@shamoon](https://github.com/shamoon) ([#10021](https://github.com/paperless-ngx/paperless-ngx/pull/10021)) - Fix: add fallback to copyfile on PermissionError @samuel-kosmann ([#10023](https://github.com/paperless-ngx/paperless-ngx/pull/10023)) - Fix: created date fixes in v2.16 [@shamoon](https://github.com/shamoon) ([#10026](https://github.com/paperless-ngx/paperless-ngx/pull/10026)) - Fix: mark fields for created objects as dirty [@shamoon](https://github.com/shamoon) ([#10022](https://github.com/paperless-ngx/paperless-ngx/pull/10022)) - Chore: warn users about removal of postgres v13 support [@shamoon](https://github.com/shamoon) ([#9980](https://github.com/paperless-ngx/paperless-ngx/pull/9980))

## paperless-ngx 2.16.1

### Bug Fixes

- Fix: fix created date filtering broken in 2.16.0 @shamoon (#9976)

### All App Changes

- Fix: fix created date filtering broken in 2.16.0 @shamoon (#9976)

## paperless-ngx 2.16.0

### Breaking Changes

- [BREAKING] Change: treat created as date not datetime @shamoon (#9793)

### Features

- Enhancement: support negative offset in scheduled workflows @shamoon (#9746)
- Enhancement: support heic images @shamoon (#9771)
- Enhancement: use patch instead of put for frontend document changes @shamoon (#9744)
- Fixhancement: automatically disable email verification if no smtp setup @shamoon (#9949)
- Fixhancement: better handle removed social apps in profile @shamoon (#9876)
- Enhancement: add barcode frontend config @shamoon (#9742)
- Enhancement: support allauth disable unknown account emails @shamoon (#9743)
- Fixhancement: tag plus button should add tag to doc @shamoon (#9762)
- Fixhancement: check more permissions for status consumer messages @shamoon (#9804)

### Bug Fixes

- Fix: include subpath in drf-spectacular settings if set @shamoon (#9738)
- Fix: handle created change with api version increment, use created only on frontend, deprecate created_date @shamoon (#9962)
- Fix: ignore logo file from sanity checker @shamoon (#9946)
- Fix: correctly handle empty user for old notes api format, fix frontend API version @shamoon (#9846)
- Fix: fix single select in filterable dropdowns when editing @shamoon (#9834)
- Fix: always update classifier task result @shamoon (#9817)
- Fix: fix zoom increase/decrease buttons in FF @shamoon (#9761)

### Maintenance

- Chore(deps): Bump astral-sh/setup-uv from 5 to 6 in the actions group @dependabot[bot] (#9842)
- Chore: split ci frontend e2e vs unit tests @shamoon (#9851)
- Chore: auto-generate translation strings @shamoon (#9462)
- Chore: add ymlfmt @shamoon (#9745)
- Chore: replace secretary with GHA @shamoon (#9723)
- Chore: resolve dynamic import warnings from pdfjs, again @shamoon (#9924)
- Fix/Chore: replace file drop package @shamoon (#9926)

### Dependencies

14 changes
- Chore(deps): Bump the small-changes group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9921](https://github.com/paperless-ngx/paperless-ngx/pull/9921)) - docker-compose(deps): Bump library/redis from 7 to 8 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#9879](https://github.com/paperless-ngx/paperless-ngx/pull/9879)) - Chore(deps): Bump astral-sh/setup-uv from 5 to 6 in the actions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9842](https://github.com/paperless-ngx/paperless-ngx/pull/9842)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 14 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9848](https://github.com/paperless-ngx/paperless-ngx/pull/9848)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9849](https://github.com/paperless-ngx/paperless-ngx/pull/9849)) - Chore(deps-dev): Bump @types/node from 22.13.17 to 22.15.3 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9850](https://github.com/paperless-ngx/paperless-ngx/pull/9850)) - docker(deps): Bump astral-sh/uv from 0.6.14-python3.12-bookworm-slim to 0.6.16-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#9767](https://github.com/paperless-ngx/paperless-ngx/pull/9767)) - docker-compose(deps): bump gotenberg/gotenberg from 8.19 to 8.20 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#9661](https://github.com/paperless-ngx/paperless-ngx/pull/9661)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 17 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9768](https://github.com/paperless-ngx/paperless-ngx/pull/9768)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9770](https://github.com/paperless-ngx/paperless-ngx/pull/9770)) - Chore(deps-dev): Bump jest-preset-angular from 14.5.4 to 14.5.5 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9769](https://github.com/paperless-ngx/paperless-ngx/pull/9769)) - Chore(deps): Bump the small-changes group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9764](https://github.com/paperless-ngx/paperless-ngx/pull/9764)) - Chore(deps): Bump the django group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9753](https://github.com/paperless-ngx/paperless-ngx/pull/9753)) - docker(deps): bump astral-sh/uv from 0.6.13-python3.12-bookworm-slim to 0.6.14-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#9656](https://github.com/paperless-ngx/paperless-ngx/pull/9656))

### All App Changes

29 changes
- Chore(deps): Bump the small-changes group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9921](https://github.com/paperless-ngx/paperless-ngx/pull/9921)) - Fix: handle created change with api version increment, use created only on frontend, deprecate created_date [@shamoon](https://github.com/shamoon) ([#9962](https://github.com/paperless-ngx/paperless-ngx/pull/9962)) - Fixhancement: automatically disable email verification if no smtp setup [@shamoon](https://github.com/shamoon) ([#9949](https://github.com/paperless-ngx/paperless-ngx/pull/9949)) - Fix: ignore logo file from sanity checker [@shamoon](https://github.com/shamoon) ([#9946](https://github.com/paperless-ngx/paperless-ngx/pull/9946)) - [BREAKING] Change: treat created as date not datetime [@shamoon](https://github.com/shamoon) ([#9793](https://github.com/paperless-ngx/paperless-ngx/pull/9793)) - Fix/Chore: replace file drop package [@shamoon](https://github.com/shamoon) ([#9926](https://github.com/paperless-ngx/paperless-ngx/pull/9926)) - Chore: resolve dynamic import warnings from pdfjs, again [@shamoon](https://github.com/shamoon) ([#9924](https://github.com/paperless-ngx/paperless-ngx/pull/9924)) - Enhancement: support negative offset in scheduled workflows [@shamoon](https://github.com/shamoon) ([#9746](https://github.com/paperless-ngx/paperless-ngx/pull/9746)) - Fixhancement: better handle removed social apps in profile [@shamoon](https://github.com/shamoon) ([#9876](https://github.com/paperless-ngx/paperless-ngx/pull/9876)) - Enhancement: add barcode frontend config [@shamoon](https://github.com/shamoon) ([#9742](https://github.com/paperless-ngx/paperless-ngx/pull/9742)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 14 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9848](https://github.com/paperless-ngx/paperless-ngx/pull/9848)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9849](https://github.com/paperless-ngx/paperless-ngx/pull/9849)) - Chore(deps-dev): Bump @types/node from 22.13.17 to 22.15.3 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9850](https://github.com/paperless-ngx/paperless-ngx/pull/9850)) - Fix: correctly handle empty user for old notes api format, fix frontend API version [@shamoon](https://github.com/shamoon) ([#9846](https://github.com/paperless-ngx/paperless-ngx/pull/9846)) - Fix: fix single select in filterable dropdowns when editing [@shamoon](https://github.com/shamoon) ([#9834](https://github.com/paperless-ngx/paperless-ngx/pull/9834)) - Fix: always update classifier task result [@shamoon](https://github.com/shamoon) ([#9817](https://github.com/paperless-ngx/paperless-ngx/pull/9817)) - Fixhancement: check more permissions for status consumer messages [@shamoon](https://github.com/shamoon) ([#9804](https://github.com/paperless-ngx/paperless-ngx/pull/9804)) - Enhancement: support heic images [@shamoon](https://github.com/shamoon) ([#9771](https://github.com/paperless-ngx/paperless-ngx/pull/9771)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 17 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9768](https://github.com/paperless-ngx/paperless-ngx/pull/9768)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9770](https://github.com/paperless-ngx/paperless-ngx/pull/9770)) - Chore(deps-dev): Bump jest-preset-angular from 14.5.4 to 14.5.5 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9769](https://github.com/paperless-ngx/paperless-ngx/pull/9769)) - Enhancement: support allauth disable unknown account emails [@shamoon](https://github.com/shamoon) ([#9743](https://github.com/paperless-ngx/paperless-ngx/pull/9743)) - Enhancement: use patch instead of put for frontend document changes [@shamoon](https://github.com/shamoon) ([#9744](https://github.com/paperless-ngx/paperless-ngx/pull/9744)) - Chore(deps): Bump the small-changes group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9764](https://github.com/paperless-ngx/paperless-ngx/pull/9764)) - Chore(deps): Bump the django group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9753](https://github.com/paperless-ngx/paperless-ngx/pull/9753)) - Fixhancement: tag plus button should add tag to doc [@shamoon](https://github.com/shamoon) ([#9762](https://github.com/paperless-ngx/paperless-ngx/pull/9762)) - Fix: fix zoom increase/decrease buttons in FF [@shamoon](https://github.com/shamoon) ([#9761](https://github.com/paperless-ngx/paperless-ngx/pull/9761)) - Chore: switch from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#9339](https://github.com/paperless-ngx/paperless-ngx/pull/9339)) - Fix: include subpath in drf-spectacular settings if set [@shamoon](https://github.com/shamoon) ([#9738](https://github.com/paperless-ngx/paperless-ngx/pull/9738))

## paperless-ngx 2.15.3

### Bug Fixes

- Fix: do not try deleting original file that was moved to trash dir @shamoon (#9684)
- Fix: preserve non-ASCII filenames in document downloads @shamoon (#9702)
- Fix: fix breaking api change to document notes user field @shamoon (#9714)
- Fix: another doc link fix @shamoon (#9700)
- Fix: correctly handle dict data with webhook @shamoon (#9674)

### All App Changes

5 changes
- Fix: do not try deleting original file that was moved to trash dir [@shamoon](https://github.com/shamoon) ([#9684](https://github.com/paperless-ngx/paperless-ngx/pull/9684)) - Fix: preserve non-ASCII filenames in document downloads [@shamoon](https://github.com/shamoon) ([#9702](https://github.com/paperless-ngx/paperless-ngx/pull/9702)) - Fix: fix breaking api change to document notes user field [@shamoon](https://github.com/shamoon) ([#9714](https://github.com/paperless-ngx/paperless-ngx/pull/9714)) - Fix: another doc link fix [@shamoon](https://github.com/shamoon) ([#9700](https://github.com/paperless-ngx/paperless-ngx/pull/9700)) - Fix: correctly handle dict data with webhook [@shamoon](https://github.com/shamoon) ([#9674](https://github.com/paperless-ngx/paperless-ngx/pull/9674))

## paperless-ngx 2.15.2

### Bug Fixes

- Fix: Adds better handling during folder checking/creation/permissions for non-root @stumpylog (#9616)
- Fix: Explicitly set the HOME environment to resolve issues running as root with database certificates @stumpylog (#9643)
- Fix: prevent self-linking when bulk edit doc link @shamoon (#9629)

### Dependencies

- Chore: Bump celery to 5.5.1 @hannesortmeier (#9642)

### All App Changes

4 changes
- Tweak: consistently use created date when displaying doc in list [@shamoon](https://github.com/shamoon) ([#9651](https://github.com/paperless-ngx/paperless-ngx/pull/9651)) - Fix: Adds better handling during folder checking/creation/permissions for non-root [@stumpylog](https://github.com/stumpylog) ([#9616](https://github.com/paperless-ngx/paperless-ngx/pull/9616)) - Fix: Explicitly set the HOME environment to resolve issues running as root with database certificates [@stumpylog](https://github.com/stumpylog) ([#9643](https://github.com/paperless-ngx/paperless-ngx/pull/9643)) - Fix: prevent self-linking when bulk edit doc link [@shamoon](https://github.com/shamoon) ([#9629](https://github.com/paperless-ngx/paperless-ngx/pull/9629))

## paperless-ngx 2.15.1

### Bug Fixes

- Fix: Run migration lock as the correct user @stumpylog (#9604)
- Fix: Adds a warning to the user if their secret file includes a trailing newline @stumpylog (#9601)
- Fix: correct download filename in 2.15.0 @shamoon (#9599)
- Fix: dont exclude matching check for scheduled workflows @shamoon (#9594)

### Maintenance

- docker(deps): Bump astral-sh/uv from 0.6.9-python3.12-bookworm-slim to 0.6.13-python3.12-bookworm-slim @dependabot[bot] (#9573)

### Dependencies

- docker(deps): Bump astral-sh/uv from 0.6.9-python3.12-bookworm-slim to 0.6.13-python3.12-bookworm-slim @dependabot[bot] (#9573)
- Chore: move to whoosh-reloaded, for now @shamoon (#9605)

### All App Changes

4 changes
- Fix: Run migration lock as the correct user [@stumpylog](https://github.com/stumpylog) ([#9604](https://github.com/paperless-ngx/paperless-ngx/pull/9604)) - Fix: Adds a warning to the user if their secret file includes a trailing newline [@stumpylog](https://github.com/stumpylog) ([#9601](https://github.com/paperless-ngx/paperless-ngx/pull/9601)) - Fix: correct download filename in 2.15.0 [@shamoon](https://github.com/shamoon) ([#9599](https://github.com/paperless-ngx/paperless-ngx/pull/9599)) - Fix: dont exclude matching check for scheduled workflows [@shamoon](https://github.com/shamoon) ([#9594](https://github.com/paperless-ngx/paperless-ngx/pull/9594))

## paperless-ngx 2.15.0

### Features

- Enhancement: allow webUI first account signup @shamoon (#9500)
- Enhancement: support more 'not assigned' filtering, refactor @shamoon (#9429)
- Enhancement: reorganize dates dropdown, add more relative options @shamoon (#9307)
- Enhancement: add switch to allow merging non-PDFs with archive version @shamoon (#9305)
- Enhancement: support assigning custom field values in workflows @shamoon (#9272)
- Enhancement: Add slugify filter in templating @hwaterke (#9269)
- Feature: Switch webserver to granian @stumpylog (#9218)
- Enhancement: relocate and smaller upload widget, dont limit upload list @shamoon (#9244)
- Enhancement: run tasks from system status, report sanity check, simpler classifier check, styling updates @shamoon (#9106)
- Enhancement: include celery log in logs view @shamoon (#9214)
- Enhancement: support default groups for regular and social account signup, syncing on login @shamoon (#9039)
- Enhancement: allow disabling the filesystem consumer @shamoon (#9199)
- Feature: email document @shamoon (#8950)
- Enhancement: webui workflowtrigger source option @shamoon (#9170)
- Enhancement: use charfield for webhook url, custom validation @shamoon (#9128)
- Feature: Chinese Traditional translation @LokiHung (#9076)
- Enhancement: Use cached sessions for a minor performance improvement @stumpylog (#9074)
- Feature: openapi spec, full api browser @shamoon (#8948)
- Enhancement: filter by file type @shamoon (#8946)
- Feature: Transition Docker to use s6 overlay @stumpylog (#8886)
- Feature: better toast notifications management @shamoon (#8980)
- Enhancement: date picker and date filter dropdown improvements @shamoon (#9033)
- Tweak: more accurate classifier last trained time @shamoon (#9004)
- Enhancement: allow setting default pdf zoom @shamoon (#9017)

### Bug Fixes

- Fix: ensure only matched scheduled workflows are applied @shamoon (#9580)
- Fix: fix large doc thumb hidden at unexpected screen sizes @shamoon (#9559)
- Fix: fix potential race condition when creating new cf from doc details @shamoon (#9542)
- Fix: fix doc link input @shamoon (#9533)
- Fix: only overwrite existing cf values in workflow if set @shamoon (#9459)
- Fix: fix auto-close when doc update no longer has permissions @shamoon (#9453)
- Change: better handle permissions in patch requests @shamoon (#9393)
- Fix: use correct filename with webhook @shamoon (#9392)
- Change: sync OIDC groups on first login too @shamoon (#9387)
- Fix: only parse custom field queries when valid @shamoon (#9384)
- Fix: Allow setting of other Granian options @stumpylog (#9360)
- Fix: Always clean up INotify @stumpylog (#9359)
- Fix typo in inactive account template @ocean90 (#9356)
- Fix: fix notes serializing in API document response @shamoon (#9336)
- Fix: correct all results with whoosh queries @shamoon (#9331)
- Fix: fix typo in altered migration @gothicVI (#9321)
- Fix: add account_inactive template / url @shamoon (#9322)
- Fix: Switches data to content to upload raw bytes/text content @stumpylog (#9293)
- Fix: handle null workflow body and email subject @shamoon (#9271)
- Fix: cleanup saved view references on custom field deletion, auto-refresh views, show error on saved view save @shamoon (#9225)
- Fix: revert thumbnail CSS workaround in favor of GPU workaround @shamoon (#9219)
- Fix: correct split confirm removal @shamoon (#9195)
- Fix: saved views do not return to default display fields after setting and then removing @shamoon (#9168)
- Fix: correct logged number of deleted documents on trash empty @shamoon (#9148)
- Fix: include account confirm email allauth URL @shamoon (#9147)
- Fix: remove additional scrollbar from popup preview @shamoon (#9140)
- Fix: wrap selected display fields @shamoon (#9139)
- Fix: reset documents sort field if user deletes the custom field @shamoon (#9127)
- Fix: limit document title length in workflows @shamoon (#9085)
- Fix: include doc link input import in custom fields query dropdown @shamoon (#9058)
- Fix: deselect and trigger refresh for deleted documents from bulk operations with delete originals @shamoon (#8996)
- Fix: allow empty email in profile @shamoon (#9012)

### Maintenance

- docker(deps): Bump astral-sh/uv from 0.6.5-python3.12-bookworm-slim to 0.6.9-python3.12-bookworm-slim @dependabot[bot] (#9488)
- Chore: Enables dependabot for Dockerfile and our Compose files @stumpylog (#9342)
- Chore: ensure codecov upload gets attempted @shamoon (#9308)
- Chore: Split out some items into extras @stumpylog (#9297)
- Chore: Enables Codecov test reporting for the backend @stumpylog (#9295)
- Chore: Combine Python settings files @stumpylog (#9292)

### Dependencies

43 changes
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9536](https://github.com/paperless-ngx/paperless-ngx/pull/9536)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9538](https://github.com/paperless-ngx/paperless-ngx/pull/9538)) - Chore(deps-dev): Bump @types/node from 22.13.9 to 22.13.17 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9539](https://github.com/paperless-ngx/paperless-ngx/pull/9539)) - Chore(deps-dev): Bump jest-preset-angular from 14.5.3 to 14.5.4 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9537](https://github.com/paperless-ngx/paperless-ngx/pull/9537)) - Chore(deps-dev): Bump @playwright/test from 1.50.1 to 1.51.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9540](https://github.com/paperless-ngx/paperless-ngx/pull/9540)) - Chore(deps): Bump django from 5.1.6 to 5.1.7 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9486](https://github.com/paperless-ngx/paperless-ngx/pull/9486)) - docker(deps): Bump astral-sh/uv from 0.6.5-python3.12-bookworm-slim to 0.6.9-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#9488](https://github.com/paperless-ngx/paperless-ngx/pull/9488)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9372](https://github.com/paperless-ngx/paperless-ngx/pull/9372)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9371](https://github.com/paperless-ngx/paperless-ngx/pull/9371)) - Chore(deps): Update ocrmypdf requirement from ~=16.9.0 to ~=16.10.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#9348](https://github.com/paperless-ngx/paperless-ngx/pull/9348)) - Chore(deps): Update drf-spectacular-sidecar requirement from ~=2025.2.1 to ~=2025.3.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#9347](https://github.com/paperless-ngx/paperless-ngx/pull/9347)) - Chore(deps): Bump the small-changes group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9345](https://github.com/paperless-ngx/paperless-ngx/pull/9345)) - docker-compose(deps): Bump library/postgres from 16 to 17 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#9353](https://github.com/paperless-ngx/paperless-ngx/pull/9353)) - docker(deps): Bump astral-sh/uv from 0.6.3-python3.12-bookworm-slim to 0.6.5-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#9344](https://github.com/paperless-ngx/paperless-ngx/pull/9344)) - Chore(deps-dev): Bump the frontend-angular-dependencies group in /src-ui with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9288](https://github.com/paperless-ngx/paperless-ngx/pull/9288)) - Chore(deps-dev): Bump @types/node from 22.13.8 to 22.13.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9290](https://github.com/paperless-ngx/paperless-ngx/pull/9290)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9289](https://github.com/paperless-ngx/paperless-ngx/pull/9289)) - Chore(deps-dev): Bump @types/node from 22.13.5 to 22.13.8 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9267](https://github.com/paperless-ngx/paperless-ngx/pull/9267)) - Chore(deps): Bump stumpylog/image-cleaner-action from 0.9.0 to 0.10.0 in the actions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9252](https://github.com/paperless-ngx/paperless-ngx/pull/9252)) - Chore(deps-dev): Bump the development group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9253](https://github.com/paperless-ngx/paperless-ngx/pull/9253)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.8.0 to 1.9.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9260](https://github.com/paperless-ngx/paperless-ngx/pull/9260)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9256](https://github.com/paperless-ngx/paperless-ngx/pull/9256)) - Chore(deps): Bump uuid from 11.0.5 to 11.1.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9259](https://github.com/paperless-ngx/paperless-ngx/pull/9259)) - Chore(deps-dev): Bump jest-preset-angular from 14.5.1 to 14.5.3 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9255](https://github.com/paperless-ngx/paperless-ngx/pull/9255)) - Chore(deps): Bump rxjs from 7.8.1 to 7.8.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9258](https://github.com/paperless-ngx/paperless-ngx/pull/9258)) - Chore(deps-dev): Bump @types/node from 22.13.0 to 22.13.5 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9257](https://github.com/paperless-ngx/paperless-ngx/pull/9257)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 22 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9254](https://github.com/paperless-ngx/paperless-ngx/pull/9254)) - Chore(deps): Bump django-filter from 24.3 to 25.1 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9143](https://github.com/paperless-ngx/paperless-ngx/pull/9143)) - Chore(deps-dev): Bump mkdocs-material from 9.6.3 to 9.6.4 in the development group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9142](https://github.com/paperless-ngx/paperless-ngx/pull/9142)) - Dependencies: Updates to jbig2enc 0.30 [@stumpylog](https://github.com/stumpylog) ([#9092](https://github.com/paperless-ngx/paperless-ngx/pull/9092)) - Chore(deps): Bump cryptography from 44.0.0 to 44.0.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#9080](https://github.com/paperless-ngx/paperless-ngx/pull/9080)) - Chore(deps): Bump the small-changes group with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9064](https://github.com/paperless-ngx/paperless-ngx/pull/9064)) - Chore(deps-dev): Bump the development group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9061](https://github.com/paperless-ngx/paperless-ngx/pull/9061)) - Chore(deps): Bump the django group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9065](https://github.com/paperless-ngx/paperless-ngx/pull/9065)) - Chore(deps): Bump drf-spectacular-sidecar from 2024.11.1 to 2025.2.1 in the major-versions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9063](https://github.com/paperless-ngx/paperless-ngx/pull/9063)) - Chore(deps-dev): Bump the development group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9013](https://github.com/paperless-ngx/paperless-ngx/pull/9013)) - Chore(deps): Bump django-soft-delete from 1.0.16 to 1.0.18 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9014](https://github.com/paperless-ngx/paperless-ngx/pull/9014)) - Chore(deps): Bump uuid from 11.0.2 to 11.0.5 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8992](https://github.com/paperless-ngx/paperless-ngx/pull/8992)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.2.1 to 1.8.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8991](https://github.com/paperless-ngx/paperless-ngx/pull/8991)) - Chore(deps-dev): Bump @playwright/test from 1.48.2 to 1.50.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8993](https://github.com/paperless-ngx/paperless-ngx/pull/8993)) - Chore(deps-dev): Bump @types/node from 22.8.6 to 22.13.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8989](https://github.com/paperless-ngx/paperless-ngx/pull/8989)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#8988](https://github.com/paperless-ngx/paperless-ngx/pull/8988)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 23 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#8986](https://github.com/paperless-ngx/paperless-ngx/pull/8986))

### All App Changes

109 changes
- Fix: ensure only matched scheduled workflows are applied [@shamoon](https://github.com/shamoon) ([#9580](https://github.com/paperless-ngx/paperless-ngx/pull/9580)) - Fix: fix large doc thumb hidden at unexpected screen sizes [@shamoon](https://github.com/shamoon) ([#9559](https://github.com/paperless-ngx/paperless-ngx/pull/9559)) - Fix: fix potential race condition when creating new cf from doc details [@shamoon](https://github.com/shamoon) ([#9542](https://github.com/paperless-ngx/paperless-ngx/pull/9542)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9536](https://github.com/paperless-ngx/paperless-ngx/pull/9536)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9538](https://github.com/paperless-ngx/paperless-ngx/pull/9538)) - Chore(deps-dev): Bump @types/node from 22.13.9 to 22.13.17 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9539](https://github.com/paperless-ngx/paperless-ngx/pull/9539)) - Chore(deps-dev): Bump jest-preset-angular from 14.5.3 to 14.5.4 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9537](https://github.com/paperless-ngx/paperless-ngx/pull/9537)) - Chore(deps-dev): Bump @playwright/test from 1.50.1 to 1.51.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9540](https://github.com/paperless-ngx/paperless-ngx/pull/9540)) - Fix: fix doc link input [@shamoon](https://github.com/shamoon) ([#9533](https://github.com/paperless-ngx/paperless-ngx/pull/9533)) - Enhancement: allow webUI first account signup [@shamoon](https://github.com/shamoon) ([#9500](https://github.com/paperless-ngx/paperless-ngx/pull/9500)) - Fix: fix cf dropdown placement on mobile [@shamoon](https://github.com/shamoon) ([#9508](https://github.com/paperless-ngx/paperless-ngx/pull/9508)) - Chore(deps): Bump django from 5.1.6 to 5.1.7 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9486](https://github.com/paperless-ngx/paperless-ngx/pull/9486)) - Fix: only overwrite existing cf values in workflow if set [@shamoon](https://github.com/shamoon) ([#9459](https://github.com/paperless-ngx/paperless-ngx/pull/9459)) - Fix: fix auto-close when doc update no longer has permissions [@shamoon](https://github.com/shamoon) ([#9453](https://github.com/paperless-ngx/paperless-ngx/pull/9453)) - Enhancement: support more 'not assigned' filtering, refactor [@shamoon](https://github.com/shamoon) ([#9429](https://github.com/paperless-ngx/paperless-ngx/pull/9429)) - Change: better handle permissions in patch requests [@shamoon](https://github.com/shamoon) ([#9393](https://github.com/paperless-ngx/paperless-ngx/pull/9393)) - Fix: use correct filename with webhook [@shamoon](https://github.com/shamoon) ([#9392](https://github.com/paperless-ngx/paperless-ngx/pull/9392)) - Change: sync OIDC groups on first login too [@shamoon](https://github.com/shamoon) ([#9387](https://github.com/paperless-ngx/paperless-ngx/pull/9387)) - Fix: only parse custom field queries when valid [@shamoon](https://github.com/shamoon) ([#9384](https://github.com/paperless-ngx/paperless-ngx/pull/9384)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9372](https://github.com/paperless-ngx/paperless-ngx/pull/9372)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9371](https://github.com/paperless-ngx/paperless-ngx/pull/9371)) - Development: change frontend package manager to pnpm [@shamoon](https://github.com/shamoon) ([#9363](https://github.com/paperless-ngx/paperless-ngx/pull/9363)) - Fix: Allow setting of other Granian options [@stumpylog](https://github.com/stumpylog) ([#9360](https://github.com/paperless-ngx/paperless-ngx/pull/9360)) - Fix: Always clean up INotify [@stumpylog](https://github.com/stumpylog) ([#9359](https://github.com/paperless-ngx/paperless-ngx/pull/9359)) - Tweak: add saved views hint to dashboard [@shamoon](https://github.com/shamoon) ([#9362](https://github.com/paperless-ngx/paperless-ngx/pull/9362)) - Chore(deps): Update ocrmypdf requirement from ~=16.9.0 to ~=16.10.0 @[dependabot[bot]](https://github.com/apps/dependabot) ([#9348](https://github.com/paperless-ngx/paperless-ngx/pull/9348)) - Chore(deps): Update drf-spectacular-sidecar requirement from ~=2025.2.1 to ~=2025.3.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#9347](https://github.com/paperless-ngx/paperless-ngx/pull/9347)) - Chore(deps): Bump the small-changes group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9345](https://github.com/paperless-ngx/paperless-ngx/pull/9345)) - Ensure the directories have been overridden and created for this test [@stumpylog](https://github.com/stumpylog) ([#9354](https://github.com/paperless-ngx/paperless-ngx/pull/9354)) - Fix typo in inactive account template [@ocean90](https://github.com/ocean90) ([#9356](https://github.com/paperless-ngx/paperless-ngx/pull/9356)) - Fix: fix notes serializing in API document response [@shamoon](https://github.com/shamoon) ([#9336](https://github.com/paperless-ngx/paperless-ngx/pull/9336)) - Fix: correct all results with whoosh queries [@shamoon](https://github.com/shamoon) ([#9331](https://github.com/paperless-ngx/paperless-ngx/pull/9331)) - Fix: fix typo in altered migration [@gothicVI](https://github.com/gothicVI) ([#9321](https://github.com/paperless-ngx/paperless-ngx/pull/9321)) - Fix: add account_inactive template / url [@shamoon](https://github.com/shamoon) ([#9322](https://github.com/paperless-ngx/paperless-ngx/pull/9322)) - Chore: Switch from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#9060](https://github.com/paperless-ngx/paperless-ngx/pull/9060)) - Enhancement: reorganize dates dropdown, add more relative options [@shamoon](https://github.com/shamoon) ([#9307](https://github.com/paperless-ngx/paperless-ngx/pull/9307)) - Chore: remove popper preventOverflow fix [@shamoon](https://github.com/shamoon) ([#9306](https://github.com/paperless-ngx/paperless-ngx/pull/9306)) - Enhancement: add switch to allow merging non-PDFs with archive version [@shamoon](https://github.com/shamoon) ([#9305](https://github.com/paperless-ngx/paperless-ngx/pull/9305)) - Enhancement: support assigning custom field values in workflows [@shamoon](https://github.com/shamoon) ([#9272](https://github.com/paperless-ngx/paperless-ngx/pull/9272)) - Chore: add codecov frontend test results [@shamoon](https://github.com/shamoon) ([#9296](https://github.com/paperless-ngx/paperless-ngx/pull/9296)) - Chore: Removes undocumented FileInfo [@stumpylog](https://github.com/stumpylog) ([#9298](https://github.com/paperless-ngx/paperless-ngx/pull/9298)) - Chore(deps-dev): Bump the frontend-angular-dependencies group in /src-ui with 5 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9288](https://github.com/paperless-ngx/paperless-ngx/pull/9288)) - Fix: Switches data to content to upload raw bytes/text content [@stumpylog](https://github.com/stumpylog) ([#9293](https://github.com/paperless-ngx/paperless-ngx/pull/9293)) - Chore: Removes the unused Log model and LogFilterSet [@stumpylog](https://github.com/stumpylog) ([#9294](https://github.com/paperless-ngx/paperless-ngx/pull/9294)) - Chore: Combine Python settings files [@stumpylog](https://github.com/stumpylog) ([#9292](https://github.com/paperless-ngx/paperless-ngx/pull/9292)) - Chore(deps-dev): Bump @types/node from 22.13.8 to 22.13.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9290](https://github.com/paperless-ngx/paperless-ngx/pull/9290)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9289](https://github.com/paperless-ngx/paperless-ngx/pull/9289)) - Chore: Switch from pipenv to uv [@stumpylog](https://github.com/stumpylog) ([#9251](https://github.com/paperless-ngx/paperless-ngx/pull/9251)) - Enhancement: Add slugify filter in templating [@hwaterke](https://github.com/hwaterke) ([#9269](https://github.com/paperless-ngx/paperless-ngx/pull/9269)) - Fix: handle null workflow body and email subject [@shamoon](https://github.com/shamoon) ([#9271](https://github.com/paperless-ngx/paperless-ngx/pull/9271)) - Chore(deps-dev): Bump @types/node from 22.13.5 to 22.13.8 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9267](https://github.com/paperless-ngx/paperless-ngx/pull/9267)) - Chore(deps-dev): Bump the development group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9253](https://github.com/paperless-ngx/paperless-ngx/pull/9253)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.8.0 to 1.9.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9260](https://github.com/paperless-ngx/paperless-ngx/pull/9260)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9256](https://github.com/paperless-ngx/paperless-ngx/pull/9256)) - Chore(deps): Bump uuid from 11.0.5 to 11.1.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9259](https://github.com/paperless-ngx/paperless-ngx/pull/9259)) - Chore(deps-dev): Bump jest-preset-angular from 14.5.1 to 14.5.3 in /src-ui in the frontend-jest-dependencies group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9255](https://github.com/paperless-ngx/paperless-ngx/pull/9255)) - Chore(deps): Bump rxjs from 7.8.1 to 7.8.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9258](https://github.com/paperless-ngx/paperless-ngx/pull/9258)) - Chore(deps-dev): Bump @types/node from 22.13.0 to 22.13.5 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#9257](https://github.com/paperless-ngx/paperless-ngx/pull/9257)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 22 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9254](https://github.com/paperless-ngx/paperless-ngx/pull/9254)) - Feature: Switch webserver to granian [@stumpylog](https://github.com/stumpylog) ([#9218](https://github.com/paperless-ngx/paperless-ngx/pull/9218)) - Enhancement: relocate and smaller upload widget, dont limit upload list [@shamoon](https://github.com/shamoon) ([#9244](https://github.com/paperless-ngx/paperless-ngx/pull/9244)) - Enhancement: run tasks from system status, report sanity check, simpler classifier check, styling updates [@shamoon](https://github.com/shamoon) ([#9106](https://github.com/paperless-ngx/paperless-ngx/pull/9106)) - Chore: Switch remote version check to HTTPx [@stumpylog](https://github.com/stumpylog) ([#9232](https://github.com/paperless-ngx/paperless-ngx/pull/9232)) - Fix: cleanup saved view references on custom field deletion, auto-refresh views, show error on saved view save [@shamoon](https://github.com/shamoon) ([#9225](https://github.com/paperless-ngx/paperless-ngx/pull/9225)) - Fix: revert thumbnail CSS workaround in favor of GPU workaround [@shamoon](https://github.com/shamoon) ([#9219](https://github.com/paperless-ngx/paperless-ngx/pull/9219)) - Chore: Reduce imports for a slight memory improvement [@stumpylog](https://github.com/stumpylog) ([#9217](https://github.com/paperless-ngx/paperless-ngx/pull/9217)) - Enhancement: include celery log in logs view [@shamoon](https://github.com/shamoon) ([#9214](https://github.com/paperless-ngx/paperless-ngx/pull/9214)) - Enhancement: support default groups for regular and social account signup, syncing on login [@shamoon](https://github.com/shamoon) ([#9039](https://github.com/paperless-ngx/paperless-ngx/pull/9039)) - Enhancement: allow disabling the filesystem consumer [@shamoon](https://github.com/shamoon) ([#9199](https://github.com/paperless-ngx/paperless-ngx/pull/9199)) - Fix: correct split confirm removal [@shamoon](https://github.com/shamoon) ([#9195](https://github.com/paperless-ngx/paperless-ngx/pull/9195)) - Feature: email document [@shamoon](https://github.com/shamoon) ([#8950](https://github.com/paperless-ngx/paperless-ngx/pull/8950)) - Enhancement: webui workflowtrigger source option [@shamoon](https://github.com/shamoon) ([#9170](https://github.com/paperless-ngx/paperless-ngx/pull/9170)) - Fix: saved views do not return to default display fields after setting and then removing [@shamoon](https://github.com/shamoon) ([#9168](https://github.com/paperless-ngx/paperless-ngx/pull/9168)) - Chore(deps): Bump django-filter from 24.3 to 25.1 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9143](https://github.com/paperless-ngx/paperless-ngx/pull/9143)) - Chore(deps-dev): Bump mkdocs-material from 9.6.3 to 9.6.4 in the development group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9142](https://github.com/paperless-ngx/paperless-ngx/pull/9142)) - Fix: correct logged number of deleted documents on trash empty [@shamoon](https://github.com/shamoon) ([#9148](https://github.com/paperless-ngx/paperless-ngx/pull/9148)) - Fix: include account confirm email allauth URL [@shamoon](https://github.com/shamoon) ([#9147](https://github.com/paperless-ngx/paperless-ngx/pull/9147)) - Fix: remove additional scrollbar from popup preview [@shamoon](https://github.com/shamoon) ([#9140](https://github.com/paperless-ngx/paperless-ngx/pull/9140)) - Fix: wrap selected display fields [@shamoon](https://github.com/shamoon) ([#9139](https://github.com/paperless-ngx/paperless-ngx/pull/9139)) - Enhancement: use charfield for webhook url, custom validation [@shamoon](https://github.com/shamoon) ([#9128](https://github.com/paperless-ngx/paperless-ngx/pull/9128)) - Fix: reset documents sort field if user deletes the custom field [@shamoon](https://github.com/shamoon) ([#9127](https://github.com/paperless-ngx/paperless-ngx/pull/9127)) - Chore: more efficient select cf update handler [@shamoon](https://github.com/shamoon) ([#9099](https://github.com/paperless-ngx/paperless-ngx/pull/9099)) - Fix: limit document title length in workflows [@shamoon](https://github.com/shamoon) ([#9085](https://github.com/paperless-ngx/paperless-ngx/pull/9085)) - Feature: Chinese Traditional translation [@LokiHung](https://github.com/LokiHung) ([#9076](https://github.com/paperless-ngx/paperless-ngx/pull/9076)) - Enhancement: Use cached sessions for a minor performance improvement [@stumpylog](https://github.com/stumpylog) ([#9074](https://github.com/paperless-ngx/paperless-ngx/pull/9074)) - Chore(deps): Bump the small-changes group with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9064](https://github.com/paperless-ngx/paperless-ngx/pull/9064)) - Chore(deps-dev): Bump the development group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9061](https://github.com/paperless-ngx/paperless-ngx/pull/9061)) - Chore(deps): Bump the django group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9065](https://github.com/paperless-ngx/paperless-ngx/pull/9065)) - Chore(deps): Bump drf-spectacular-sidecar from 2024.11.1 to 2025.2.1 in the major-versions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9063](https://github.com/paperless-ngx/paperless-ngx/pull/9063)) - Feature: openapi spec, full api browser [@shamoon](https://github.com/shamoon) ([#8948](https://github.com/paperless-ngx/paperless-ngx/pull/8948)) - Fix: include doc link input import in custom fields query dropdown [@shamoon](https://github.com/shamoon) ([#9058](https://github.com/paperless-ngx/paperless-ngx/pull/9058)) - Enhancement: filter by file type [@shamoon](https://github.com/shamoon) ([#8946](https://github.com/paperless-ngx/paperless-ngx/pull/8946)) - Enhancement: add layout options for email conversion [@RazielleS](https://github.com/RazielleS) ([#8907](https://github.com/paperless-ngx/paperless-ngx/pull/8907)) - Chore: Enable ruff FBT [@gothicVI](https://github.com/gothicVI) ([#8645](https://github.com/paperless-ngx/paperless-ngx/pull/8645)) - Feature: better toast notifications management [@shamoon](https://github.com/shamoon) ([#8980](https://github.com/paperless-ngx/paperless-ngx/pull/8980)) - Enhancement: date picker and date filter dropdown improvements [@shamoon](https://github.com/shamoon) ([#9033](https://github.com/paperless-ngx/paperless-ngx/pull/9033)) - Fix: deselect and trigger refresh for deleted documents from bulk operations with delete originals [@shamoon](https://github.com/shamoon) ([#8996](https://github.com/paperless-ngx/paperless-ngx/pull/8996)) - Tweak: improve date matching regex for dates after numbers [@XstreamGit](https://github.com/XstreamGit) ([#8964](https://github.com/paperless-ngx/paperless-ngx/pull/8964)) - Tweak: more accurate classifier last trained time [@shamoon](https://github.com/shamoon) ([#9004](https://github.com/paperless-ngx/paperless-ngx/pull/9004)) - Enhancement: allow setting default pdf zoom [@shamoon](https://github.com/shamoon) ([#9017](https://github.com/paperless-ngx/paperless-ngx/pull/9017)) - Chore(deps-dev): Bump the development group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#9013](https://github.com/paperless-ngx/paperless-ngx/pull/9013)) - Chore(deps): Bump django-soft-delete from 1.0.16 to 1.0.18 in the django group @[dependabot[bot]](https://github.com/apps/dependabot) ([#9014](https://github.com/paperless-ngx/paperless-ngx/pull/9014)) - Fix: allow empty email in profile [@shamoon](https://github.com/shamoon) ([#9012](https://github.com/paperless-ngx/paperless-ngx/pull/9012)) - Chore(deps): Bump uuid from 11.0.2 to 11.0.5 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8992](https://github.com/paperless-ngx/paperless-ngx/pull/8992)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.2.1 to 1.8.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8991](https://github.com/paperless-ngx/paperless-ngx/pull/8991)) - Chore(deps-dev): Bump @playwright/test from 1.48.2 to 1.50.1 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8993](https://github.com/paperless-ngx/paperless-ngx/pull/8993)) - Chore(deps-dev): Bump @types/node from 22.8.6 to 22.13.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8989](https://github.com/paperless-ngx/paperless-ngx/pull/8989)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#8988](https://github.com/paperless-ngx/paperless-ngx/pull/8988)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 23 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#8986](https://github.com/paperless-ngx/paperless-ngx/pull/8986))

## paperless-ngx 2.14.7

### Features

- Enhancement: require totp code for obtain auth token by @shamoon #8936

### Bug Fixes

- Enhancement: require totp code for obtain auth token by @shamoon #8936
- Fix: reflect doc links in bulk modify custom fields by @shamoon #8962
- Fix: also ensure symmetric doc link removal on bulk edit by @shamoon #8963

### All App Changes

4 changes
- Chore(deps-dev): Bump ruff from 0.9.2 to 0.9.3 in the development group by @[dependabot[bot]](https://github.com/apps/dependabot) [#8928](https://github.com/paperless-ngx/paperless-ngx/pull/8928) - Enhancement: require totp code for obtain auth token by [@shamoon](https://github.com/shamoon) [#8936](https://github.com/paperless-ngx/paperless-ngx/pull/8936) - Fix: reflect doc links in bulk modify custom fields by [@shamoon](https://github.com/shamoon) [#8962](https://github.com/paperless-ngx/paperless-ngx/pull/8962) - Fix: also ensure symmetric doc link removal on bulk edit by [@shamoon](https://github.com/shamoon) [#8963](https://github.com/paperless-ngx/paperless-ngx/pull/8963)

## paperless-ngx 2.14.6

### Bug Fixes

- Fix: backwards-compatible versioned API response for custom field select fields, update default API version @shamoon (#8912)
- Tweak: place items with 0 documents at bottom of filterable list, retain alphabetical @shamoon (#8924)
- Fix: set larger page size for abstract service getFew @shamoon (#8920)
- Fix/refactor: remove doc observables, fix username async @shamoon (#8908)
- Fix: include missing fields for saved view widgets @shamoon (#8905)
- Fix: force set document not dirty before close after save @shamoon (#8888)
- Fixhancement: restore search highlighting and add for built-in viewer @shamoon (#8885)
- Fix: resolve cpu usage due to incorrect interval use @shamoon (#8884)

### All App Changes

10 changes
- Fix: backwards-compatible versioned API response for custom field select fields, update default API version [@shamoon](https://github.com/shamoon) ([#8912](https://github.com/paperless-ngx/paperless-ngx/pull/8912)) - Tweak: place items with 0 documents at bottom of filterable list, retain alphabetical [@shamoon](https://github.com/shamoon) ([#8924](https://github.com/paperless-ngx/paperless-ngx/pull/8924)) - Fix: set larger page size for abstract service getFew [@shamoon](https://github.com/shamoon) ([#8920](https://github.com/paperless-ngx/paperless-ngx/pull/8920)) - Fix/refactor: remove doc observables, fix username async [@shamoon](https://github.com/shamoon) ([#8908](https://github.com/paperless-ngx/paperless-ngx/pull/8908)) - Fix: include missing fields for saved view widgets [@shamoon](https://github.com/shamoon) ([#8905](https://github.com/paperless-ngx/paperless-ngx/pull/8905)) - Chore: Upgrades dependencies and hook versions [@stumpylog](https://github.com/stumpylog) ([#8895](https://github.com/paperless-ngx/paperless-ngx/pull/8895)) - Fix: force set document not dirty before close after save [@shamoon](https://github.com/shamoon) ([#8888](https://github.com/paperless-ngx/paperless-ngx/pull/8888)) - Change: Revert dropdown sorting by doc count [@shamoon](https://github.com/shamoon) ([#8887](https://github.com/paperless-ngx/paperless-ngx/pull/8887)) - Fixhancement: restore search highlighting and add for built-in viewer [@shamoon](https://github.com/shamoon) ([#8885](https://github.com/paperless-ngx/paperless-ngx/pull/8885)) - Fix: resolve cpu usage due to incorrect interval use [@shamoon](https://github.com/shamoon) ([#8884](https://github.com/paperless-ngx/paperless-ngx/pull/8884))

## paperless-ngx 2.14.5

### Features

- Change: restrict altering and creation of superusers to superusers only @shamoon (#8837)

### Bug Fixes

- Fix: fix long tag visual wrapping @shamoon (#8833)
- Fix: Enforce classifier training ordering to prevent extra training @stumpylog (#8822)
- Fix: import router module to not found component @shamoon (#8821)
- Fix: better reflect some mail account / rule permissions in UI @shamoon (#8812)

### Dependencies

- Chore(deps-dev): Bump undici from 5.28.4 to 5.28.5 in /src-ui @dependabot[bot] (#8851)
- Chore(deps-dev): Bump the development group with 2 updates @dependabot[bot] (#8841)

### All App Changes

9 changes
- Chore(deps-dev): Bump undici from 5.28.4 to 5.28.5 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#8851](https://github.com/paperless-ngx/paperless-ngx/pull/8851)) - Chore(deps-dev): Bump the development group with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#8841](https://github.com/paperless-ngx/paperless-ngx/pull/8841)) - Chore: use simpler method for attaching files to emails [@shamoon](https://github.com/shamoon) ([#8845](https://github.com/paperless-ngx/paperless-ngx/pull/8845)) - Change: restrict altering and creation of superusers to superusers only [@shamoon](https://github.com/shamoon) ([#8837](https://github.com/paperless-ngx/paperless-ngx/pull/8837)) - Fix: fix long tag visual wrapping [@shamoon](https://github.com/shamoon) ([#8833](https://github.com/paperless-ngx/paperless-ngx/pull/8833)) - Change: allow generate auth token without a usable password [@shamoon](https://github.com/shamoon) ([#8824](https://github.com/paperless-ngx/paperless-ngx/pull/8824)) - Fix: Enforce classifier training ordering to prevent extra training [@stumpylog](https://github.com/stumpylog) ([#8822](https://github.com/paperless-ngx/paperless-ngx/pull/8822)) - Fix: import router module to not found component [@shamoon](https://github.com/shamoon) ([#8821](https://github.com/paperless-ngx/paperless-ngx/pull/8821)) - Fix: better reflect some mail account / rule permissions in UI [@shamoon](https://github.com/shamoon) ([#8812](https://github.com/paperless-ngx/paperless-ngx/pull/8812))

## paperless-ngx 2.14.4

### Features

- Enhancement: allow specifying JSON encoding for webhooks @shamoon (#8799)
- Change: disable API basic auth if MFA enabled @shamoon (#8792)

### Bug Fixes

- Fix: Include email and webhook objects in the export @stumpylog (#8790)
- Fix: use MIMEBase for email attachments @shamoon (#8762)
- Fix: handle page out of range in mgmt lists after delete @shamoon (#8771)

### All App Changes

5 changes
- Enhancement: allow specifying JSON encoding for webhooks [@shamoon](https://github.com/shamoon) ([#8799](https://github.com/paperless-ngx/paperless-ngx/pull/8799)) - Change: disable API basic auth if MFA enabled [@shamoon](https://github.com/shamoon) ([#8792](https://github.com/paperless-ngx/paperless-ngx/pull/8792)) - Fix: Include email and webhook objects in the export [@stumpylog](https://github.com/stumpylog) ([#8790](https://github.com/paperless-ngx/paperless-ngx/pull/8790)) - Fix: use MIMEBase for email attachments [@shamoon](https://github.com/shamoon) ([#8762](https://github.com/paperless-ngx/paperless-ngx/pull/8762)) - Fix: handle page out of range in mgmt lists after delete [@shamoon](https://github.com/shamoon) ([#8771](https://github.com/paperless-ngx/paperless-ngx/pull/8771))

## paperless-ngx 2.14.3

### Bug Fixes

- Fix: Adds a default 30s timeout for emails, instead of no timeout @stumpylog (#8757)
- Fix: import forms modules for entries component @shamoon (#8752)
- Fix: fix email/wh actions on consume started @shamoon (#8750)
- Fix: import date picker module in cf query dropdown @shamoon (#8749)

### All App Changes

5 changes
- Fix: Adds a default 30s timeout for emails, instead of no timeout [@stumpylog](https://github.com/stumpylog) ([#8757](https://github.com/paperless-ngx/paperless-ngx/pull/8757)) - Enhancement: set autofocus on MFA code field [@mxmehl](https://github.com/mxmehl) ([#8756](https://github.com/paperless-ngx/paperless-ngx/pull/8756)) - Fix: import forms modules for entries component [@shamoon](https://github.com/shamoon) ([#8752](https://github.com/paperless-ngx/paperless-ngx/pull/8752)) - Fix: fix email/wh actions on consume started [@shamoon](https://github.com/shamoon) ([#8750](https://github.com/paperless-ngx/paperless-ngx/pull/8750)) - Fix: import date picker module in cf query dropdown [@shamoon](https://github.com/shamoon) ([#8749](https://github.com/paperless-ngx/paperless-ngx/pull/8749))

## paperless-ngx 2.14.2

### Bug Fixes

- Fix: dont try to parse empty webhook params @shamoon (#8742)
- Fix: pass working file to workflows, pickle file bytes @shamoon (#8741)
- Fix: use hard delete when bulk editing custom fields @shamoon (#8740)
- Fix: Ensure email attachments use the latest document path for attachments @stumpylog (#8737)
- Fix: include tooltip module for custom fields display @shamoon (#8739)
- Fix: remove id of webhook/email actions on copy @shamoon (#8729)
- Fix: import dnd module for merge confirm dialog @shamoon (#8727)

### Dependencies

- Chore(deps): Bump django from 5.1.4 to 5.1.5 @dependabot (#8738)

### All App Changes

7 changes
- Fix: dont try to parse empty webhook params [@shamoon](https://github.com/shamoon) ([#8742](https://github.com/paperless-ngx/paperless-ngx/pull/8742)) - Fix: pass working file to workflows, pickle file bytes [@shamoon](https://github.com/shamoon) ([#8741](https://github.com/paperless-ngx/paperless-ngx/pull/8741)) - Fix: use hard delete when bulk editing custom fields [@shamoon](https://github.com/shamoon) ([#8740](https://github.com/paperless-ngx/paperless-ngx/pull/8740)) - Fix: Ensure email attachments use the latest document path for attachments [@stumpylog](https://github.com/stumpylog) ([#8737](https://github.com/paperless-ngx/paperless-ngx/pull/8737)) - Fix: include tooltip module for custom fields display [@shamoon](https://github.com/shamoon) ([#8739](https://github.com/paperless-ngx/paperless-ngx/pull/8739)) - Fix: remove id of webhook/email actions on copy [@shamoon](https://github.com/shamoon) ([#8729](https://github.com/paperless-ngx/paperless-ngx/pull/8729)) - Fix: import dnd module for merge confirm dialog [@shamoon](https://github.com/shamoon) ([#8727](https://github.com/paperless-ngx/paperless-ngx/pull/8727))

## paperless-ngx 2.14.1

### Bug Fixes

- Fix: prevent error if bulk edit method not in MODIFIED_FIELD_BY_METHOD @shamoon (#8710)
- Fix: include tag component in list view @shamoon (#8706)
- Fix: use unmodified original for checksum if exists @shamoon (#8693)
- Fix: complete load with native PDF viewer @shamoon (#8699)

### All App Changes

4 changes
- Fix: prevent error if bulk edit method not in MODIFIED_FIELD_BY_METHOD [@shamoon](https://github.com/shamoon) ([#8710](https://github.com/paperless-ngx/paperless-ngx/pull/8710)) - Fix: include tag component in list view [@shamoon](https://github.com/shamoon) ([#8706](https://github.com/paperless-ngx/paperless-ngx/pull/8706)) - Fix: use unmodified original for checksum if exists [@shamoon](https://github.com/shamoon) ([#8693](https://github.com/paperless-ngx/paperless-ngx/pull/8693)) - Fix: complete load with native PDF viewer [@shamoon](https://github.com/shamoon) ([#8699](https://github.com/paperless-ngx/paperless-ngx/pull/8699))

## paperless-ngx 2.14.0

### Features

- Enhancement: custom field sorting @shamoon (#8494)
- Enhancement: process mail button @shamoon (#8466)
- Feature: bulk edit custom field values @shamoon (#8428)
- Enhancement: improved loading visuals @shamoon (#8435)
- Enhancement: prune audit logs and management command @shamoon (#8416)
- Change: make saved views manage its own component @shamoon (#8423)
- Enhancement: file task filtering @shamoon (#8421)
- Enhancement: auto-link duplicate document @shamoon (#8415)
- Feature: email, webhook workflow actions @shamoon (#8108)
- Enhancement: use stable unique IDs for custom field select options @shamoon (#8299)
- Enhancement: better TIFF display browser support @shamoon (#8087)
- Enhancement: filterable list count sorting and opacification @shamoon (#8386)
- Enhancement: preview button for document list and trash, refactor @shamoon (#8384)
- Enhancement: use theme-color meta tag @shamoon (#8359)
- Feature: scheduled workflow trigger @shamoon (#8036)
- Enhancement: support owner permissions for file tasks @shamoon (#8195)
- Fixhancement: change update content to handle archive disabled @shamoon (#8315)
- Enhancement: next / previous shortcuts for document list @shamoon (#8309)
- Feature: two-factor authentication @shamoon (#8012)
- Enhancement: save \& next / close shortcut key @shamoon (#8243)
- Feature: loading preview, better text popup preview @shamoon (#8011)

### Bug Fixes

- Fix: add some minor frontend permissions checks @shamoon (#8524)
- FIx: obliquely trim spaces from global search @shamoon (#8484)
- Fix: include global perms for bulk edit endpoint @shamoon (#8468)
- Fix: frontend better reflect global perms for bulk edit, disabled form state @shamoon (#8469)
- Fixhancement: dispatch change event from current field prior to save @shamoon (#8369)
- Fix: Fixes install script to handle languages with dashes or underscores @stumpylog (#8341)
- Fix: handle very old dates with positive offset too @shamoon (#8335)
- Fixhancement: change update content to handle archive disabled @shamoon (#8315)
- Fix: include db_index caveat in squashed migrations @shamoon (#8292)
- Fix: prevent duplicate workflow runs @shamoon (#8268)
- Fix: add note about select options to edit dialog @shamoon (#8267)

### Maintenance

- Chore(deps): Bump codecov/codecov-action from 4 to 5 in the actions group @dependabot (#8401)

### Dependencies

16 changes
- Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#8627](https://github.com/paperless-ngx/paperless-ngx/pull/8627)) - Chore(deps-dev): Bump ruff from 0.8.4 to 0.8.6 in the development group [@dependabot](https://github.com/dependabot) ([#8626](https://github.com/paperless-ngx/paperless-ngx/pull/8626)) - Chore(deps): Bump django-allauth from 65.3.0 to 65.3.1 in the django group [@dependabot](https://github.com/dependabot) ([#8574](https://github.com/paperless-ngx/paperless-ngx/pull/8574)) - Chore(deps-dev): Bump ruff from 0.8.3 to 0.8.4 in the development group [@dependabot](https://github.com/dependabot) ([#8546](https://github.com/paperless-ngx/paperless-ngx/pull/8546)) - Chore(deps): Bump the small-changes group with 6 updates [@dependabot](https://github.com/dependabot) ([#8547](https://github.com/paperless-ngx/paperless-ngx/pull/8547)) - Chore: update ng2 pdf viewer [@shamoon](https://github.com/shamoon) ([#8462](https://github.com/paperless-ngx/paperless-ngx/pull/8462)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#8458](https://github.com/paperless-ngx/paperless-ngx/pull/8458)) - Chore(deps): Bump django-soft-delete from 1.0.15 to 1.0.16 in the django group [@dependabot](https://github.com/dependabot) ([#8459](https://github.com/paperless-ngx/paperless-ngx/pull/8459)) - Chore(deps): Bump the small-changes group with 4 updates [@dependabot](https://github.com/dependabot) ([#8460](https://github.com/paperless-ngx/paperless-ngx/pull/8460)) - Chore(deps): Bump django from 5.1.3 to 5.1.4 [@dependabot](https://github.com/dependabot) ([#8445](https://github.com/paperless-ngx/paperless-ngx/pull/8445)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#8414](https://github.com/paperless-ngx/paperless-ngx/pull/8414)) - Chore(deps): Bump codecov/codecov-action from 4 to 5 in the actions group [@dependabot](https://github.com/dependabot) ([#8401](https://github.com/paperless-ngx/paperless-ngx/pull/8401)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#8352](https://github.com/paperless-ngx/paperless-ngx/pull/8352)) - Chore(deps): Bump the small-changes group across 1 directory with 7 updates [@dependabot](https://github.com/dependabot) ([#8399](https://github.com/paperless-ngx/paperless-ngx/pull/8399)) - Chore(deps): Bump tornado from 6.4.1 to 6.4.2 [@dependabot](https://github.com/dependabot) ([#8336](https://github.com/paperless-ngx/paperless-ngx/pull/8336)) - Chore(deps): Bump watchdog from 5.0.3 to 6.0.0 in the major-versions group [@dependabot](https://github.com/dependabot) ([#8257](https://github.com/paperless-ngx/paperless-ngx/pull/8257))

### All App Changes

65 changes
- Fix: use state param with oauth [@shamoon](https://github.com/shamoon) ([#8636](https://github.com/paperless-ngx/paperless-ngx/pull/8636)) - Fix: check permissions for all documents via bulk download [@shamoon](https://github.com/shamoon) ([#8631](https://github.com/paperless-ngx/paperless-ngx/pull/8631)) - Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#8627](https://github.com/paperless-ngx/paperless-ngx/pull/8627)) - Chore(deps-dev): Bump ruff from 0.8.4 to 0.8.6 in the development group [@dependabot](https://github.com/dependabot) ([#8626](https://github.com/paperless-ngx/paperless-ngx/pull/8626)) - Chore: Switch from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#8325](https://github.com/paperless-ngx/paperless-ngx/pull/8325)) - Chore: disable max-age for some document endpoints [@tsia](https://github.com/tsia) ([#8611](https://github.com/paperless-ngx/paperless-ngx/pull/8611)) - Fix: do not accept empty string for doc link value via API [@shamoon](https://github.com/shamoon) ([#8596](https://github.com/paperless-ngx/paperless-ngx/pull/8596)) - Enhancement: angular 19 [@shamoon](https://github.com/shamoon) ([#8584](https://github.com/paperless-ngx/paperless-ngx/pull/8584)) - Fix: fix hotkey arrows [@shamoon](https://github.com/shamoon) ([#8583](https://github.com/paperless-ngx/paperless-ngx/pull/8583)) - Chore: remove outdated admin logentry handler [@shamoon](https://github.com/shamoon) ([#8580](https://github.com/paperless-ngx/paperless-ngx/pull/8580)) - Chore(deps): Bump django-allauth from 65.3.0 to 65.3.1 in the django group [@dependabot](https://github.com/dependabot) ([#8574](https://github.com/paperless-ngx/paperless-ngx/pull/8574)) - Enhancement: custom field sorting [@shamoon](https://github.com/shamoon) ([#8494](https://github.com/paperless-ngx/paperless-ngx/pull/8494)) - Fix: fix occasional error toast overflow [@shamoon](https://github.com/shamoon) ([#8552](https://github.com/paperless-ngx/paperless-ngx/pull/8552)) - Fix: fix share link archive version detection [@shamoon](https://github.com/shamoon) ([#8551](https://github.com/paperless-ngx/paperless-ngx/pull/8551)) - Chore(deps-dev): Bump ruff from 0.8.3 to 0.8.4 in the development group [@dependabot](https://github.com/dependabot) ([#8546](https://github.com/paperless-ngx/paperless-ngx/pull/8546)) - Chore(deps): Bump the small-changes group with 6 updates [@dependabot](https://github.com/dependabot) ([#8547](https://github.com/paperless-ngx/paperless-ngx/pull/8547)) - Enhancement: add timeout for Tika client [@HiranChaudhuri](https://github.com/HiranChaudhuri) ([#8520](https://github.com/paperless-ngx/paperless-ngx/pull/8520)) - Fix: add some minor frontend permissions checks [@shamoon](https://github.com/shamoon) ([#8524](https://github.com/paperless-ngx/paperless-ngx/pull/8524)) - FIx: obliquely trim spaces from global search [@shamoon](https://github.com/shamoon) ([#8484](https://github.com/paperless-ngx/paperless-ngx/pull/8484)) - Fix: include global perms for bulk edit endpoint [@shamoon](https://github.com/shamoon) ([#8468](https://github.com/paperless-ngx/paperless-ngx/pull/8468)) - Enhancement: process mail button [@shamoon](https://github.com/shamoon) ([#8466](https://github.com/paperless-ngx/paperless-ngx/pull/8466)) - Fix: frontend better reflect global perms for bulk edit, disabled form state [@shamoon](https://github.com/shamoon) ([#8469](https://github.com/paperless-ngx/paperless-ngx/pull/8469)) - Chore: update ng2 pdf viewer [@shamoon](https://github.com/shamoon) ([#8462](https://github.com/paperless-ngx/paperless-ngx/pull/8462)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#8458](https://github.com/paperless-ngx/paperless-ngx/pull/8458)) - Chore(deps): Bump django-soft-delete from 1.0.15 to 1.0.16 in the django group [@dependabot](https://github.com/dependabot) ([#8459](https://github.com/paperless-ngx/paperless-ngx/pull/8459)) - Chore(deps): Bump the small-changes group with 4 updates [@dependabot](https://github.com/dependabot) ([#8460](https://github.com/paperless-ngx/paperless-ngx/pull/8460)) - Chore: use rxjs instead of JS setInterval for timers [@shamoon](https://github.com/shamoon) ([#8461](https://github.com/paperless-ngx/paperless-ngx/pull/8461)) - Feature: bulk edit custom field values [@shamoon](https://github.com/shamoon) ([#8428](https://github.com/paperless-ngx/paperless-ngx/pull/8428)) - Enhancement: improved loading visuals [@shamoon](https://github.com/shamoon) ([#8435](https://github.com/paperless-ngx/paperless-ngx/pull/8435)) - Enhancement: prune audit logs and management command [@shamoon](https://github.com/shamoon) ([#8416](https://github.com/paperless-ngx/paperless-ngx/pull/8416)) - Change: make saved views manage its own component [@shamoon](https://github.com/shamoon) ([#8423](https://github.com/paperless-ngx/paperless-ngx/pull/8423)) - Enhancement: file task filtering [@shamoon](https://github.com/shamoon) ([#8421](https://github.com/paperless-ngx/paperless-ngx/pull/8421)) - Enhancement: auto-link duplicate document [@shamoon](https://github.com/shamoon) ([#8415](https://github.com/paperless-ngx/paperless-ngx/pull/8415)) - Enhancement: include current filename placeholder in workflows @Lu-Fi ([#8319](https://github.com/paperless-ngx/paperless-ngx/pull/8319)) - Feature: email, webhook workflow actions [@shamoon](https://github.com/shamoon) ([#8108](https://github.com/paperless-ngx/paperless-ngx/pull/8108)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#8414](https://github.com/paperless-ngx/paperless-ngx/pull/8414)) - Enhancement: use stable unique IDs for custom field select options [@shamoon](https://github.com/shamoon) ([#8299](https://github.com/paperless-ngx/paperless-ngx/pull/8299)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#8352](https://github.com/paperless-ngx/paperless-ngx/pull/8352)) - Enhancement: better TIFF display browser support [@shamoon](https://github.com/shamoon) ([#8087](https://github.com/paperless-ngx/paperless-ngx/pull/8087)) - Chore(deps): Bump the small-changes group across 1 directory with 7 updates [@dependabot](https://github.com/dependabot) ([#8399](https://github.com/paperless-ngx/paperless-ngx/pull/8399)) - Enhancement: History (audit log) for bulk edit operations [@shamoon](https://github.com/shamoon) ([#8196](https://github.com/paperless-ngx/paperless-ngx/pull/8196)) - Enhancement: larger previews in action dialogs [@shamoon](https://github.com/shamoon) ([#8387](https://github.com/paperless-ngx/paperless-ngx/pull/8387)) - Enhancement: filterable list count sorting and opacification [@shamoon](https://github.com/shamoon) ([#8386](https://github.com/paperless-ngx/paperless-ngx/pull/8386)) - Enhancement: preview button for document list and trash, refactor [@shamoon](https://github.com/shamoon) ([#8384](https://github.com/paperless-ngx/paperless-ngx/pull/8384)) - Fixhancement: dispatch change event from current field prior to save [@shamoon](https://github.com/shamoon) ([#8369](https://github.com/paperless-ngx/paperless-ngx/pull/8369)) - Enhancement: use theme-color meta tag [@shamoon](https://github.com/shamoon) ([#8359](https://github.com/paperless-ngx/paperless-ngx/pull/8359)) - Chore: cleanup urls, use actions for some views [@shamoon](https://github.com/shamoon) ([#8346](https://github.com/paperless-ngx/paperless-ngx/pull/8346)) - Feature: scheduled workflow trigger [@shamoon](https://github.com/shamoon) ([#8036](https://github.com/paperless-ngx/paperless-ngx/pull/8036)) - Fix: handle very old dates with positive offset too [@shamoon](https://github.com/shamoon) ([#8335](https://github.com/paperless-ngx/paperless-ngx/pull/8335)) - Refactor: fix unnecessary use of filterable dropdown sorting [@shamoon](https://github.com/shamoon) ([#8328](https://github.com/paperless-ngx/paperless-ngx/pull/8328)) - Enhancement: offer link to restored document [@shamoon](https://github.com/shamoon) ([#8321](https://github.com/paperless-ngx/paperless-ngx/pull/8321)) - Enhancement: support owner permissions for file tasks [@shamoon](https://github.com/shamoon) ([#8195](https://github.com/paperless-ngx/paperless-ngx/pull/8195)) - Fixhancement: change update content to handle archive disabled [@shamoon](https://github.com/shamoon) ([#8315](https://github.com/paperless-ngx/paperless-ngx/pull/8315)) - Chore(deps): Bump watchdog from 5.0.3 to 6.0.0 in the major-versions group [@dependabot](https://github.com/dependabot) ([#8257](https://github.com/paperless-ngx/paperless-ngx/pull/8257)) - Enhancement: Add --compare-json option to document_exporter to write json files only if changed [@kdoren](https://github.com/kdoren) ([#8261](https://github.com/paperless-ngx/paperless-ngx/pull/8261)) - Enhancement: next / previous shortcuts for document list [@shamoon](https://github.com/shamoon) ([#8309](https://github.com/paperless-ngx/paperless-ngx/pull/8309)) - Feature: two-factor authentication [@shamoon](https://github.com/shamoon) ([#8012](https://github.com/paperless-ngx/paperless-ngx/pull/8012)) - Fix: include db_index caveat in squashed migrations [@shamoon](https://github.com/shamoon) ([#8292](https://github.com/paperless-ngx/paperless-ngx/pull/8292)) - Tweak: use fixed position for navbar [@shamoon](https://github.com/shamoon) ([#8279](https://github.com/paperless-ngx/paperless-ngx/pull/8279)) - Fix: prevent duplicate workflow runs [@shamoon](https://github.com/shamoon) ([#8268](https://github.com/paperless-ngx/paperless-ngx/pull/8268)) - Fix: add note about select options to edit dialog [@shamoon](https://github.com/shamoon) ([#8267](https://github.com/paperless-ngx/paperless-ngx/pull/8267)) - Enhancement: save \& next / close shortcut key [@shamoon](https://github.com/shamoon) ([#8243](https://github.com/paperless-ngx/paperless-ngx/pull/8243)) - Feature: loading preview, better text popup preview [@shamoon](https://github.com/shamoon) ([#8011](https://github.com/paperless-ngx/paperless-ngx/pull/8011)) - Chore: switch src/documents/bulk\*.py from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#7862](https://github.com/paperless-ngx/paperless-ngx/pull/7862)) - Chore: Bulk backend dependency updates [@stumpylog](https://github.com/stumpylog) ([#8212](https://github.com/paperless-ngx/paperless-ngx/pull/8212))

## paperless-ngx 2.13.5

### Bug Fixes

- Fix: handle page count exception for pw-protected files @shamoon (#8240)
- Fix: correctly track task id in list for change detection @shamoon (#8230)
- Fix: Admin pages should show trashed documents @stumpylog (#8068)
- Fix: tag colors shouldn't change when selected in list @shamoon (#8225)
- Fix: fix re-activation of save button when changing array items @shamoon (#8208)
- Fix: fix thumbnail clipping, select inverted color in safari dark mode not system @shamoon (#8193)
- Fix: select checkbox should remain visible @shamoon (#8185)
- Fix: warn with proper error on ASN exists in trash @shamoon (#8176)

### Maintenance

- Chore: Updates all runner images to use Ubuntu Noble @stumpylog (#8213)
- Chore(deps): Bump stumpylog/image-cleaner-action from 0.8.0 to 0.9.0 in the actions group @dependabot (#8142)

### Dependencies

- Chore(deps): Bump stumpylog/image-cleaner-action from 0.8.0 to 0.9.0 in the actions group @dependabot (#8142)

### All App Changes

7 changes
- Fix: handle page count exception for pw-protected files [@shamoon](https://github.com/shamoon) ([#8240](https://github.com/paperless-ngx/paperless-ngx/pull/8240)) - Fix: correctly track task id in list for change detection [@shamoon](https://github.com/shamoon) ([#8230](https://github.com/paperless-ngx/paperless-ngx/pull/8230)) - Fix: Admin pages should show trashed documents [@stumpylog](https://github.com/stumpylog) ([#8068](https://github.com/paperless-ngx/paperless-ngx/pull/8068)) - Fix: tag colors shouldn't change when selected in list [@shamoon](https://github.com/shamoon) ([#8225](https://github.com/paperless-ngx/paperless-ngx/pull/8225)) - Fix: fix re-activation of save button when changing array items [@shamoon](https://github.com/shamoon) ([#8208](https://github.com/paperless-ngx/paperless-ngx/pull/8208)) - Fix: fix thumbnail clipping, select inverted color in safari dark mode not system [@shamoon](https://github.com/shamoon) ([#8193](https://github.com/paperless-ngx/paperless-ngx/pull/8193)) - Fix: select checkbox should remain visible [@shamoon](https://github.com/shamoon) ([#8185](https://github.com/paperless-ngx/paperless-ngx/pull/8185)) - Fix: warn with proper error on ASN exists in trash [@shamoon](https://github.com/shamoon) ([#8176](https://github.com/paperless-ngx/paperless-ngx/pull/8176))

## paperless-ngx 2.13.4

### Bug Fixes

- Fix: fix dark mode icon blend mode in 2.13.3 @shamoon (#8166)
- Fix: fix clipped popup preview in 2.13.3 @shamoon (#8165)

### All App Changes

2 changes
- Fix: fix dark mode icon blend mode in 2.13.3 [@shamoon](https://github.com/shamoon) ([#8166](https://github.com/paperless-ngx/paperless-ngx/pull/8166)) - Fix: fix clipped popup preview in 2.13.3 [@shamoon](https://github.com/shamoon) ([#8165](https://github.com/paperless-ngx/paperless-ngx/pull/8165))

## paperless-ngx 2.13.3

### Bug Fixes

- Fix: fix auto-clean PDFs, create parent dir for storing unmodified original @shamoon (#8157)
- Fix: correctly handle exists, false in custom field query filter @yichi-yang (#8158)
- Fix: dont use filters for inverted thumbnails in Safari @shamoon (#8121)
- Fix: use static object for activedisplayfields to prevent changes @shamoon (#8120)
- Fix: dont invert pdf colors in FF @shamoon (#8110)
- Fix: make mail account password and refresh token text fields @shamoon (#8107)

### Dependencies

8 changes
- Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#8145](https://github.com/paperless-ngx/paperless-ngx/pull/8145)) - Chore(deps-dev): Bump @types/node from 22.7.4 to 22.8.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#8148](https://github.com/paperless-ngx/paperless-ngx/pull/8148)) - Chore(deps-dev): Bump @playwright/test from 1.47.2 to 1.48.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#8147](https://github.com/paperless-ngx/paperless-ngx/pull/8147)) - Chore(deps): Bump uuid from 10.0.0 to 11.0.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#8146](https://github.com/paperless-ngx/paperless-ngx/pull/8146)) - Chore(deps): Bump tslib from 2.7.0 to 2.8.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#8149](https://github.com/paperless-ngx/paperless-ngx/pull/8149)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.2.0 to 1.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#8150](https://github.com/paperless-ngx/paperless-ngx/pull/8150)) - Chore(deps-dev): Bump @types/jest from 29.5.13 to 29.5.14 in /src-ui in the frontend-jest-dependencies group [@dependabot](https://github.com/dependabot) ([#8144](https://github.com/paperless-ngx/paperless-ngx/pull/8144)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates [@dependabot](https://github.com/dependabot) ([#8143](https://github.com/paperless-ngx/paperless-ngx/pull/8143))

### All App Changes

14 changes
- Fix: fix auto-clean PDFs, create parent dir for storing unmodified original [@shamoon](https://github.com/shamoon) ([#8157](https://github.com/paperless-ngx/paperless-ngx/pull/8157)) - Fix: correctly handle exists, false in custom field query filter @yichi-yang ([#8158](https://github.com/paperless-ngx/paperless-ngx/pull/8158)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#8145](https://github.com/paperless-ngx/paperless-ngx/pull/8145)) - Chore(deps-dev): Bump @types/node from 22.7.4 to 22.8.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#8148](https://github.com/paperless-ngx/paperless-ngx/pull/8148)) - Chore(deps-dev): Bump @playwright/test from 1.47.2 to 1.48.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#8147](https://github.com/paperless-ngx/paperless-ngx/pull/8147)) - Chore(deps): Bump uuid from 10.0.0 to 11.0.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#8146](https://github.com/paperless-ngx/paperless-ngx/pull/8146)) - Chore(deps): Bump tslib from 2.7.0 to 2.8.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#8149](https://github.com/paperless-ngx/paperless-ngx/pull/8149)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.2.0 to 1.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#8150](https://github.com/paperless-ngx/paperless-ngx/pull/8150)) - Chore(deps-dev): Bump @types/jest from 29.5.13 to 29.5.14 in /src-ui in the frontend-jest-dependencies group [@dependabot](https://github.com/dependabot) ([#8144](https://github.com/paperless-ngx/paperless-ngx/pull/8144)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates [@dependabot](https://github.com/dependabot) ([#8143](https://github.com/paperless-ngx/paperless-ngx/pull/8143)) - Fix: dont use filters for inverted thumbnails in Safari [@shamoon](https://github.com/shamoon) ([#8121](https://github.com/paperless-ngx/paperless-ngx/pull/8121)) - Fix: use static object for activedisplayfields to prevent changes [@shamoon](https://github.com/shamoon) ([#8120](https://github.com/paperless-ngx/paperless-ngx/pull/8120)) - Fix: dont invert pdf colors in FF [@shamoon](https://github.com/shamoon) ([#8110](https://github.com/paperless-ngx/paperless-ngx/pull/8110)) - Fix: make mail account password and refresh token text fields [@shamoon](https://github.com/shamoon) ([#8107](https://github.com/paperless-ngx/paperless-ngx/pull/8107))

## paperless-ngx 2.13.2

### Bug Fixes

- Fix: remove auth tokens from export @shamoon (#8100)
- Fix: cf query dropdown styling affecting other components @shamoon (#8095)

### All App Changes

2 changes
- Fix: remove auth tokens from export [@shamoon](https://github.com/shamoon) ([#8100](https://github.com/paperless-ngx/paperless-ngx/pull/8100)) - Fix: cf query dropdown styling affecting other components [@shamoon](https://github.com/shamoon) ([#8095](https://github.com/paperless-ngx/paperless-ngx/pull/8095))

## paperless-ngx 2.13.1

### Bug Fixes

- Fix: allow removing dead document links from UI, validate via API @shamoon (#8081)
- Fix: Removes whitenoise patches and upgrades it to 6.8.1 @stumpylog (#8079)
- Fix: Make all document related objects soft delete, fix filepath when deleted @shamoon (#8067)
- Fix: handle uuid fields created under mariadb and Django 4 @shamoon (#8034)
- Fix: Update filename correctly if the document is in the trash @stumpylog (#8066)
- Fix: Handle a special case where removing none marker could result in an absolute path @stumpylog (#8060)
- Fix: disable custom field signals during import in 2.13.0 @shamoon (#8065)
- Fix: doc link documents search should exclude null @shamoon (#8064)
- Fix: fix custom field query empty element removal @shamoon (#8056)
- Fix / Enhancement: auto-rename document files when select type custom fields are changed @shamoon (#8045)
- Fix: dont try to load PAPERLESS_MODEL_FILE as env from file @shamoon (#8040)
- Fix: dont include all allauth urls @shamoon (#8010)
- Fix: oauth settings without base url @shamoon (#8020)
- Fix / Enhancement: include social accounts and api tokens in export @shamoon (#8016)

### Maintenance

- Fix: Removes whitenoise patches and upgrades it to 6.8.1 @stumpylog (#8079)

### All App Changes

12 changes
- Fix: allow removing dead document links from UI, validate via API [@shamoon](https://github.com/shamoon) ([#8081](https://github.com/paperless-ngx/paperless-ngx/pull/8081)) - Fix: Make all document related objects soft delete, fix filepath when deleted [@shamoon](https://github.com/shamoon) ([#8067](https://github.com/paperless-ngx/paperless-ngx/pull/8067)) - Fix: handle uuid fields created under mariadb and Django 4 [@shamoon](https://github.com/shamoon) ([#8034](https://github.com/paperless-ngx/paperless-ngx/pull/8034)) - Fix: Update filename correctly if the document is in the trash [@stumpylog](https://github.com/stumpylog) ([#8066](https://github.com/paperless-ngx/paperless-ngx/pull/8066)) - Fix: Handle a special case where removing none marker could result in an absolute path [@stumpylog](https://github.com/stumpylog) ([#8060](https://github.com/paperless-ngx/paperless-ngx/pull/8060)) - Fix: disable custom field signals during import in 2.13.0 [@shamoon](https://github.com/shamoon) ([#8065](https://github.com/paperless-ngx/paperless-ngx/pull/8065)) - Fix: doc link documents search should exclude null [@shamoon](https://github.com/shamoon) ([#8064](https://github.com/paperless-ngx/paperless-ngx/pull/8064)) - Enhancement: auto-rename document files when select type custom fields are changed [@shamoon](https://github.com/shamoon) ([#8045](https://github.com/paperless-ngx/paperless-ngx/pull/8045)) - Fix: fix custom field query empty element removal [@shamoon](https://github.com/shamoon) ([#8056](https://github.com/paperless-ngx/paperless-ngx/pull/8056)) - Fix: dont include all allauth urls [@shamoon](https://github.com/shamoon) ([#8010](https://github.com/paperless-ngx/paperless-ngx/pull/8010)) - Enhancement / fix: include social accounts and api tokens in export [@shamoon](https://github.com/shamoon) ([#8016](https://github.com/paperless-ngx/paperless-ngx/pull/8016)) - Fix: oauth settings without base url [@shamoon](https://github.com/shamoon) ([#8020](https://github.com/paperless-ngx/paperless-ngx/pull/8020))

## paperless-ngx 2.13.0

### Notable Changes

- Feature: OAuth2 Gmail and Outlook email support @shamoon (#7866)
- Feature: Enhanced templating for filename format @stumpylog (#7836)
- Feature: custom fields queries @shamoon (#7761)
- Chore: Drop Python 3.9 support @stumpylog (#7774)

### Features

- Enhancement: QoL, auto-focus default select field in custom field dropdown @shamoon (#7961)
- Change: open not edit @shamoon (#7942)
- Enhancement: support retain barcode split pages @shamoon (#7912)
- Enhancement: don't wait for doc API to load preview @shamoon (#7894)
- Feature: OAuth2 Gmail and Outlook email support @shamoon (#7866)
- Enhancement: live preview of storage path @shamoon (#7870)
- Enhancement: management list button improvements @shamoon (#7848)
- Enhancement: check for mail destination directory, log post-consume errors @mrichtarsky (#7808)
- Enhancement: workflow overview toggle enable button @shamoon (#7818)
- Enhancement: disable-able mail rules, add toggle to overview @shamoon (#7810)
- Feature: auto-clean some invalid pdfs @shamoon (#7651)
- Feature: page count @s0llvan (#7750)
- Enhancement: use apt only when needed docker-entrypoint.sh @gawa971 (#7756)
- Enhancement: set Django SESSION_EXPIRE_AT_BROWSER_CLOSE from PAPERLESS_ACCOUNT_SESSION_REMEMBER @shamoon (#7748)
- Enhancement: allow setting session cookie age @shamoon (#7743)
- Feature: copy workflows and mail rules, improve layout @shamoon (#7727)

### Bug Fixes

- Fix: remove space before my profile button in dropdown @tooomm (#7963)
- Fix: v2.13.0 RC1 - Handling of Nones when using custom fields in filepath templating @stumpylog (#7933)
- Fix: v2.13.0 RC1 - trigger move and rename after CustomFieldInstance saved @shamoon (#7927)
- Fix: v2.13.0 RC1 - increase field max lengths to accommodate larger tokens @shamoon (#7916)
- Fix: preserve text linebreaks in doc edit @shamoon (#7908)
- Fix: only show colon on cards if correspondent and title shown @shamoon (#7893)
- Fix: Allow ASN values of 0 from barcodes @stumpylog (#7878)
- Fix: fix auto-dismiss completed tasks on open document @shamoon (#7869)
- Fix: trigger change warning for saved views with default fields if changed @shamoon (#7865)
- Fix: hidden canvas element causes scroll bug @shamoon (#7770)
- Fix: handle overflowing dropdowns on mobile @shamoon (#7758)
- Fix: chrome scrolling in >= 129 @shamoon (#7738)

### Maintenance

- Enhancement: use apt only when needed docker-entrypoint.sh @gawa971 (#7756)

### Dependencies

10 changes
- Chore(deps-dev): Bump @codecov/webpack-plugin from 1.0.1 to 1.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#7830](https://github.com/paperless-ngx/paperless-ngx/pull/7830)) - Chore(deps-dev): Bump @types/node from 22.5.2 to 22.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#7829](https://github.com/paperless-ngx/paperless-ngx/pull/7829)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#7827](https://github.com/paperless-ngx/paperless-ngx/pull/7827)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#7826](https://github.com/paperless-ngx/paperless-ngx/pull/7826)) - Chore(deps-dev): Bump @playwright/test from 1.46.1 to 1.47.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#7828](https://github.com/paperless-ngx/paperless-ngx/pull/7828)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates [@dependabot](https://github.com/dependabot) ([#7825](https://github.com/paperless-ngx/paperless-ngx/pull/7825)) - Chore: Upgrades OCRMyPDF to v16 [@stumpylog](https://github.com/stumpylog) ([#7815](https://github.com/paperless-ngx/paperless-ngx/pull/7815)) - Chore: Upgrades the Docker image to use Python 3.12 [@stumpylog](https://github.com/stumpylog) ([#7796](https://github.com/paperless-ngx/paperless-ngx/pull/7796)) - Chore: Upgrade Django to 5.1 [@stumpylog](https://github.com/stumpylog) ([#7795](https://github.com/paperless-ngx/paperless-ngx/pull/7795)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7723](https://github.com/paperless-ngx/paperless-ngx/pull/7723))

### All App Changes

43 changes
- Change: Use a TextField for the storage path field [@stumpylog](https://github.com/stumpylog) ([#7967](https://github.com/paperless-ngx/paperless-ngx/pull/7967)) - Fix: remove space before my profile button in dropdown [@tooomm](https://github.com/tooomm) ([#7963](https://github.com/paperless-ngx/paperless-ngx/pull/7963)) - Enhancement: QoL, auto-focus default select field in custom field dropdown [@shamoon](https://github.com/shamoon) ([#7961](https://github.com/paperless-ngx/paperless-ngx/pull/7961)) - Change: open not edit [@shamoon](https://github.com/shamoon) ([#7942](https://github.com/paperless-ngx/paperless-ngx/pull/7942)) - Fix: v2.13.0 RC1 - Handling of Nones when using custom fields in filepath templating [@stumpylog](https://github.com/stumpylog) ([#7933](https://github.com/paperless-ngx/paperless-ngx/pull/7933)) - Fix: v2.13.0 RC1 - trigger move and rename after CustomFieldInstance saved [@shamoon](https://github.com/shamoon) ([#7927](https://github.com/paperless-ngx/paperless-ngx/pull/7927)) - Fix: v2.13.0 RC1 - increase field max lengths to accommodate larger tokens [@shamoon](https://github.com/shamoon) ([#7916](https://github.com/paperless-ngx/paperless-ngx/pull/7916)) - Enhancement: support retain barcode split pages [@shamoon](https://github.com/shamoon) ([#7912](https://github.com/paperless-ngx/paperless-ngx/pull/7912)) - Fix: preserve text linebreaks in doc edit [@shamoon](https://github.com/shamoon) ([#7908](https://github.com/paperless-ngx/paperless-ngx/pull/7908)) - Enhancement: don't wait for doc API to load preview [@shamoon](https://github.com/shamoon) ([#7894](https://github.com/paperless-ngx/paperless-ngx/pull/7894)) - Fix: only show colon on cards if correspondent and title shown [@shamoon](https://github.com/shamoon) ([#7893](https://github.com/paperless-ngx/paperless-ngx/pull/7893)) - Feature: OAuth2 Gmail and Outlook email support [@shamoon](https://github.com/shamoon) ([#7866](https://github.com/paperless-ngx/paperless-ngx/pull/7866)) - Chore: Consolidate workflow logic [@shamoon](https://github.com/shamoon) ([#7880](https://github.com/paperless-ngx/paperless-ngx/pull/7880)) - Enhancement: live preview of storage path [@shamoon](https://github.com/shamoon) ([#7870](https://github.com/paperless-ngx/paperless-ngx/pull/7870)) - Fix: Allow ASN values of 0 from barcodes [@stumpylog](https://github.com/stumpylog) ([#7878](https://github.com/paperless-ngx/paperless-ngx/pull/7878)) - Fix: fix auto-dismiss completed tasks on open document [@shamoon](https://github.com/shamoon) ([#7869](https://github.com/paperless-ngx/paperless-ngx/pull/7869)) - Fix: trigger change warning for saved views with default fields if changed [@shamoon](https://github.com/shamoon) ([#7865](https://github.com/paperless-ngx/paperless-ngx/pull/7865)) - Feature: Enhanced templating for filename format [@stumpylog](https://github.com/stumpylog) ([#7836](https://github.com/paperless-ngx/paperless-ngx/pull/7836)) - Enhancement: management list button improvements [@shamoon](https://github.com/shamoon) ([#7848](https://github.com/paperless-ngx/paperless-ngx/pull/7848)) - Enhancement: check for mail destination directory, log post-consume errors [@mrichtarsky](https://github.com/mrichtarsky) ([#7808](https://github.com/paperless-ngx/paperless-ngx/pull/7808)) - Feature: custom fields queries [@shamoon](https://github.com/shamoon) ([#7761](https://github.com/paperless-ngx/paperless-ngx/pull/7761)) - Chore(deps-dev): Bump @codecov/webpack-plugin from 1.0.1 to 1.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#7830](https://github.com/paperless-ngx/paperless-ngx/pull/7830)) - Chore(deps-dev): Bump @types/node from 22.5.2 to 22.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#7829](https://github.com/paperless-ngx/paperless-ngx/pull/7829)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#7827](https://github.com/paperless-ngx/paperless-ngx/pull/7827)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#7826](https://github.com/paperless-ngx/paperless-ngx/pull/7826)) - Chore(deps-dev): Bump @playwright/test from 1.46.1 to 1.47.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#7828](https://github.com/paperless-ngx/paperless-ngx/pull/7828)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates [@dependabot](https://github.com/dependabot) ([#7825](https://github.com/paperless-ngx/paperless-ngx/pull/7825)) - Chore: Upgrades OCRMyPDF to v16 [@stumpylog](https://github.com/stumpylog) ([#7815](https://github.com/paperless-ngx/paperless-ngx/pull/7815)) - Enhancement: workflow overview toggle enable button [@shamoon](https://github.com/shamoon) ([#7818](https://github.com/paperless-ngx/paperless-ngx/pull/7818)) - Enhancement: disable-able mail rules, add toggle to overview [@shamoon](https://github.com/shamoon) ([#7810](https://github.com/paperless-ngx/paperless-ngx/pull/7810)) - Chore: Upgrades the Docker image to use Python 3.12 [@stumpylog](https://github.com/stumpylog) ([#7796](https://github.com/paperless-ngx/paperless-ngx/pull/7796)) - Chore: Upgrade Django to 5.1 [@stumpylog](https://github.com/stumpylog) ([#7795](https://github.com/paperless-ngx/paperless-ngx/pull/7795)) - Chore: Drop Python 3.9 support [@stumpylog](https://github.com/stumpylog) ([#7774](https://github.com/paperless-ngx/paperless-ngx/pull/7774)) - Feature: auto-clean some invalid pdfs [@shamoon](https://github.com/shamoon) ([#7651](https://github.com/paperless-ngx/paperless-ngx/pull/7651)) - Feature: page count [@s0llvan](https://github.com/s0llvan) ([#7750](https://github.com/paperless-ngx/paperless-ngx/pull/7750)) - Fix: hidden canvas element causes scroll bug [@shamoon](https://github.com/shamoon) ([#7770](https://github.com/paperless-ngx/paperless-ngx/pull/7770)) - Enhancement: compactify dates dropdown [@shamoon](https://github.com/shamoon) ([#7759](https://github.com/paperless-ngx/paperless-ngx/pull/7759)) - Fix: handle overflowing dropdowns on mobile [@shamoon](https://github.com/shamoon) ([#7758](https://github.com/paperless-ngx/paperless-ngx/pull/7758)) - Enhancement: set Django SESSION_EXPIRE_AT_BROWSER_CLOSE from PAPERLESS_ACCOUNT_SESSION_REMEMBER [@shamoon](https://github.com/shamoon) ([#7748](https://github.com/paperless-ngx/paperless-ngx/pull/7748)) - Enhancement: allow setting session cookie age [@shamoon](https://github.com/shamoon) ([#7743](https://github.com/paperless-ngx/paperless-ngx/pull/7743)) - Fix: chrome scrolling in >= 129 [@shamoon](https://github.com/shamoon) ([#7738](https://github.com/paperless-ngx/paperless-ngx/pull/7738)) - Feature: copy workflows and mail rules, improve layout [@shamoon](https://github.com/shamoon) ([#7727](https://github.com/paperless-ngx/paperless-ngx/pull/7727)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7723](https://github.com/paperless-ngx/paperless-ngx/pull/7723))

## paperless-ngx 2.12.1

### Bug Fixes

- Fix: wait to apply tag changes until other changes saved with multiple workflow actions @shamoon (#7711)
- Fix: delete_pages should require ownership (not just change perms) @shamoon (#7714)
- Fix: filter out shown custom fields that have been deleted from saved… @shamoon (#7710)
- Fix: only filter by string or number properties for filter pipe @shamoon (#7699)
- Fix: saved view permissions fixes @shamoon (#7672)
- Fix: add permissions for OPTIONS requests for notes @shamoon (#7661)

### All App Changes

7 changes
- Fix: wait to apply tag changes until other changes saved with multiple workflow actions [@shamoon](https://github.com/shamoon) ([#7711](https://github.com/paperless-ngx/paperless-ngx/pull/7711)) - Fix: delete_pages should require ownership (not just change perms) [@shamoon](https://github.com/shamoon) ([#7714](https://github.com/paperless-ngx/paperless-ngx/pull/7714)) - Enhancement: improve text contrast for selected documents in list view dark mode [@shamoon](https://github.com/shamoon) ([#7712](https://github.com/paperless-ngx/paperless-ngx/pull/7712)) - Fix: filter out shown custom fields that have been deleted from saved… [@shamoon](https://github.com/shamoon) ([#7710](https://github.com/paperless-ngx/paperless-ngx/pull/7710)) - Fix: only filter by string or number properties for filter pipe [@shamoon](https://github.com/shamoon) ([#7699](https://github.com/paperless-ngx/paperless-ngx/pull/7699)) - Fix: saved view permissions fixes [@shamoon](https://github.com/shamoon) ([#7672](https://github.com/paperless-ngx/paperless-ngx/pull/7672)) - Fix: add permissions for OPTIONS requests for notes [@shamoon](https://github.com/shamoon) ([#7661](https://github.com/paperless-ngx/paperless-ngx/pull/7661))

## paperless-ngx 2.12.0

### Features / Enhancements

- Enhancement: re-work mail rule dialog, support multiple include patterns @shamoon (#7635)
- Enhancement: add Korean language @shamoon (#7573)
- Enhancement: allow multiple filename attachment exclusion patterns for a mail rule @MelleD (#5524)
- Refactor: Use django-filter logic for filtering full text search queries @yichi-yang (#7507)
- Refactor: Reduce number of SQL queries when serializing List[Document] @yichi-yang (#7505)

### Bug Fixes

- Fix: use JSON for note audit log entries @shamoon (#7650)
- Fix: Rework system check so it won't crash if tesseract is not found @stumpylog (#7640)
- Fix: correct broken pdfjs worker src after upgrade to pdfjs v4 @shamoon (#7626)
- Chore: remove unused frontend dependencies @shamoon (#7607)
- Fix: fix non-clickable scroll wheel in file uploads list @shamoon (#7591)
- Fix: deselect file tasks select all button on dismiss @shamoon (#7592)
- Fix: saved view sidebar heading not always visible @shamoon (#7584)
- Fix: correct select field wrapping with long text @shamoon (#7572)
- Fix: update ng-bootstrap to fix datepicker bug @shamoon (#7567)

### Dependencies

11 changes
- Chore(deps): Bump cryptography from 42.0.8 to 43.0.1 [@dependabot](https://github.com/dependabot) ([#7620](https://github.com/paperless-ngx/paperless-ngx/pull/7620)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#7608](https://github.com/paperless-ngx/paperless-ngx/pull/7608)) - Chore(deps): Bump rapidfuzz from 3.9.6 to 3.9.7 in the small-changes group [@dependabot](https://github.com/dependabot) ([#7611](https://github.com/paperless-ngx/paperless-ngx/pull/7611)) - Chore(deps): Bump tslib from 2.6.3 to 2.7.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#7606](https://github.com/paperless-ngx/paperless-ngx/pull/7606)) - Chore(deps-dev): Bump [@playwright/test from 1.45.3 to 1.46.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.45.3 to 1.46.1 in /src-ui @dependabot) ([#7603](https://github.com/paperless-ngx/paperless-ngx/pull/7603)) - Chore(deps-dev): Bump typescript from 5.4.5 to 5.5.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#7604](https://github.com/paperless-ngx/paperless-ngx/pull/7604)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#7600](https://github.com/paperless-ngx/paperless-ngx/pull/7600)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates [@dependabot](https://github.com/dependabot) ([#7599](https://github.com/paperless-ngx/paperless-ngx/pull/7599)) - Chore(deps): Bump pathvalidate from 3.2.0 to 3.2.1 in the small-changes group [@dependabot](https://github.com/dependabot) ([#7548](https://github.com/paperless-ngx/paperless-ngx/pull/7548)) - Chore(deps): Bump micromatch from 4.0.5 to 4.0.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#7551](https://github.com/paperless-ngx/paperless-ngx/pull/7551)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7545](https://github.com/paperless-ngx/paperless-ngx/pull/7545))

### All App Changes

27 changes
- Chore: Update backend dependencies in bulk [@stumpylog](https://github.com/stumpylog) ([#7656](https://github.com/paperless-ngx/paperless-ngx/pull/7656)) - Fix: Rework system check so it won't crash if tesseract is not found [@stumpylog](https://github.com/stumpylog) ([#7640](https://github.com/paperless-ngx/paperless-ngx/pull/7640)) - Refactor: performance and storage optimization of barcode scanning [@loewexy](https://github.com/loewexy) ([#7646](https://github.com/paperless-ngx/paperless-ngx/pull/7646)) - Fix: use JSON for note audit log entries [@shamoon](https://github.com/shamoon) ([#7650](https://github.com/paperless-ngx/paperless-ngx/pull/7650)) - Enhancement: re-work mail rule dialog, support multiple include patterns [@shamoon](https://github.com/shamoon) ([#7635](https://github.com/paperless-ngx/paperless-ngx/pull/7635)) - Fix: correct broken pdfjs worker src after upgrade to pdfjs v4 [@shamoon](https://github.com/shamoon) ([#7626](https://github.com/paperless-ngx/paperless-ngx/pull/7626)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#7608](https://github.com/paperless-ngx/paperless-ngx/pull/7608)) - Chore(deps): Bump rapidfuzz from 3.9.6 to 3.9.7 in the small-changes group [@dependabot](https://github.com/dependabot) ([#7611](https://github.com/paperless-ngx/paperless-ngx/pull/7611)) - Chore: remove unused frontend dependencies [@shamoon](https://github.com/shamoon) ([#7607](https://github.com/paperless-ngx/paperless-ngx/pull/7607)) - Chore(deps): Bump tslib from 2.6.3 to 2.7.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#7606](https://github.com/paperless-ngx/paperless-ngx/pull/7606)) - Chore(deps-dev): Bump [@playwright/test from 1.45.3 to 1.46.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.45.3 to 1.46.1 in /src-ui @dependabot) ([#7603](https://github.com/paperless-ngx/paperless-ngx/pull/7603)) - Chore(deps-dev): Bump typescript from 5.4.5 to 5.5.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#7604](https://github.com/paperless-ngx/paperless-ngx/pull/7604)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#7600](https://github.com/paperless-ngx/paperless-ngx/pull/7600)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates [@dependabot](https://github.com/dependabot) ([#7599](https://github.com/paperless-ngx/paperless-ngx/pull/7599)) - Fix: fix non-clickable scroll wheel in file uploads list [@shamoon](https://github.com/shamoon) ([#7591](https://github.com/paperless-ngx/paperless-ngx/pull/7591)) - Fix: deselect file tasks select all button on dismiss [@shamoon](https://github.com/shamoon) ([#7592](https://github.com/paperless-ngx/paperless-ngx/pull/7592)) - Fix: saved view sidebar heading not always visible [@shamoon](https://github.com/shamoon) ([#7584](https://github.com/paperless-ngx/paperless-ngx/pull/7584)) - Enhancement: add Korean language [@shamoon](https://github.com/shamoon) ([#7573](https://github.com/paperless-ngx/paperless-ngx/pull/7573)) - Enhancement: mail message preprocessor for gpg encrypted mails [@dbankmann](https://github.com/dbankmann) ([#7456](https://github.com/paperless-ngx/paperless-ngx/pull/7456)) - Fix: correct select field wrapping with long text [@shamoon](https://github.com/shamoon) ([#7572](https://github.com/paperless-ngx/paperless-ngx/pull/7572)) - Fix: update ng-bootstrap to fix datepicker bug [@shamoon](https://github.com/shamoon) ([#7567](https://github.com/paperless-ngx/paperless-ngx/pull/7567)) - Enhancement: allow multiple filename attachment exclusion patterns for a mail rule [@MelleD](https://github.com/MelleD) ([#5524](https://github.com/paperless-ngx/paperless-ngx/pull/5524)) - Chore(deps): Bump pathvalidate from 3.2.0 to 3.2.1 in the small-changes group [@dependabot](https://github.com/dependabot) ([#7548](https://github.com/paperless-ngx/paperless-ngx/pull/7548)) - Chore(deps): Bump micromatch from 4.0.5 to 4.0.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#7551](https://github.com/paperless-ngx/paperless-ngx/pull/7551)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7545](https://github.com/paperless-ngx/paperless-ngx/pull/7545)) - Refactor: Use django-filter logic for filtering full text search queries [@yichi-yang](https://github.com/yichi-yang) ([#7507](https://github.com/paperless-ngx/paperless-ngx/pull/7507)) - Refactor: Reduce number of SQL queries when serializing List[Document] [@yichi-yang](https://github.com/yichi-yang) ([#7505](https://github.com/paperless-ngx/paperless-ngx/pull/7505))

## paperless-ngx 2.11.6

### Bug Fixes

- Fix: fix nltk tokenizer breaking change @shamoon (#7522)

### All App Changes

1 change
- Fix: fix nltk tokenizer breaking change [@shamoon](https://github.com/shamoon) ([#7522](https://github.com/paperless-ngx/paperless-ngx/pull/7522))

## paperless-ngx 2.11.5

### Bug Fixes

- Fix: use JSON for update archive file auditlog entries @shamoon (#7503)
- Fix: respect deskew / rotate pages from AppConfig if set @shamoon (#7501)

### Dependencies

5 changes
- Chore(deps): Bump the small-changes group across 1 directory with 6 updates [@dependabot](https://github.com/dependabot) ([#7502](https://github.com/paperless-ngx/paperless-ngx/pull/7502)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7497](https://github.com/paperless-ngx/paperless-ngx/pull/7497)) - Chore(deps-dev): Bump axios from 1.6.7 to 1.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#7472](https://github.com/paperless-ngx/paperless-ngx/pull/7472)) - Chore(deps-dev): Bump ruff from 0.5.6 to 0.5.7 in the development group [@dependabot](https://github.com/dependabot) ([#7457](https://github.com/paperless-ngx/paperless-ngx/pull/7457)) - Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#7460](https://github.com/paperless-ngx/paperless-ngx/pull/7460))

### All App Changes

7 changes
- Fix: use JSON for update archive file auditlog entries [@shamoon](https://github.com/shamoon) ([#7503](https://github.com/paperless-ngx/paperless-ngx/pull/7503)) - Chore(deps): Bump the small-changes group across 1 directory with 6 updates [@dependabot](https://github.com/dependabot) ([#7502](https://github.com/paperless-ngx/paperless-ngx/pull/7502)) - Fix: respect deskew / rotate pages from AppConfig if set [@shamoon](https://github.com/shamoon) ([#7501](https://github.com/paperless-ngx/paperless-ngx/pull/7501)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7497](https://github.com/paperless-ngx/paperless-ngx/pull/7497)) - Chore(deps-dev): Bump axios from 1.6.7 to 1.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#7472](https://github.com/paperless-ngx/paperless-ngx/pull/7472)) - Chore(deps-dev): Bump ruff from 0.5.6 to 0.5.7 in the development group [@dependabot](https://github.com/dependabot) ([#7457](https://github.com/paperless-ngx/paperless-ngx/pull/7457)) - Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#7460](https://github.com/paperless-ngx/paperless-ngx/pull/7460))

## paperless-ngx 2.11.4

### Bug Fixes

- Fix: initial upload message not being dismissed @shamoon (#7438)

### All App Changes

- Fix: initial upload message not being dismissed @shamoon (#7438)

## paperless-ngx 2.11.3

### Features

- Enhancement: optimize tasks / stats reload @shamoon (#7402)
- Enhancement: allow specifying default currency for Monetary custom field @shamoon (#7381)
- Enhancement: specify when pre-check fails for documents in trash @shamoon (#7355)

### Bug Fixes

- Fix: clear selection after reload for management lists @shamoon (#7421)
- Fix: disable inline create buttons if insufficient permissions @shamoon (#7401)
- Fix: use entire document for dropzone @shamoon (#7342)

### Maintenance

- Chore(deps): Bump stumpylog/image-cleaner-action from 0.7.0 to 0.8.0 in the actions group @dependabot (#7371)

### Dependencies

11 changes
- Chore(deps): Bump django from 4.2.14 to 4.2.15 [@dependabot](https://github.com/dependabot) ([#7412](https://github.com/paperless-ngx/paperless-ngx/pull/7412)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#7394](https://github.com/paperless-ngx/paperless-ngx/pull/7394)) - Chore(deps): Bump the small-changes group with 5 updates [@dependabot](https://github.com/dependabot) ([#7397](https://github.com/paperless-ngx/paperless-ngx/pull/7397)) - Chore(deps-dev): Bump [@playwright/test from 1.42.1 to 1.45.3 in /src-ui @dependabot](https://github.com/playwright/test from 1.42.1 to 1.45.3 in /src-ui @dependabot) ([#7367](https://github.com/paperless-ngx/paperless-ngx/pull/7367)) - Chore(deps-dev): Bump [@types/node from 20.12.2 to 22.0.2 in /src-ui @dependabot](https://github.com/types/node from 20.12.2 to 22.0.2 in /src-ui @dependabot) ([#7366](https://github.com/paperless-ngx/paperless-ngx/pull/7366)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#7365](https://github.com/paperless-ngx/paperless-ngx/pull/7365)) - Chore(deps): Bump uuid from 9.0.1 to 10.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#7370](https://github.com/paperless-ngx/paperless-ngx/pull/7370)) - Chore(deps): Bump stumpylog/image-cleaner-action from 0.7.0 to 0.8.0 in the actions group [@dependabot](https://github.com/dependabot) ([#7371](https://github.com/paperless-ngx/paperless-ngx/pull/7371)) - Chore(deps): Bump zone.js from 0.14.4 to 0.14.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#7368](https://github.com/paperless-ngx/paperless-ngx/pull/7368)) - Chore(deps-dev): Bump jest-preset-angular from 14.1.1 to 14.2.2 in /src-ui in the frontend-jest-dependencies group [@dependabot](https://github.com/dependabot) ([#7364](https://github.com/paperless-ngx/paperless-ngx/pull/7364)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates [@dependabot](https://github.com/dependabot) ([#7363](https://github.com/paperless-ngx/paperless-ngx/pull/7363))

### All App Changes

15 changes
- Fix: clear selection after reload for management lists [@shamoon](https://github.com/shamoon) ([#7421](https://github.com/paperless-ngx/paperless-ngx/pull/7421)) - Enhancement: optimize tasks / stats reload [@shamoon](https://github.com/shamoon) ([#7402](https://github.com/paperless-ngx/paperless-ngx/pull/7402)) - Enhancement: allow specifying default currency for Monetary custom field [@shamoon](https://github.com/shamoon) ([#7381](https://github.com/paperless-ngx/paperless-ngx/pull/7381)) - Enhancement: specify when pre-check fails for documents in trash [@shamoon](https://github.com/shamoon) ([#7355](https://github.com/paperless-ngx/paperless-ngx/pull/7355)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#7394](https://github.com/paperless-ngx/paperless-ngx/pull/7394)) - Fix: disable inline create buttons if insufficient permissions [@shamoon](https://github.com/shamoon) ([#7401](https://github.com/paperless-ngx/paperless-ngx/pull/7401)) - Chore(deps): Bump the small-changes group with 5 updates [@dependabot](https://github.com/dependabot) ([#7397](https://github.com/paperless-ngx/paperless-ngx/pull/7397)) - Chore(deps-dev): Bump [@playwright/test from 1.42.1 to 1.45.3 in /src-ui @dependabot](https://github.com/playwright/test from 1.42.1 to 1.45.3 in /src-ui @dependabot) ([#7367](https://github.com/paperless-ngx/paperless-ngx/pull/7367)) - Chore(deps-dev): Bump [@types/node from 20.12.2 to 22.0.2 in /src-ui @dependabot](https://github.com/types/node from 20.12.2 to 22.0.2 in /src-ui @dependabot) ([#7366](https://github.com/paperless-ngx/paperless-ngx/pull/7366)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#7365](https://github.com/paperless-ngx/paperless-ngx/pull/7365)) - Chore(deps): Bump uuid from 9.0.1 to 10.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#7370](https://github.com/paperless-ngx/paperless-ngx/pull/7370)) - Chore(deps): Bump zone.js from 0.14.4 to 0.14.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#7368](https://github.com/paperless-ngx/paperless-ngx/pull/7368)) - Chore(deps-dev): Bump jest-preset-angular from 14.1.1 to 14.2.2 in /src-ui in the frontend-jest-dependencies group [@dependabot](https://github.com/dependabot) ([#7364](https://github.com/paperless-ngx/paperless-ngx/pull/7364)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 20 updates [@dependabot](https://github.com/dependabot) ([#7363](https://github.com/paperless-ngx/paperless-ngx/pull/7363)) - Fix: use entire document for dropzone [@shamoon](https://github.com/shamoon) ([#7342](https://github.com/paperless-ngx/paperless-ngx/pull/7342))

## paperless-ngx 2.11.2

### Changes

- Change: more clearly handle init permissions error @shamoon (#7334)
- Chore: add permissions info link from webUI @shamoon (#7310)
- Fix: increase search input text contrast with light custom theme colors @JayBkr (#7303)

### Dependencies

- Chore(deps-dev): Bump the development group with 2 updates @dependabot (#7296)
- Chore(deps): Bump tika-client from 0.5.0 to 0.6.0 in the small-changes group @dependabot (#7297)

### All App Changes

5 changes
- Change: more clearly handle init permissions error [@shamoon](https://github.com/shamoon) ([#7334](https://github.com/paperless-ngx/paperless-ngx/pull/7334)) - Chore: add permissions info link from webUI [@shamoon](https://github.com/shamoon) ([#7310](https://github.com/paperless-ngx/paperless-ngx/pull/7310)) - Fix: increase search input text contrast with light custom theme colors [@JayBkr](https://github.com/JayBkr) ([#7303](https://github.com/paperless-ngx/paperless-ngx/pull/7303)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7296](https://github.com/paperless-ngx/paperless-ngx/pull/7296)) - Chore(deps): Bump tika-client from 0.5.0 to 0.6.0 in the small-changes group [@dependabot](https://github.com/dependabot) ([#7297](https://github.com/paperless-ngx/paperless-ngx/pull/7297))

## paperless-ngx 2.11.1

### Features

- Enhancement: include owner username in post-consumption variables @Freddy-0 (#7270)

### Bug Fixes

- Fix: support multiple inbox tags from stats widget @shamoon (#7281)
- Fix: Removes Turkish from the NLTK languages @stumpylog (#7246)
- Fix: include trashed docs in existing doc check @shamoon (#7229)

### Dependencies

- Chore(deps-dev): Bump the development group with 2 updates @dependabot (#7261)
- Chore(deps): Bump the small-changes group across 1 directory with 2 updates @dependabot (#7266)

### All App Changes

7 changes
- Fix: support multiple inbox tags from stats widget [@shamoon](https://github.com/shamoon) ([#7281](https://github.com/paperless-ngx/paperless-ngx/pull/7281)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7261](https://github.com/paperless-ngx/paperless-ngx/pull/7261)) - Chore(deps): Bump the small-changes group across 1 directory with 2 updates [@dependabot](https://github.com/dependabot) ([#7266](https://github.com/paperless-ngx/paperless-ngx/pull/7266)) - Enhancement: include owner username in post-consumption variables [@Freddy-0](https://github.com/Freddy-0) ([#7270](https://github.com/paperless-ngx/paperless-ngx/pull/7270)) - Chore: Squash older automatic migrations [@stumpylog](https://github.com/stumpylog) ([#7267](https://github.com/paperless-ngx/paperless-ngx/pull/7267)) - Fix: Removes Turkish from the NLTK languages [@stumpylog](https://github.com/stumpylog) ([#7246](https://github.com/paperless-ngx/paperless-ngx/pull/7246)) - Fix: include trashed docs in existing doc check [@shamoon](https://github.com/shamoon) ([#7229](https://github.com/paperless-ngx/paperless-ngx/pull/7229))

## paperless-ngx 2.11.0

### Breaking Changes

- Feature: Upgrade Gotenberg to v8 @stumpylog (#7094)

### Features

- Enhancement: disable add split button when appropriate @shamoon (#7215)
- Enhancement: wrapping of saved view fields d-n-d UI @shamoon (#7216)
- Enhancement: support custom field icontains filter for select type @shamoon (#7199)
- Feature: select custom field type @shamoon (#7167)
- Feature: automatic sso redirect @shamoon (#7168)
- Enhancement: show more columns in mail frontend admin @shamoon (#7158)
- Enhancement: use request user as owner of split / merge docs @shamoon (#7112)
- Enhancement: improve date parsing with accented characters @fdubuy (#7100)
- Feature: improve history display of object names etc @shamoon (#7102)
- Feature: Upgrade Gotenberg to v8 @stumpylog (#7094)

### Bug Fixes

- Fix: include documents in trash for existing asn check @shamoon (#7189)
- Fix: include documents in trash in sanity check @shamoon (#7133)
- Fix: handle errors for trash actions and only show documents user can restore or delete @shamoon (#7119)
- Fix: dont include documents in trash in counts @shamoon (#7111)
- Fix: use temp dir for split / merge @shamoon (#7105)

### Maintenance

- Chore: upgrade to DRF 3.15 @shamoon (#7134)
- Chore(deps): Bump docker/build-push-action from 5 to 6 in the actions group @dependabot (#7125)
- Chore: Ignores DRF 3.15.2 @stumpylog (#7122)
- Chore: show docker tag in UI for ci test builds @shamoon (#7083)

### Dependencies

11 changes
- Chore: Bulk backend updates [@stumpylog](https://github.com/stumpylog) ([#7209](https://github.com/paperless-ngx/paperless-ngx/pull/7209)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 14 updates [@dependabot](https://github.com/dependabot) ([#7200](https://github.com/paperless-ngx/paperless-ngx/pull/7200)) - Chore(deps): Bump certifi from 2024.6.2 to 2024.7.4 [@dependabot](https://github.com/dependabot) ([#7166](https://github.com/paperless-ngx/paperless-ngx/pull/7166)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 6 updates [@dependabot](https://github.com/dependabot) ([#7148](https://github.com/paperless-ngx/paperless-ngx/pull/7148)) - Chore(deps): Bump django-multiselectfield from 0.1.12 to 0.1.13 in the django group [@dependabot](https://github.com/dependabot) ([#7147](https://github.com/paperless-ngx/paperless-ngx/pull/7147)) - Chore(deps): Bump docker/build-push-action from 5 to 6 in the actions group [@dependabot](https://github.com/dependabot) ([#7125](https://github.com/paperless-ngx/paperless-ngx/pull/7125)) - Chore(deps): Bump the small-changes group across 1 directory with 4 updates [@dependabot](https://github.com/dependabot) ([#7128](https://github.com/paperless-ngx/paperless-ngx/pull/7128)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 16 updates [@dependabot](https://github.com/dependabot) ([#7126](https://github.com/paperless-ngx/paperless-ngx/pull/7126)) - Chore(deps-dev): Bump ruff from 0.4.9 to 0.5.0 in the development group across 1 directory [@dependabot](https://github.com/dependabot) ([#7120](https://github.com/paperless-ngx/paperless-ngx/pull/7120)) - Chore(deps-dev): Bump ws from 8.17.0 to 8.17.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#7114](https://github.com/paperless-ngx/paperless-ngx/pull/7114)) - Chore: update to Angular v18 [@shamoon](https://github.com/shamoon) ([#7106](https://github.com/paperless-ngx/paperless-ngx/pull/7106))

### All App Changes

25 changes
- Enhancement: disable add split button when appropriate [@shamoon](https://github.com/shamoon) ([#7215](https://github.com/paperless-ngx/paperless-ngx/pull/7215)) - Enhancement: wrapping of saved view fields d-n-d UI [@shamoon](https://github.com/shamoon) ([#7216](https://github.com/paperless-ngx/paperless-ngx/pull/7216)) - Chore: Bulk backend updates [@stumpylog](https://github.com/stumpylog) ([#7209](https://github.com/paperless-ngx/paperless-ngx/pull/7209)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 14 updates [@dependabot](https://github.com/dependabot) ([#7200](https://github.com/paperless-ngx/paperless-ngx/pull/7200)) - Enhancement: support custom field icontains filter for select type [@shamoon](https://github.com/shamoon) ([#7199](https://github.com/paperless-ngx/paperless-ngx/pull/7199)) - Chore: upgrade to DRF 3.15 [@shamoon](https://github.com/shamoon) ([#7134](https://github.com/paperless-ngx/paperless-ngx/pull/7134)) - Feature: select custom field type [@shamoon](https://github.com/shamoon) ([#7167](https://github.com/paperless-ngx/paperless-ngx/pull/7167)) - Feature: automatic sso redirect [@shamoon](https://github.com/shamoon) ([#7168](https://github.com/paperless-ngx/paperless-ngx/pull/7168)) - Fix: include documents in trash for existing asn check [@shamoon](https://github.com/shamoon) ([#7189](https://github.com/paperless-ngx/paperless-ngx/pull/7189)) - Chore: Initial conversion to pytest fixtures [@stumpylog](https://github.com/stumpylog) ([#7110](https://github.com/paperless-ngx/paperless-ngx/pull/7110)) - Enhancement: show more columns in mail frontend admin [@shamoon](https://github.com/shamoon) ([#7158](https://github.com/paperless-ngx/paperless-ngx/pull/7158)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 6 updates [@dependabot](https://github.com/dependabot) ([#7148](https://github.com/paperless-ngx/paperless-ngx/pull/7148)) - Chore(deps): Bump django-multiselectfield from 0.1.12 to 0.1.13 in the django group [@dependabot](https://github.com/dependabot) ([#7147](https://github.com/paperless-ngx/paperless-ngx/pull/7147)) - Fix: include documents in trash in sanity check [@shamoon](https://github.com/shamoon) ([#7133](https://github.com/paperless-ngx/paperless-ngx/pull/7133)) - Chore(deps): Bump the small-changes group across 1 directory with 4 updates [@dependabot](https://github.com/dependabot) ([#7128](https://github.com/paperless-ngx/paperless-ngx/pull/7128)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 16 updates [@dependabot](https://github.com/dependabot) ([#7126](https://github.com/paperless-ngx/paperless-ngx/pull/7126)) - Enhancement: use request user as owner of split / merge docs [@shamoon](https://github.com/shamoon) ([#7112](https://github.com/paperless-ngx/paperless-ngx/pull/7112)) - Fix: handle errors for trash actions and only show documents user can restore or delete [@shamoon](https://github.com/shamoon) ([#7119](https://github.com/paperless-ngx/paperless-ngx/pull/7119)) - Chore(deps-dev): Bump ruff from 0.4.9 to 0.5.0 in the development group across 1 directory [@dependabot](https://github.com/dependabot) ([#7120](https://github.com/paperless-ngx/paperless-ngx/pull/7120)) - Chore(deps-dev): Bump ws from 8.17.0 to 8.17.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#7114](https://github.com/paperless-ngx/paperless-ngx/pull/7114)) - Chore: update to Angular v18 [@shamoon](https://github.com/shamoon) ([#7106](https://github.com/paperless-ngx/paperless-ngx/pull/7106)) - Enhancement: improve date parsing with accented characters [@fdubuy](https://github.com/fdubuy) ([#7100](https://github.com/paperless-ngx/paperless-ngx/pull/7100)) - Feature: improve history display of object names etc [@shamoon](https://github.com/shamoon) ([#7102](https://github.com/paperless-ngx/paperless-ngx/pull/7102)) - Fix: dont include documents in trash in counts [@shamoon](https://github.com/shamoon) ([#7111](https://github.com/paperless-ngx/paperless-ngx/pull/7111)) - Fix: use temp dir for split / merge [@shamoon](https://github.com/shamoon) ([#7105](https://github.com/paperless-ngx/paperless-ngx/pull/7105))

## paperless-ngx 2.10.2

### Bug Fixes

- Fix: always update document modified property on bulk edit operations @shamoon (#7079)
- Fix: correct frontend retrieval of trash delay setting @shamoon (#7067)
- Fix: index fresh document data after update archive file @shamoon (#7057)
- Fix: Safari browser PDF viewer not loading in 2.10.x @shamoon (#7056)
- Fix: Prefer the exporter metadata JSON file over the version JSON file @stumpylog (#7048)

### All App Changes

5 changes
- Fix: always update document modified property on bulk edit operations [@shamoon](https://github.com/shamoon) ([#7079](https://github.com/paperless-ngx/paperless-ngx/pull/7079)) - Fix: correct frontend retrieval of trash delay setting [@shamoon](https://github.com/shamoon) ([#7067](https://github.com/paperless-ngx/paperless-ngx/pull/7067)) - Fix: index fresh document data after update archive file [@shamoon](https://github.com/shamoon) ([#7057](https://github.com/paperless-ngx/paperless-ngx/pull/7057)) - Fix: Safari browser PDF viewer not loading in 2.10.x [@shamoon](https://github.com/shamoon) ([#7056](https://github.com/paperless-ngx/paperless-ngx/pull/7056)) - Fix: Prefer the exporter metadata JSON file over the version JSON file [@stumpylog](https://github.com/stumpylog) ([#7048](https://github.com/paperless-ngx/paperless-ngx/pull/7048))

## paperless-ngx 2.10.1

### Bug Fixes

- Fix: dont require admin perms to view trash on frontend @shamoon (#7028)

## paperless-ngx 2.10.0

### Features

- Feature: documents trash aka soft delete @shamoon (#6944)
- Enhancement: better boolean custom field display @shamoon (#7001)
- Feature: Allow encrypting sensitive fields in export @stumpylog (#6927)
- Enhancement: allow consumption of odg files @daniel-boehme (#6940)

### Bug Fixes

- Fix: Document history could include extra fields @stumpylog (#6989)
- Fix: use local pdf worker js @shamoon (#6990)
- Fix: Revert masking the content field from auditlog @tribut (#6981)
- Fix: respect model permissions for tasks API endpoint @shamoon (#6958)
- Fix: Make the logging of an email message to be something useful @stumpylog (#6901)

### Documentation

- Documentation: Corrections and clarifications for Python support @stumpylog (#6995)

### Maintenance

- Chore(deps): Bump stumpylog/image-cleaner-action from 0.6.0 to 0.7.0 in the actions group @dependabot (#6968)
- Chore: Configures dependabot to ignore djangorestframework @stumpylog (#6967)

### Dependencies

10 changes
- Chore(deps): Bump pipenv from 2023.12.1 to 2024.0.1 [@stumpylog](https://github.com/stumpylog) ([#7019](https://github.com/paperless-ngx/paperless-ngx/pull/7019)) - Chore(deps): Bump the small-changes group with 2 updates [@dependabot](https://github.com/dependabot) ([#7013](https://github.com/paperless-ngx/paperless-ngx/pull/7013)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7012](https://github.com/paperless-ngx/paperless-ngx/pull/7012)) - Chore(deps-dev): Bump ws from 8.15.1 to 8.17.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#7015](https://github.com/paperless-ngx/paperless-ngx/pull/7015)) - Chore(deps): Bump urllib3 from 2.2.1 to 2.2.2 [@dependabot](https://github.com/dependabot) ([#7014](https://github.com/paperless-ngx/paperless-ngx/pull/7014)) - Chore: update packages used by mail parser html template [@shamoon](https://github.com/shamoon) ([#6970](https://github.com/paperless-ngx/paperless-ngx/pull/6970)) - Chore(deps): Bump stumpylog/image-cleaner-action from 0.6.0 to 0.7.0 in the actions group [@dependabot](https://github.com/dependabot) ([#6968](https://github.com/paperless-ngx/paperless-ngx/pull/6968)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#6953](https://github.com/paperless-ngx/paperless-ngx/pull/6953)) - Chore: Updates to latest Trixie version of Ghostscript 10.03.1 [@stumpylog](https://github.com/stumpylog) ([#6956](https://github.com/paperless-ngx/paperless-ngx/pull/6956)) - Chore(deps): Bump tornado from 6.4 to 6.4.1 [@dependabot](https://github.com/dependabot) ([#6930](https://github.com/paperless-ngx/paperless-ngx/pull/6930))

### All App Changes

17 changes
- Chore(deps): Bump the small-changes group with 2 updates [@dependabot](https://github.com/dependabot) ([#7013](https://github.com/paperless-ngx/paperless-ngx/pull/7013)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#7012](https://github.com/paperless-ngx/paperless-ngx/pull/7012)) - Chore(deps-dev): Bump ws from 8.15.1 to 8.17.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#7015](https://github.com/paperless-ngx/paperless-ngx/pull/7015)) - Feature: documents trash aka soft delete [@shamoon](https://github.com/shamoon) ([#6944](https://github.com/paperless-ngx/paperless-ngx/pull/6944)) - Enhancement: better boolean custom field display [@shamoon](https://github.com/shamoon) ([#7001](https://github.com/paperless-ngx/paperless-ngx/pull/7001)) - Fix: default order of documents gets lost in QuerySet pipeline [@madduck](https://github.com/madduck) ([#6982](https://github.com/paperless-ngx/paperless-ngx/pull/6982)) - Fix: Document history could include extra fields [@stumpylog](https://github.com/stumpylog) ([#6989](https://github.com/paperless-ngx/paperless-ngx/pull/6989)) - Fix: use local pdf worker js [@shamoon](https://github.com/shamoon) ([#6990](https://github.com/paperless-ngx/paperless-ngx/pull/6990)) - Fix: Revert masking the content field from auditlog [@tribut](https://github.com/tribut) ([#6981](https://github.com/paperless-ngx/paperless-ngx/pull/6981)) - Chore: update packages used by mail parser html template [@shamoon](https://github.com/shamoon) ([#6970](https://github.com/paperless-ngx/paperless-ngx/pull/6970)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#6953](https://github.com/paperless-ngx/paperless-ngx/pull/6953)) - Fix: respect model permissions for tasks API endpoint [@shamoon](https://github.com/shamoon) ([#6958](https://github.com/paperless-ngx/paperless-ngx/pull/6958)) - Feature: Allow encrypting sensitive fields in export [@stumpylog](https://github.com/stumpylog) ([#6927](https://github.com/paperless-ngx/paperless-ngx/pull/6927)) - Enhancement: allow consumption of odg files [@daniel-boehme](https://github.com/daniel-boehme) ([#6940](https://github.com/paperless-ngx/paperless-ngx/pull/6940)) - Enhancement: use note model permissions for notes [@shamoon](https://github.com/shamoon) ([#6913](https://github.com/paperless-ngx/paperless-ngx/pull/6913)) - Chore: Resolves test issues with Python 3.12 [@stumpylog](https://github.com/stumpylog) ([#6902](https://github.com/paperless-ngx/paperless-ngx/pull/6902)) - Fix: Make the logging of an email message to be something useful [@stumpylog](https://github.com/stumpylog) ([#6901](https://github.com/paperless-ngx/paperless-ngx/pull/6901))

## paperless-ngx 2.9.0

### Features

- Feature: Allow a data only export/import cycle @stumpylog (#6871)
- Change: rename 'redo OCR' to 'reprocess' to clarify behavior @shamoon (#6866)
- Enhancement: Support custom path for the classification file @lino-b (#6858)
- Enhancement: default to title/content search, allow choosing full search link from global search @shamoon (#6805)
- Enhancement: only include correspondent 'last_correspondence' if requested @shamoon (#6792)
- Enhancement: delete pages PDF action @shamoon (#6772)
- Enhancement: support custom logo / title on login page @shamoon (#6775)

### Bug Fixes

- Fix: including ordering param for id__in retrievals @shamoon (#6875)
- Fix: Don't allow the workflow save to override other process updates @stumpylog (#6849)
- Fix: consistently use created_date for doc display @shamoon (#6758)

### Maintenance

- Chore: Change the code formatter to Ruff @stumpylog (#6756)
- Chore: Backend updates @stumpylog (#6755)
- Chore(deps): Bump crowdin/github-action from 1 to 2 in the actions group @dependabot (#6881)

### Dependencies

12 changes
- Chore(deps-dev): Bump jest-preset-angular from 14.0.4 to 14.1.0 in /src-ui in the frontend-jest-dependencies group [@dependabot](https://github.com/dependabot) ([#6879](https://github.com/paperless-ngx/paperless-ngx/pull/6879)) - Chore: Backend dependencies update [@stumpylog](https://github.com/stumpylog) ([#6892](https://github.com/paperless-ngx/paperless-ngx/pull/6892)) - Chore(deps): Bump crowdin/github-action from 1 to 2 in the actions group [@dependabot](https://github.com/dependabot) ([#6881](https://github.com/paperless-ngx/paperless-ngx/pull/6881)) - Chore: Updates Ghostscript to 10.03.1 [@stumpylog](https://github.com/stumpylog) ([#6854](https://github.com/paperless-ngx/paperless-ngx/pull/6854)) - Chore(deps-dev): Bump the development group across 1 directory with 2 updates [@dependabot](https://github.com/dependabot) ([#6851](https://github.com/paperless-ngx/paperless-ngx/pull/6851)) - Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#6843](https://github.com/paperless-ngx/paperless-ngx/pull/6843)) - Chore(deps): Use psycopg as recommended [@stumpylog](https://github.com/stumpylog) ([#6811](https://github.com/paperless-ngx/paperless-ngx/pull/6811)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#6793](https://github.com/paperless-ngx/paperless-ngx/pull/6793)) - Chore(deps): Bump requests from 2.31.0 to 2.32.0 [@dependabot](https://github.com/dependabot) ([#6795](https://github.com/paperless-ngx/paperless-ngx/pull/6795)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 19 updates [@dependabot](https://github.com/dependabot) ([#6761](https://github.com/paperless-ngx/paperless-ngx/pull/6761)) - Chore: Backend updates [@stumpylog](https://github.com/stumpylog) ([#6755](https://github.com/paperless-ngx/paperless-ngx/pull/6755)) - Chore: revert pngx pdf viewer to third party package [@shamoon](https://github.com/shamoon) ([#6741](https://github.com/paperless-ngx/paperless-ngx/pull/6741))

### All App Changes

19 changes
- Chore(deps-dev): Bump jest-preset-angular from 14.0.4 to 14.1.0 in /src-ui in the frontend-jest-dependencies group [@dependabot](https://github.com/dependabot) ([#6879](https://github.com/paperless-ngx/paperless-ngx/pull/6879)) - Fix: including ordering param for id\_\_in retrievals [@shamoon](https://github.com/shamoon) ([#6875](https://github.com/paperless-ngx/paperless-ngx/pull/6875)) - Feature: Allow a data only export/import cycle [@stumpylog](https://github.com/stumpylog) ([#6871](https://github.com/paperless-ngx/paperless-ngx/pull/6871)) - Change: rename 'redo OCR' to 'reprocess' to clarify behavior [@shamoon](https://github.com/shamoon) ([#6866](https://github.com/paperless-ngx/paperless-ngx/pull/6866)) - Enhancement: Support custom path for the classification file [@lino-b](https://github.com/lino-b) ([#6858](https://github.com/paperless-ngx/paperless-ngx/pull/6858)) - Chore(deps-dev): Bump the development group across 1 directory with 2 updates [@dependabot](https://github.com/dependabot) ([#6851](https://github.com/paperless-ngx/paperless-ngx/pull/6851)) - Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#6843](https://github.com/paperless-ngx/paperless-ngx/pull/6843)) - Fix: Don't allow the workflow save to override other process updates [@stumpylog](https://github.com/stumpylog) ([#6849](https://github.com/paperless-ngx/paperless-ngx/pull/6849)) - Chore(deps): Use psycopg as recommended [@stumpylog](https://github.com/stumpylog) ([#6811](https://github.com/paperless-ngx/paperless-ngx/pull/6811)) - Enhancement: default to title/content search, allow choosing full search link from global search [@shamoon](https://github.com/shamoon) ([#6805](https://github.com/paperless-ngx/paperless-ngx/pull/6805)) - Enhancement: only include correspondent 'last_correspondence' if requested [@shamoon](https://github.com/shamoon) ([#6792](https://github.com/paperless-ngx/paperless-ngx/pull/6792)) - Enhancement: accessibility improvements for tags, doc links, dashboard views [@shamoon](https://github.com/shamoon) ([#6786](https://github.com/paperless-ngx/paperless-ngx/pull/6786)) - Enhancement: delete pages PDF action [@shamoon](https://github.com/shamoon) ([#6772](https://github.com/paperless-ngx/paperless-ngx/pull/6772)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#6793](https://github.com/paperless-ngx/paperless-ngx/pull/6793)) - Enhancement: support custom logo / title on login page [@shamoon](https://github.com/shamoon) ([#6775](https://github.com/paperless-ngx/paperless-ngx/pull/6775)) - Chore: Change the code formatter to Ruff [@stumpylog](https://github.com/stumpylog) ([#6756](https://github.com/paperless-ngx/paperless-ngx/pull/6756)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 19 updates [@dependabot](https://github.com/dependabot) ([#6761](https://github.com/paperless-ngx/paperless-ngx/pull/6761)) - Fix: consistently use created_date for doc display [@shamoon](https://github.com/shamoon) ([#6758](https://github.com/paperless-ngx/paperless-ngx/pull/6758)) - Chore: revert pngx pdf viewer to third party package [@shamoon](https://github.com/shamoon) ([#6741](https://github.com/paperless-ngx/paperless-ngx/pull/6741))

## paperless-ngx 2.8.6

### Bug Fixes

- Security: disallow API remote-user auth if disabled @shamoon (#6739)
- Fix: retain sort field from global search filtering, use FILTER_HAS_TAGS_ALL @shamoon (#6737)

### All App Changes

2 changes
- Security: disallow API remote-user auth if disabled [@shamoon](https://github.com/shamoon) ([#6739](https://github.com/paperless-ngx/paperless-ngx/pull/6739)) - Fix: retain sort field from global search filtering, use FILTER_HAS_TAGS_ALL [@shamoon](https://github.com/shamoon) ([#6737](https://github.com/paperless-ngx/paperless-ngx/pull/6737))

## paperless-ngx 2.8.5

### Bug Fixes

- Fix: restore search highlighting on large cards results @shamoon (#6728)
- Fix: global search filtering links broken in 2.8.4 @shamoon (#6726)
- Fix: some buttons incorrectly aligned in 2.8.4 @shamoon (#6715)
- Fix: don't format ASN as number on dashboard @shamoon (#6708)

### All App Changes

4 changes
- Fix: restore search highlighting on large cards results [@shamoon](https://github.com/shamoon) ([#6728](https://github.com/paperless-ngx/paperless-ngx/pull/6728)) - Fix: global search filtering links broken in 2.8.4 [@shamoon](https://github.com/shamoon) ([#6726](https://github.com/paperless-ngx/paperless-ngx/pull/6726)) - Fix: some buttons incorrectly aligned in 2.8.4 [@shamoon](https://github.com/shamoon) ([#6715](https://github.com/paperless-ngx/paperless-ngx/pull/6715)) - Fix: don't format ASN as number on dashboard [@shamoon](https://github.com/shamoon) ([#6708](https://github.com/paperless-ngx/paperless-ngx/pull/6708))

## paperless-ngx 2.8.4

### Features

- Enhancement: display current ASN in statistics @darmiel (#6692)
- Enhancement: global search tweaks @shamoon (#6674)

### Bug Fixes

- Security: Correctly disable in pdfjs @shamoon (#6702)
- Fix: history timestamp tooltip illegible in dark mode @shamoon (#6696)
- Fix: only count inbox documents from inbox tags with permissions @shamoon (#6670)

### All App Changes

5 changes
- Enhancement: global search tweaks [@shamoon](https://github.com/shamoon) ([#6674](https://github.com/paperless-ngx/paperless-ngx/pull/6674)) - Security: Correctly disable in pdfjs [@shamoon](https://github.com/shamoon) ([#6702](https://github.com/paperless-ngx/paperless-ngx/pull/6702)) - Fix: history timestamp tooltip illegible in dark mode [@shamoon](https://github.com/shamoon) ([#6696](https://github.com/paperless-ngx/paperless-ngx/pull/6696)) - Enhancement: display current ASN in statistics [@darmiel](https://github.com/darmiel) ([#6692](https://github.com/paperless-ngx/paperless-ngx/pull/6692)) - Fix: only count inbox documents from inbox tags with permissions [@shamoon](https://github.com/shamoon) ([#6670](https://github.com/paperless-ngx/paperless-ngx/pull/6670))

## paperless-ngx 2.8.3

### Bug Fixes

- Fix: respect superuser for document history @shamoon (#6661)
- Fix: allow 0 in monetary field @shamoon (#6658)
- Fix: custom field removal doesn't always trigger change detection @shamoon (#6653)
- Fix: Downgrade and lock lxml @stumpylog (#6655)
- Fix: correctly handle global search esc key when open and button foucsed @shamoon (#6644)
- Fix: consistent monetary field display in list and cards @shamoon (#6645)
- Fix: doc links and more illegible in light mode @shamoon (#6643)
- Fix: Allow auditlog to be disabled @stumpylog (#6638)

### Documentation

- Chore(docs): Update the sample Compose file to latest database @stumpylog (#6639)

### All App Changes

7 changes
- Fix: respect superuser for document history [@shamoon](https://github.com/shamoon) ([#6661](https://github.com/paperless-ngx/paperless-ngx/pull/6661)) - Fix: allow 0 in monetary field [@shamoon](https://github.com/shamoon) ([#6658](https://github.com/paperless-ngx/paperless-ngx/pull/6658)) - Fix: custom field removal doesn't always trigger change detection [@shamoon](https://github.com/shamoon) ([#6653](https://github.com/paperless-ngx/paperless-ngx/pull/6653)) - Fix: correctly handle global search esc key when open and button foucsed [@shamoon](https://github.com/shamoon) ([#6644](https://github.com/paperless-ngx/paperless-ngx/pull/6644)) - Fix: consistent monetary field display in list and cards [@shamoon](https://github.com/shamoon) ([#6645](https://github.com/paperless-ngx/paperless-ngx/pull/6645)) - Fix: doc links and more illegible in light mode [@shamoon](https://github.com/shamoon) ([#6643](https://github.com/paperless-ngx/paperless-ngx/pull/6643)) - Fix: Allow auditlog to be disabled [@stumpylog](https://github.com/stumpylog) ([#6638](https://github.com/paperless-ngx/paperless-ngx/pull/6638))

## paperless-ngx 2.8.2

### Bug Fixes

- Fix: Restore the compression of static files for x86_64 @stumpylog (#6627)
- Fix: make backend monetary validation accept unpadded decimals @shamoon (#6626)
- Fix: allow bulk edit with existing fields @shamoon (#6625)
- Fix: table view doesn't immediately display custom fields on app startup @shamoon (#6600)
- Fix: dont use limit in subqueries in global search for mariadb compatibility @shamoon (#6611)
- Fix: exclude admin perms from group permissions serializer @shamoon (#6608)
- Fix: global search text illegible in light mode @shamoon (#6602)
- Fix: document history text color illegible in light mode @shamoon (#6601)

### All App Changes

10 changes
- Fix: Restore the compression of static files for x86_64 [@stumpylog](https://github.com/stumpylog) ([#6627](https://github.com/paperless-ngx/paperless-ngx/pull/6627)) - Fix: make backend monetary validation accept unpadded decimals [@shamoon](https://github.com/shamoon) ([#6626](https://github.com/paperless-ngx/paperless-ngx/pull/6626)) - Fix: allow bulk edit with existing fields [@shamoon](https://github.com/shamoon) ([#6625](https://github.com/paperless-ngx/paperless-ngx/pull/6625)) - Enhancement: show custom field name on cards if empty, add tooltip [@shamoon](https://github.com/shamoon) ([#6620](https://github.com/paperless-ngx/paperless-ngx/pull/6620)) - Security: Disable in pdfjs [@shamoon](https://github.com/shamoon) ([#6615](https://github.com/paperless-ngx/paperless-ngx/pull/6615)) - Fix: table view doesn't immediately display custom fields on app startup [@shamoon](https://github.com/shamoon) ([#6600](https://github.com/paperless-ngx/paperless-ngx/pull/6600)) - Fix: dont use limit in subqueries in global search for mariadb compatibility [@shamoon](https://github.com/shamoon) ([#6611](https://github.com/paperless-ngx/paperless-ngx/pull/6611)) - Fix: exclude admin perms from group permissions serializer [@shamoon](https://github.com/shamoon) ([#6608](https://github.com/paperless-ngx/paperless-ngx/pull/6608)) - Fix: global search text illegible in light mode [@shamoon](https://github.com/shamoon) ([#6602](https://github.com/paperless-ngx/paperless-ngx/pull/6602)) - Fix: document history text color illegible in light mode [@shamoon](https://github.com/shamoon) ([#6601](https://github.com/paperless-ngx/paperless-ngx/pull/6601))

## paperless-ngx 2.8.1

### Bug Fixes

- Fix: saved views dont immediately display custom fields in table view @shamoon (#6594)
- Fix: bulk edit custom fields should support multiple items @shamoon (#6589)

### Dependencies

- Chore(deps-dev): Bump jinja2 from 3.1.3 to 3.1.4 @dependabot (#6579)
- Chore(deps-dev): Bump mkdocs-glightbox from 0.3.7 to 0.4.0 in the small-changes group @dependabot (#6581)

### All App Changes

3 changes
- Fix: saved views dont immediately display custom fields in table view [@shamoon](https://github.com/shamoon) ([#6594](https://github.com/paperless-ngx/paperless-ngx/pull/6594)) - Chore(deps-dev): Bump mkdocs-glightbox from 0.3.7 to 0.4.0 in the small-changes group [@dependabot](https://github.com/dependabot) ([#6581](https://github.com/paperless-ngx/paperless-ngx/pull/6581)) - Fix: bulk edit custom fields should support multiple items [@shamoon](https://github.com/shamoon) ([#6589](https://github.com/paperless-ngx/paperless-ngx/pull/6589))

## paperless-ngx 2.8.0

### Breaking Changes

- Fix: remove admin.logentry perm, use admin (staff) status @shamoon (#6380)

### Notable Changes

- Feature: global search, keyboard shortcuts / hotkey support @shamoon (#6449)
- Feature: custom fields filtering \& bulk editing @shamoon (#6484)
- Feature: customizable fields display for documents, saved views \& dashboard widgets @shamoon (#6439)
- Feature: document history (audit log UI) @shamoon (#6388)
- Chore: Convert the consumer to a plugin @stumpylog (#6361)

### Features

- Feature: global search, keyboard shortcuts / hotkey support @shamoon (#6449)
- Feature: customizable fields display for documents, saved views \& dashboard widgets @shamoon (#6439)
- Feature: document history (audit log UI) @shamoon (#6388)
- Enhancement: refactor monetary field @shamoon (#6370)
- Chore: Convert the consumer to a plugin @stumpylog (#6361)

### Bug Fixes

- Fix: always check workflow if set @shamoon (#6474)
- Fix: use responsive tables for management lists @DlieBG (#6460)
- Fix: password reset done template @shamoon (#6444)
- Fix: show message on empty group list @DlieBG (#6393)
- Fix: remove admin.logentry perm, use admin (staff) status @shamoon (#6380)
- Fix: dont dismiss active alerts on dismiss completed @shamoon (#6364)
- Fix: Allow lowercase letters in monetary currency code field @shamoon (#6359)
- Fix: Allow negative monetary values with a current code @stumpylog (#6358)
- Fix: add timezone fallback to install script @Harald-Berghoff (#6336)

### Maintenance

- Chore(deps): Bump stumpylog/image-cleaner-action from 0.5.0 to 0.6.0 in the actions group @dependabot (#6541)
- Chore(deps): Bump all allowed backend packages @stumpylog (#6562)

### Dependencies

10 changes
- Chore(deps): Bump stumpylog/image-cleaner-action from 0.5.0 to 0.6.0 in the actions group [@dependabot](https://github.com/dependabot) ([#6541](https://github.com/paperless-ngx/paperless-ngx/pull/6541)) - Chore(deps-dev): Bump ejs from 3.1.9 to 3.1.10 in /src-ui [@dependabot](https://github.com/dependabot) ([#6540](https://github.com/paperless-ngx/paperless-ngx/pull/6540)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 13 updates [@dependabot](https://github.com/dependabot) ([#6539](https://github.com/paperless-ngx/paperless-ngx/pull/6539)) - Chore(deps): Bump python-ipware from 2.0.3 to 3.0.0 in the major-versions group [@dependabot](https://github.com/dependabot) ([#6468](https://github.com/paperless-ngx/paperless-ngx/pull/6468)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#6466](https://github.com/paperless-ngx/paperless-ngx/pull/6466)) - Chore: Updates Docker bundled QPDF to 11.9.0 [@stumpylog](https://github.com/stumpylog) ([#6423](https://github.com/paperless-ngx/paperless-ngx/pull/6423)) - Chore(deps): Bump gunicorn from 21.2.0 to 22.0.0 [@dependabot](https://github.com/dependabot) ([#6416](https://github.com/paperless-ngx/paperless-ngx/pull/6416)) - Chore(deps): Bump the small-changes group with 11 updates [@dependabot](https://github.com/dependabot) ([#6405](https://github.com/paperless-ngx/paperless-ngx/pull/6405)) - Chore(deps): Bump idna from 3.6 to 3.7 [@dependabot](https://github.com/dependabot) ([#6377](https://github.com/paperless-ngx/paperless-ngx/pull/6377)) - Chore(deps): Bump tar from 6.2.0 to 6.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#6373](https://github.com/paperless-ngx/paperless-ngx/pull/6373))

### All App Changes

23 changes
- Feature: global search, keyboard shortcuts / hotkey support [@shamoon](https://github.com/shamoon) ([#6449](https://github.com/paperless-ngx/paperless-ngx/pull/6449)) - Chore(deps-dev): Bump ejs from 3.1.9 to 3.1.10 in /src-ui [@dependabot](https://github.com/dependabot) ([#6540](https://github.com/paperless-ngx/paperless-ngx/pull/6540)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 13 updates [@dependabot](https://github.com/dependabot) ([#6539](https://github.com/paperless-ngx/paperless-ngx/pull/6539)) - Chore: Hand craft SQL queries [@stumpylog](https://github.com/stumpylog) ([#6489](https://github.com/paperless-ngx/paperless-ngx/pull/6489)) - Feature: custom fields filtering \& bulk editing [@shamoon](https://github.com/shamoon) ([#6484](https://github.com/paperless-ngx/paperless-ngx/pull/6484)) - Feature: customizable fields display for documents, saved views \& dashboard widgets [@shamoon](https://github.com/shamoon) ([#6439](https://github.com/paperless-ngx/paperless-ngx/pull/6439)) - Chore(deps): Bump python-ipware from 2.0.3 to 3.0.0 in the major-versions group [@dependabot](https://github.com/dependabot) ([#6468](https://github.com/paperless-ngx/paperless-ngx/pull/6468)) - Feature: document history (audit log UI) [@shamoon](https://github.com/shamoon) ([#6388](https://github.com/paperless-ngx/paperless-ngx/pull/6388)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#6466](https://github.com/paperless-ngx/paperless-ngx/pull/6466)) - Fix: always check workflow if set [@shamoon](https://github.com/shamoon) ([#6474](https://github.com/paperless-ngx/paperless-ngx/pull/6474)) - Fix: use responsive tables for management lists [@DlieBG](https://github.com/DlieBG) ([#6460](https://github.com/paperless-ngx/paperless-ngx/pull/6460)) - Fix: password reset done template [@shamoon](https://github.com/shamoon) ([#6444](https://github.com/paperless-ngx/paperless-ngx/pull/6444)) - Enhancement: refactor monetary field [@shamoon](https://github.com/shamoon) ([#6370](https://github.com/paperless-ngx/paperless-ngx/pull/6370)) - Enhancement: improve layout, button labels for custom fields dropdown [@shamoon](https://github.com/shamoon) ([#6362](https://github.com/paperless-ngx/paperless-ngx/pull/6362)) - Chore: Convert the consumer to a plugin [@stumpylog](https://github.com/stumpylog) ([#6361](https://github.com/paperless-ngx/paperless-ngx/pull/6361)) - Chore(deps): Bump the small-changes group with 11 updates [@dependabot](https://github.com/dependabot) ([#6405](https://github.com/paperless-ngx/paperless-ngx/pull/6405)) - Enhancement: Hide columns in document list if user does not have permissions [@theomega](https://github.com/theomega) ([#6415](https://github.com/paperless-ngx/paperless-ngx/pull/6415)) - Fix: show message on empty group list [@DlieBG](https://github.com/DlieBG) ([#6393](https://github.com/paperless-ngx/paperless-ngx/pull/6393)) - Fix: remove admin.logentry perm, use admin (staff) status [@shamoon](https://github.com/shamoon) ([#6380](https://github.com/paperless-ngx/paperless-ngx/pull/6380)) - Chore(deps): Bump tar from 6.2.0 to 6.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#6373](https://github.com/paperless-ngx/paperless-ngx/pull/6373)) - Fix: dont dismiss active alerts on dismiss completed [@shamoon](https://github.com/shamoon) ([#6364](https://github.com/paperless-ngx/paperless-ngx/pull/6364)) - Fix: Allow lowercase letters in monetary currency code field [@shamoon](https://github.com/shamoon) ([#6359](https://github.com/paperless-ngx/paperless-ngx/pull/6359)) - Fix: Allow negative monetary values with a current code [@stumpylog](https://github.com/stumpylog) ([#6358](https://github.com/paperless-ngx/paperless-ngx/pull/6358))

## paperless-ngx 2.7.2

### Bug Fixes

- Fix: select dropdown background colors not visible in light mode @shamoon (#6323)
- Fix: spacing in reset and incorrect display in saved views @shamoon (#6324)
- Fix: disable invalid create endpoints @shamoon (#6320)
- Fix: dont initialize page numbers, allow split with browser pdf viewer @shamoon (#6314)

### All App Changes

4 changes
- Fix: select dropdown background colors not visible in light mode [@shamoon](https://github.com/shamoon) ([#6323](https://github.com/paperless-ngx/paperless-ngx/pull/6323)) - Fix: spacing in reset and incorrect display in saved views [@shamoon](https://github.com/shamoon) ([#6324](https://github.com/paperless-ngx/paperless-ngx/pull/6324)) - Fix: disable invalid create endpoints [@shamoon](https://github.com/shamoon) ([#6320](https://github.com/paperless-ngx/paperless-ngx/pull/6320)) - Fix: dont initialize page numbers, allow split with browser pdf viewer [@shamoon](https://github.com/shamoon) ([#6314](https://github.com/paperless-ngx/paperless-ngx/pull/6314))

## paperless-ngx 2.7.1

### Bug Fixes

- Fix: Only disable split button if pages = 1 @shamoon (#6304)
- Fix: Use correct custom field id when splitting @shamoon (#6303)
- Fix: Rotation fails due to celery chord @stumpylog (#6306)
- Fix: split user / group objects error @shamoon (#6302)

### All App Changes

4 changes
- Fix: Only disable split button if pages = 1 [@shamoon](https://github.com/shamoon) ([#6304](https://github.com/paperless-ngx/paperless-ngx/pull/6304)) - Fix: Use correct custom field id when splitting [@shamoon](https://github.com/shamoon) ([#6303](https://github.com/paperless-ngx/paperless-ngx/pull/6303)) - Fix: Rotation fails due to celery chord [@stumpylog](https://github.com/stumpylog) ([#6306](https://github.com/paperless-ngx/paperless-ngx/pull/6306)) - Fix: split user / group objects error [@shamoon](https://github.com/shamoon) ([#6302](https://github.com/paperless-ngx/paperless-ngx/pull/6302))

## paperless-ngx 2.7.0

### Notable Changes

- Feature: PDF actions - merge, split \& rotate @shamoon (#6094)
- Change: enable auditlog by default, fix import / export @shamoon (#6267)

### Enhancements

- Enhancement: always place search term first in autocomplete results @shamoon (#6142)

### Maintenance

- Chore: Standardize subprocess running and logging @stumpylog (#6275)

### Bug Fixes

- Fix: Escape the secret key when writing it to the env file @stumpylog (#6243)
- Fix: Hide sidebar labels if group is empty @shamoon (#6254)
- Fix: management list clear all should clear header checkbox @shamoon (#6253)
- Fix: start-align object names in some UI lists @shamoon (#6188)
- Fix: allow scroll long upload files alerts list @shamoon (#6184)
- Fix: document_renamer fails with audit_log enabled @shamoon (#6175)
- Fix: catch sessionStorage errors for large documents @shamoon (#6150)

### Dependencies

9 changes
- Chore(deps): Bump pillow from 10.2.0 to 10.3.0 [@dependabot](https://github.com/dependabot) ([#6268](https://github.com/paperless-ngx/paperless-ngx/pull/6268)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#6276](https://github.com/paperless-ngx/paperless-ngx/pull/6276)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 17 updates [@dependabot](https://github.com/dependabot) ([#6248](https://github.com/paperless-ngx/paperless-ngx/pull/6248)) - Chore(deps-dev): Bump [@playwright/test from 1.42.0 to 1.42.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.42.0 to 1.42.1 in /src-ui @dependabot) ([#6250](https://github.com/paperless-ngx/paperless-ngx/pull/6250)) - Chore(deps-dev): Bump [@types/node from 20.11.24 to 20.12.2 in /src-ui @dependabot](https://github.com/types/node from 20.11.24 to 20.12.2 in /src-ui @dependabot) ([#6251](https://github.com/paperless-ngx/paperless-ngx/pull/6251)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#6249](https://github.com/paperless-ngx/paperless-ngx/pull/6249)) - Chore(deps-dev): Bump express from 4.18.3 to 4.19.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#6207](https://github.com/paperless-ngx/paperless-ngx/pull/6207)) - Chore(deps-dev): Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#6161](https://github.com/paperless-ngx/paperless-ngx/pull/6161)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#6131](https://github.com/paperless-ngx/paperless-ngx/pull/6131))

### All App Changes

20 changes
- Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#6276](https://github.com/paperless-ngx/paperless-ngx/pull/6276)) - Chore: Standardize subprocess running and logging [@stumpylog](https://github.com/stumpylog) ([#6275](https://github.com/paperless-ngx/paperless-ngx/pull/6275)) - Change: enable auditlog by default, fix import / export [@shamoon](https://github.com/shamoon) ([#6267](https://github.com/paperless-ngx/paperless-ngx/pull/6267)) - Fix: Hide sidebar labels if group is empty [@shamoon](https://github.com/shamoon) ([#6254](https://github.com/paperless-ngx/paperless-ngx/pull/6254)) - Fix: management list clear all should clear header checkbox [@shamoon](https://github.com/shamoon) ([#6253](https://github.com/paperless-ngx/paperless-ngx/pull/6253)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 17 updates [@dependabot](https://github.com/dependabot) ([#6248](https://github.com/paperless-ngx/paperless-ngx/pull/6248)) - Chore(deps-dev): Bump [@playwright/test from 1.42.0 to 1.42.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.42.0 to 1.42.1 in /src-ui @dependabot) ([#6250](https://github.com/paperless-ngx/paperless-ngx/pull/6250)) - Chore(deps-dev): Bump [@types/node from 20.11.24 to 20.12.2 in /src-ui @dependabot](https://github.com/types/node from 20.11.24 to 20.12.2 in /src-ui @dependabot) ([#6251](https://github.com/paperless-ngx/paperless-ngx/pull/6251)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#6249](https://github.com/paperless-ngx/paperless-ngx/pull/6249)) - Enhancement: support custom fields in post_document endpoint [@shamoon](https://github.com/shamoon) ([#6222](https://github.com/paperless-ngx/paperless-ngx/pull/6222)) - Enhancement: add ASN to consume rejection message [@eliasp](https://github.com/eliasp) ([#6217](https://github.com/paperless-ngx/paperless-ngx/pull/6217)) - Chore(deps-dev): Bump express from 4.18.3 to 4.19.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#6207](https://github.com/paperless-ngx/paperless-ngx/pull/6207)) - Feature: PDF actions - merge, split \& rotate [@shamoon](https://github.com/shamoon) ([#6094](https://github.com/paperless-ngx/paperless-ngx/pull/6094)) - Fix: start-align object names in some UI lists [@shamoon](https://github.com/shamoon) ([#6188](https://github.com/paperless-ngx/paperless-ngx/pull/6188)) - Fix: allow scroll long upload files alerts list [@shamoon](https://github.com/shamoon) ([#6184](https://github.com/paperless-ngx/paperless-ngx/pull/6184)) - Fix: document_renamer fails with audit_log enabled [@shamoon](https://github.com/shamoon) ([#6175](https://github.com/paperless-ngx/paperless-ngx/pull/6175)) - Chore(deps-dev): Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#6161](https://github.com/paperless-ngx/paperless-ngx/pull/6161)) - Enhancement: always place search term first in autocomplete results [@shamoon](https://github.com/shamoon) ([#6142](https://github.com/paperless-ngx/paperless-ngx/pull/6142)) - Fix: catch sessionStorage errors for large documents [@shamoon](https://github.com/shamoon) ([#6150](https://github.com/paperless-ngx/paperless-ngx/pull/6150)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#6131](https://github.com/paperless-ngx/paperless-ngx/pull/6131))

## paperless-ngx 2.6.3

### Bug Fixes

- Fix: allow setting allauth @shamoon (#6105)
- Change: dont require empty bulk edit parameters @shamoon (#6059)

### Dependencies

4 changes
- Chore(deps-dev): Bump follow-redirects from 1.15.5 to 1.15.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#6120](https://github.com/paperless-ngx/paperless-ngx/pull/6120)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#6079](https://github.com/paperless-ngx/paperless-ngx/pull/6079)) - Chore(deps): Bump the django group with 1 update [@dependabot](https://github.com/dependabot) ([#6080](https://github.com/paperless-ngx/paperless-ngx/pull/6080)) - Chore(deps): Bump the small-changes group with 2 updates [@dependabot](https://github.com/dependabot) ([#6081](https://github.com/paperless-ngx/paperless-ngx/pull/6081))

### All App Changes

8 changes
- Chore(deps-dev): Bump follow-redirects from 1.15.5 to 1.15.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#6120](https://github.com/paperless-ngx/paperless-ngx/pull/6120)) - Fix: allow setting allauth [@shamoon](https://github.com/shamoon) ([#6105](https://github.com/paperless-ngx/paperless-ngx/pull/6105)) - Change: remove credentials from redis url in system status [@shamoon](https://github.com/shamoon) ([#6104](https://github.com/paperless-ngx/paperless-ngx/pull/6104)) - Chore(deps-dev): Bump the development group with 3 updates [@dependabot](https://github.com/dependabot) ([#6079](https://github.com/paperless-ngx/paperless-ngx/pull/6079)) - Chore(deps): Bump the django group with 1 update [@dependabot](https://github.com/dependabot) ([#6080](https://github.com/paperless-ngx/paperless-ngx/pull/6080)) - Chore(deps): Bump the small-changes group with 2 updates [@dependabot](https://github.com/dependabot) ([#6081](https://github.com/paperless-ngx/paperless-ngx/pull/6081)) - Change: dont require empty bulk edit parameters [@shamoon](https://github.com/shamoon) ([#6059](https://github.com/paperless-ngx/paperless-ngx/pull/6059)) - Fix: missing translation string [@DimitriDR](https://github.com/DimitriDR) ([#6054](https://github.com/paperless-ngx/paperless-ngx/pull/6054))

## paperless-ngx 2.6.2

### Features

- Enhancement: move and rename files when storage paths deleted, update file handling docs @shamoon (#6033)
- Enhancement: better detection of default currency code @shamoon (#6020)

### Bug Fixes

- Fix: make document counts in object lists permissions-aware @shamoon (#6019)

### All App Changes

3 changes
- Enhancement: move and rename files when storage paths deleted, update file handling docs [@shamoon](https://github.com/shamoon) ([#6033](https://github.com/paperless-ngx/paperless-ngx/pull/6033)) - Fix: make document counts in object lists permissions-aware [@shamoon](https://github.com/shamoon) ([#6019](https://github.com/paperless-ngx/paperless-ngx/pull/6019)) - Enhancement: better detection of default currency code [@shamoon](https://github.com/shamoon) ([#6020](https://github.com/paperless-ngx/paperless-ngx/pull/6020))

## paperless-ngx 2.6.1

### All App Changes

- Change: tweaks to system status @shamoon (#6008)

## paperless-ngx 2.6.0

### Features

- Feature: Allow user to control PIL image pixel limit @stumpylog (#5997)
- Feature: Allow a user to disable the pixel limit for OCR entirely @stumpylog (#5996)
- Feature: workflow removal action @shamoon (#5928)
- Feature: system status @shamoon (#5743)
- Enhancement: better monetary field with currency code @shamoon (#5858)
- Enhancement: support disabling regular login @shamoon (#5816)

### Bug Fixes

- Fix: refactor base path settings, correct logout redirect @shamoon (#5976)
- Fix: always pass from UI, dont require in API @shamoon (#5962)
- Fix: Clear metadata cache when the filename(s) change @stumpylog (#5957)
- Fix: include monetary, float and doc link values in search filters @shamoon (#5951)
- Fix: Better handling of a corrupted index @stumpylog (#5950)
- Fix: Don't assume the location of scratch directory in Docker @stumpylog (#5948)
- Fix: ensure document title always limited to 128 chars @shamoon (#5934)
- Fix: use for password reset emails, if set @shamoon (#5902)
- Fix: Correct docker compose check in install script @ShanSanear (#5917)
- Fix: respect global permissions for UI settings @shamoon (#5919)
- Fix: allow disable email verification during signup @shamoon (#5895)
- Fix: refactor accounts templates and create signup template @shamoon (#5899)

### Maintenance

- Chore(deps): Bump the actions group with 3 updates @dependabot (#5907)
- Chore: Ignores uvicorn updates in dependabot @stumpylog (#5906)

### Dependencies

15 changes
- Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#6001](https://github.com/paperless-ngx/paperless-ngx/pull/6001)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#5998](https://github.com/paperless-ngx/paperless-ngx/pull/5998)) - Chore(deps): Bump the django group with 1 update [@dependabot](https://github.com/dependabot) ([#6000](https://github.com/paperless-ngx/paperless-ngx/pull/6000)) - Chore(deps-dev): Bump [@playwright/test from 1.41.2 to 1.42.0 in /src-ui @dependabot](https://github.com/playwright/test from 1.41.2 to 1.42.0 in /src-ui @dependabot) ([#5964](https://github.com/paperless-ngx/paperless-ngx/pull/5964)) - Chore(deps-dev): Bump [@types/node from 20.11.20 to 20.11.24 in /src-ui @dependabot](https://github.com/types/node from 20.11.20 to 20.11.24 in /src-ui @dependabot) ([#5965](https://github.com/paperless-ngx/paperless-ngx/pull/5965)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 11 updates [@dependabot](https://github.com/dependabot) ([#5963](https://github.com/paperless-ngx/paperless-ngx/pull/5963)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#5918](https://github.com/paperless-ngx/paperless-ngx/pull/5918)) - Chore(deps-dev): Bump [@types/node from 20.11.16 to 20.11.20 in /src-ui @dependabot](https://github.com/types/node from 20.11.16 to 20.11.20 in /src-ui @dependabot) ([#5912](https://github.com/paperless-ngx/paperless-ngx/pull/5912)) - Chore(deps): Bump zone.js from 0.14.3 to 0.14.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#5913](https://github.com/paperless-ngx/paperless-ngx/pull/5913)) - Chore(deps): Bump bootstrap from 5.3.2 to 5.3.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#5911](https://github.com/paperless-ngx/paperless-ngx/pull/5911)) - Chore(deps-dev): Bump typescript from 5.2.2 to 5.3.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#5915](https://github.com/paperless-ngx/paperless-ngx/pull/5915)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 15 updates [@dependabot](https://github.com/dependabot) ([#5908](https://github.com/paperless-ngx/paperless-ngx/pull/5908)) - Chore(deps): Bump the small-changes group with 4 updates [@dependabot](https://github.com/dependabot) ([#5916](https://github.com/paperless-ngx/paperless-ngx/pull/5916)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#5914](https://github.com/paperless-ngx/paperless-ngx/pull/5914)) - Chore(deps): Bump the actions group with 3 updates [@dependabot](https://github.com/dependabot) ([#5907](https://github.com/paperless-ngx/paperless-ngx/pull/5907))

### All App Changes

33 changes
- Feature: Allow user to control PIL image pixel limit [@stumpylog](https://github.com/stumpylog) ([#5997](https://github.com/paperless-ngx/paperless-ngx/pull/5997)) - Enhancement: show ID when editing objects [@shamoon](https://github.com/shamoon) ([#6003](https://github.com/paperless-ngx/paperless-ngx/pull/6003)) - Feature: Allow a user to disable the pixel limit for OCR entirely [@stumpylog](https://github.com/stumpylog) ([#5996](https://github.com/paperless-ngx/paperless-ngx/pull/5996)) - Chore(deps): Bump the small-changes group with 3 updates [@dependabot](https://github.com/dependabot) ([#6001](https://github.com/paperless-ngx/paperless-ngx/pull/6001)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#5998](https://github.com/paperless-ngx/paperless-ngx/pull/5998)) - Chore(deps): Bump the django group with 1 update [@dependabot](https://github.com/dependabot) ([#6000](https://github.com/paperless-ngx/paperless-ngx/pull/6000)) - Feature: workflow removal action [@shamoon](https://github.com/shamoon) ([#5928](https://github.com/paperless-ngx/paperless-ngx/pull/5928)) - Feature: system status [@shamoon](https://github.com/shamoon) ([#5743](https://github.com/paperless-ngx/paperless-ngx/pull/5743)) - Fix: refactor base path settings, correct logout redirect [@shamoon](https://github.com/shamoon) ([#5976](https://github.com/paperless-ngx/paperless-ngx/pull/5976)) - Chore(deps-dev): Bump [@playwright/test from 1.41.2 to 1.42.0 in /src-ui @dependabot](https://github.com/playwright/test from 1.41.2 to 1.42.0 in /src-ui @dependabot) ([#5964](https://github.com/paperless-ngx/paperless-ngx/pull/5964)) - Chore(deps-dev): Bump [@types/node from 20.11.20 to 20.11.24 in /src-ui @dependabot](https://github.com/types/node from 20.11.20 to 20.11.24 in /src-ui @dependabot) ([#5965](https://github.com/paperless-ngx/paperless-ngx/pull/5965)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 11 updates [@dependabot](https://github.com/dependabot) ([#5963](https://github.com/paperless-ngx/paperless-ngx/pull/5963)) - Fix: always pass from UI, dont require in API [@shamoon](https://github.com/shamoon) ([#5962](https://github.com/paperless-ngx/paperless-ngx/pull/5962)) - Fix: Clear metadata cache when the filename(s) change [@stumpylog](https://github.com/stumpylog) ([#5957](https://github.com/paperless-ngx/paperless-ngx/pull/5957)) - Fix: include monetary, float and doc link values in search filters [@shamoon](https://github.com/shamoon) ([#5951](https://github.com/paperless-ngx/paperless-ngx/pull/5951)) - Fix: Better handling of a corrupted index [@stumpylog](https://github.com/stumpylog) ([#5950](https://github.com/paperless-ngx/paperless-ngx/pull/5950)) - Chore: Includes OCRMyPdf logging into the log file [@stumpylog](https://github.com/stumpylog) ([#5947](https://github.com/paperless-ngx/paperless-ngx/pull/5947)) - Fix: ensure document title always limited to 128 chars [@shamoon](https://github.com/shamoon) ([#5934](https://github.com/paperless-ngx/paperless-ngx/pull/5934)) - Enhancement: better monetary field with currency code [@shamoon](https://github.com/shamoon) ([#5858](https://github.com/paperless-ngx/paperless-ngx/pull/5858)) - Change: add Thumbs.db to default ignores [@DennisGaida](https://github.com/DennisGaida) ([#5924](https://github.com/paperless-ngx/paperless-ngx/pull/5924)) - Fix: use for password reset emails, if set [@shamoon](https://github.com/shamoon) ([#5902](https://github.com/paperless-ngx/paperless-ngx/pull/5902)) - Fix: respect global permissions for UI settings [@shamoon](https://github.com/shamoon) ([#5919](https://github.com/paperless-ngx/paperless-ngx/pull/5919)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#5918](https://github.com/paperless-ngx/paperless-ngx/pull/5918)) - Chore(deps-dev): Bump [@types/node from 20.11.16 to 20.11.20 in /src-ui @dependabot](https://github.com/types/node from 20.11.16 to 20.11.20 in /src-ui @dependabot) ([#5912](https://github.com/paperless-ngx/paperless-ngx/pull/5912)) - Chore(deps): Bump zone.js from 0.14.3 to 0.14.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#5913](https://github.com/paperless-ngx/paperless-ngx/pull/5913)) - Chore(deps): Bump bootstrap from 5.3.2 to 5.3.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#5911](https://github.com/paperless-ngx/paperless-ngx/pull/5911)) - Chore(deps-dev): Bump typescript from 5.2.2 to 5.3.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#5915](https://github.com/paperless-ngx/paperless-ngx/pull/5915)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 15 updates [@dependabot](https://github.com/dependabot) ([#5908](https://github.com/paperless-ngx/paperless-ngx/pull/5908)) - Fix: allow disable email verification during signup [@shamoon](https://github.com/shamoon) ([#5895](https://github.com/paperless-ngx/paperless-ngx/pull/5895)) - Fix: refactor accounts templates and create signup template [@shamoon](https://github.com/shamoon) ([#5899](https://github.com/paperless-ngx/paperless-ngx/pull/5899)) - Chore(deps): Bump the small-changes group with 4 updates [@dependabot](https://github.com/dependabot) ([#5916](https://github.com/paperless-ngx/paperless-ngx/pull/5916)) - Chore(deps-dev): Bump the development group with 4 updates [@dependabot](https://github.com/dependabot) ([#5914](https://github.com/paperless-ngx/paperless-ngx/pull/5914)) - Enhancement: support disabling regular login [@shamoon](https://github.com/shamoon) ([#5816](https://github.com/paperless-ngx/paperless-ngx/pull/5816))

## paperless-ngx 2.5.4

### Bug Fixes

- Fix: handle title placeholder for docs without original_filename @shamoon (#5828)
- Fix: bulk edit objects does not respect global permissions @shamoon (#5888)
- Fix: intermittent save \& close warnings @shamoon (#5838)
- Fix: inotify read timeout not in ms @grembo (#5876)
- Fix: allow relative date queries not in quick list @shamoon (#5801)
- Fix: pass rule id to consumed .eml files @shamoon (#5800)

### Dependencies

- Chore(deps): Bump cryptography from 42.0.2 to 42.0.4 @dependabot (#5851)
- Chore(deps-dev): Bump ip from 2.0.0 to 2.0.1 in /src-ui @dependabot (#5835)
- Chore(deps): Bump undici and @angular-devkit/build-angular in /src-ui @dependabot (#5796)

### All App Changes

8 changes
- Fix: handle title placeholder for docs without original_filename [@shamoon](https://github.com/shamoon) ([#5828](https://github.com/paperless-ngx/paperless-ngx/pull/5828)) - Fix: bulk edit objects does not respect global permissions [@shamoon](https://github.com/shamoon) ([#5888](https://github.com/paperless-ngx/paperless-ngx/pull/5888)) - Fix: intermittent save \& close warnings [@shamoon](https://github.com/shamoon) ([#5838](https://github.com/paperless-ngx/paperless-ngx/pull/5838)) - Fix: inotify read timeout not in ms [@grembo](https://github.com/grembo) ([#5876](https://github.com/paperless-ngx/paperless-ngx/pull/5876)) - Chore(deps-dev): Bump ip from 2.0.0 to 2.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#5835](https://github.com/paperless-ngx/paperless-ngx/pull/5835)) - Chore(deps): Bump undici and [@angular-devkit/build-angular in /src-ui @dependabot](https://github.com/angular-devkit/build-angular in /src-ui @dependabot) ([#5796](https://github.com/paperless-ngx/paperless-ngx/pull/5796)) - Fix: allow relative date queries not in quick list [@shamoon](https://github.com/shamoon) ([#5801](https://github.com/paperless-ngx/paperless-ngx/pull/5801)) - Fix: pass rule id to consumed .eml files [@shamoon](https://github.com/shamoon) ([#5800](https://github.com/paperless-ngx/paperless-ngx/pull/5800))

## paperless-ngx 2.5.3

### Bug Fixes

- Fix: dont allow allauth redirects to any host @shamoon (#5783)
- Fix: Interaction when both splitting and ASN are enabled @stumpylog (#5779)
- Fix: moved ssl_mode parameter for mysql backend engine @MaciejSzczurek (#5771)

### All App Changes

3 changes
- Fix: dont allow allauth redirects to any host [@shamoon](https://github.com/shamoon) ([#5783](https://github.com/paperless-ngx/paperless-ngx/pull/5783)) - Fix: Interaction when both splitting and ASN are enabled [@stumpylog](https://github.com/stumpylog) ([#5779](https://github.com/paperless-ngx/paperless-ngx/pull/5779)) - Fix: moved ssl_mode parameter for mysql backend engine [@MaciejSzczurek](https://github.com/MaciejSzczurek) ([#5771](https://github.com/paperless-ngx/paperless-ngx/pull/5771))

## paperless-ngx 2.5.2

### Bug Fixes

- Fix: Generated secret key may include single or double quotes @schmidtnz (#5767)
- Fix: consumer status alerts container blocks elements @shamoon (#5762)
- Fix: handle document notes user format api change @shamoon (#5751)
- Fix: Assign ASN from barcode only after any splitting @stumpylog (#5745)

### Dependencies

- Chore(deps): Bump the major-versions group with 1 update @dependabot (#5741)

### All App Changes

4 changes
- Fix: consumer status alerts container blocks elements [@shamoon](https://github.com/shamoon) ([#5762](https://github.com/paperless-ngx/paperless-ngx/pull/5762)) - Fix: handle document notes user format api change [@shamoon](https://github.com/shamoon) ([#5751](https://github.com/paperless-ngx/paperless-ngx/pull/5751)) - Fix: Assign ASN from barcode only after any splitting [@stumpylog](https://github.com/stumpylog) ([#5745](https://github.com/paperless-ngx/paperless-ngx/pull/5745)) - Chore(deps): Bump the major-versions group with 1 update [@dependabot](https://github.com/dependabot) ([#5741](https://github.com/paperless-ngx/paperless-ngx/pull/5741))

## paperless-ngx 2.5.1

### Bug Fixes

- Fix: Splitting on ASN barcodes even if not enabled @stumpylog (#5740)

### Dependencies

- Chore(deps-dev): Bump the development group with 2 updates @dependabot (#5737)
- Chore(deps): Bump the django group with 1 update @dependabot (#5739)

### All App Changes

3 changes
- Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#5737](https://github.com/paperless-ngx/paperless-ngx/pull/5737)) - Chore(deps): Bump the django group with 1 update [@dependabot](https://github.com/dependabot) ([#5739](https://github.com/paperless-ngx/paperless-ngx/pull/5739)) - Fix: Splitting on ASN barcodes even if not enabled [@stumpylog](https://github.com/stumpylog) ([#5740](https://github.com/paperless-ngx/paperless-ngx/pull/5740))

## paperless-ngx 2.5.0

### Breaking Changes

- Enhancement: bulk delete objects @shamoon (#5688)

### Notable Changes

- Feature: OIDC \& social authentication @mpflanzer (#5190)

### Features

- Enhancement: confirm buttons @shamoon (#5680)
- Enhancement: bulk delete objects @shamoon (#5688)
- Feature: allow create objects from bulk edit @shamoon (#5667)
- Feature: Allow tagging by putting barcodes on documents @pkrahmer (#5580)
- Feature: Cache metadata and suggestions in Redis @stumpylog (#5638)
- Feature: Japanese translation @shamoon (#5641)
- Feature: option for auto-remove inbox tags on save @shamoon (#5562)
- Enhancement: allow paperless to run in read-only filesystem @hegerdes (#5596)
- Enhancement: mergeable bulk edit permissions @shamoon (#5508)
- Enhancement: re-implement remote user auth for unsafe API requests as opt-in @shamoon (#5561)
- Enhancement: Respect PDF cropbox for thumbnail generation @henningBunk (#5531)

### Bug Fixes

- Fix: Test metadata items for Unicode issues @stumpylog (#5707)
- Change: try to show preview even if metadata fails @shamoon (#5706)
- Fix: only check workflow trigger source if not empty @shamoon (#5701)
- Fix: frontend validation of number fields fails upon save @shamoon (#5646)
- Fix: Explicit validation of custom field name unique constraint @shamoon (#5647)
- Fix: Don't attempt to retrieve object types user doesn't have permissions to @shamoon (#5612)

### Documentation

- Documentation: add detail about consumer polling behavior @silmaril42 (#5674)
- Paperless-ngx Demo: new and improved @shamoon (#5639)
- Documentation: Add docs about missing timezones in MySQL/MariaDB @Programie (#5583)

### Maintenance

- Chore(deps): Bump the actions group with 1 update @dependabot (#5629)
- Chore(deps): Bump the actions group with 1 update @dependabot (#5597)

### Dependencies

9 changes
- Chore: Backend dependencies update [@stumpylog](https://github.com/stumpylog) ([#5676](https://github.com/paperless-ngx/paperless-ngx/pull/5676)) - Chore(deps-dev): Bump [@playwright/test from 1.40.1 to 1.41.2 in /src-ui @dependabot](https://github.com/playwright/test from 1.40.1 to 1.41.2 in /src-ui @dependabot) ([#5634](https://github.com/paperless-ngx/paperless-ngx/pull/5634)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 19 updates [@dependabot](https://github.com/dependabot) ([#5630](https://github.com/paperless-ngx/paperless-ngx/pull/5630)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#5631](https://github.com/paperless-ngx/paperless-ngx/pull/5631)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#5632](https://github.com/paperless-ngx/paperless-ngx/pull/5632)) - Chore(deps): Bump zone.js from 0.14.2 to 0.14.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#5633](https://github.com/paperless-ngx/paperless-ngx/pull/5633)) - Chore(deps-dev): Bump [@types/node from 20.10.6 to 20.11.16 in /src-ui @dependabot](https://github.com/types/node from 20.10.6 to 20.11.16 in /src-ui @dependabot) ([#5635](https://github.com/paperless-ngx/paperless-ngx/pull/5635)) - Chore(deps): Bump the actions group with 1 update [@dependabot](https://github.com/dependabot) ([#5629](https://github.com/paperless-ngx/paperless-ngx/pull/5629)) - Chore(deps): Bump the actions group with 1 update [@dependabot](https://github.com/dependabot) ([#5597](https://github.com/paperless-ngx/paperless-ngx/pull/5597))

### All App Changes

28 changes
- Chore: Ensure all creations of directories create the parents too [@stumpylog](https://github.com/stumpylog) ([#5711](https://github.com/paperless-ngx/paperless-ngx/pull/5711)) - Fix: Test metadata items for Unicode issues [@stumpylog](https://github.com/stumpylog) ([#5707](https://github.com/paperless-ngx/paperless-ngx/pull/5707)) - Change: try to show preview even if metadata fails [@shamoon](https://github.com/shamoon) ([#5706](https://github.com/paperless-ngx/paperless-ngx/pull/5706)) - Fix: only check workflow trigger source if not empty [@shamoon](https://github.com/shamoon) ([#5701](https://github.com/paperless-ngx/paperless-ngx/pull/5701)) - Enhancement: confirm buttons [@shamoon](https://github.com/shamoon) ([#5680](https://github.com/paperless-ngx/paperless-ngx/pull/5680)) - Enhancement: bulk delete objects [@shamoon](https://github.com/shamoon) ([#5688](https://github.com/paperless-ngx/paperless-ngx/pull/5688)) - Chore: Backend dependencies update [@stumpylog](https://github.com/stumpylog) ([#5676](https://github.com/paperless-ngx/paperless-ngx/pull/5676)) - Feature: OIDC \& social authentication [@mpflanzer](https://github.com/mpflanzer) ([#5190](https://github.com/paperless-ngx/paperless-ngx/pull/5190)) - Chore: Don't write Python bytecode in the Docker image [@stumpylog](https://github.com/stumpylog) ([#5677](https://github.com/paperless-ngx/paperless-ngx/pull/5677)) - Feature: allow create objects from bulk edit [@shamoon](https://github.com/shamoon) ([#5667](https://github.com/paperless-ngx/paperless-ngx/pull/5667)) - Chore: Use memory cache backend in debug mode [@shamoon](https://github.com/shamoon) ([#5666](https://github.com/paperless-ngx/paperless-ngx/pull/5666)) - Chore: Adds additional rules for Ruff linter [@stumpylog](https://github.com/stumpylog) ([#5660](https://github.com/paperless-ngx/paperless-ngx/pull/5660)) - Feature: Allow tagging by putting barcodes on documents [@pkrahmer](https://github.com/pkrahmer) ([#5580](https://github.com/paperless-ngx/paperless-ngx/pull/5580)) - Feature: Cache metadata and suggestions in Redis [@stumpylog](https://github.com/stumpylog) ([#5638](https://github.com/paperless-ngx/paperless-ngx/pull/5638)) - Fix: frontend validation of number fields fails upon save [@shamoon](https://github.com/shamoon) ([#5646](https://github.com/paperless-ngx/paperless-ngx/pull/5646)) - Fix: Explicit validation of custom field name unique constraint [@shamoon](https://github.com/shamoon) ([#5647](https://github.com/paperless-ngx/paperless-ngx/pull/5647)) - Feature: Japanese translation [@shamoon](https://github.com/shamoon) ([#5641](https://github.com/paperless-ngx/paperless-ngx/pull/5641)) - Chore(deps-dev): Bump [@playwright/test from 1.40.1 to 1.41.2 in /src-ui @dependabot](https://github.com/playwright/test from 1.40.1 to 1.41.2 in /src-ui @dependabot) ([#5634](https://github.com/paperless-ngx/paperless-ngx/pull/5634)) - Feature: option for auto-remove inbox tags on save [@shamoon](https://github.com/shamoon) ([#5562](https://github.com/paperless-ngx/paperless-ngx/pull/5562)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 19 updates [@dependabot](https://github.com/dependabot) ([#5630](https://github.com/paperless-ngx/paperless-ngx/pull/5630)) - Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#5631](https://github.com/paperless-ngx/paperless-ngx/pull/5631)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#5632](https://github.com/paperless-ngx/paperless-ngx/pull/5632)) - Chore(deps): Bump zone.js from 0.14.2 to 0.14.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#5633](https://github.com/paperless-ngx/paperless-ngx/pull/5633)) - Chore(deps-dev): Bump [@types/node from 20.10.6 to 20.11.16 in /src-ui @dependabot](https://github.com/types/node from 20.10.6 to 20.11.16 in /src-ui @dependabot) ([#5635](https://github.com/paperless-ngx/paperless-ngx/pull/5635)) - Enhancement: mergeable bulk edit permissions [@shamoon](https://github.com/shamoon) ([#5508](https://github.com/paperless-ngx/paperless-ngx/pull/5508)) - Enhancement: re-implement remote user auth for unsafe API requests as opt-in [@shamoon](https://github.com/shamoon) ([#5561](https://github.com/paperless-ngx/paperless-ngx/pull/5561)) - Enhancement: Respect PDF cropbox for thumbnail generation [@henningBunk](https://github.com/henningBunk) ([#5531](https://github.com/paperless-ngx/paperless-ngx/pull/5531)) - Fix: Don't attempt to retrieve object types user doesn't have permissions to [@shamoon](https://github.com/shamoon) ([#5612](https://github.com/paperless-ngx/paperless-ngx/pull/5612))

## paperless-ngx 2.4.3

### Bug Fixes

- Fix: Ensure the scratch directory exists before consuming via the folder @stumpylog (#5579)

### All App Changes

- Fix: Ensure the scratch directory exists before consuming via the folder @stumpylog (#5579)

## paperless-ngx 2.4.2

### Bug Fixes

- Fix: improve one of the date matching regexes @shamoon (#5540)
- Fix: tweak doc detail component behavior while awaiting metadata @shamoon (#5546)

### All App Changes

2 changes
- Fix: improve one of the date matching regexes [@shamoon](https://github.com/shamoon) ([#5540](https://github.com/paperless-ngx/paperless-ngx/pull/5540)) - Fix: tweak doc detail component behavior while awaiting metadata [@shamoon](https://github.com/shamoon) ([#5546](https://github.com/paperless-ngx/paperless-ngx/pull/5546))

## paperless-ngx 2.4.1

### Breaking Changes

- Change: merge workflow permissions assignments instead of overwrite @shamoon (#5496)

### Bug Fixes

- Fix: Minor frontend things in 2.4.0 @shamoon (#5514)
- Fix: install script fails on alpine linux @shamoon (#5520)
- Fix: enforce permissions for app config @shamoon (#5516)
- Fix: render images not converted to pdf, refactor doc detail rendering @shamoon (#5475)
- Fix: Dont parse numbers with exponent as integer @shamoon (#5457)

### Maintenance

- Chore: Build fix- branches @shamoon (#5501)

### Dependencies

- Chore(deps-dev): Bump the development group with 1 update @dependabot (#5503)

### All App Changes

7 changes
- Revert "Enhancement: support remote user auth directly against API (DRF)" @shamoon ([#5534](https://github.com/paperless-ngx/paperless-ngx/pull/5534)) - Fix: Minor frontend things in 2.4.0 [@shamoon](https://github.com/shamoon) ([#5514](https://github.com/paperless-ngx/paperless-ngx/pull/5514)) - Fix: enforce permissions for app config [@shamoon](https://github.com/shamoon) ([#5516](https://github.com/paperless-ngx/paperless-ngx/pull/5516)) - Change: merge workflow permissions assignments instead of overwrite [@shamoon](https://github.com/shamoon) ([#5496](https://github.com/paperless-ngx/paperless-ngx/pull/5496)) - Chore(deps-dev): Bump the development group with 1 update [@dependabot](https://github.com/dependabot) ([#5503](https://github.com/paperless-ngx/paperless-ngx/pull/5503)) - Fix: render images not converted to pdf, refactor doc detail rendering [@shamoon](https://github.com/shamoon) ([#5475](https://github.com/paperless-ngx/paperless-ngx/pull/5475)) - Fix: Dont parse numbers with exponent as integer [@shamoon](https://github.com/shamoon) ([#5457](https://github.com/paperless-ngx/paperless-ngx/pull/5457))

## paperless-ngx 2.4.0

### Features

- Enhancement: support remote user auth directly against API (DRF) @shamoon (#5386)
- Feature: Add additional caching support to suggestions and metadata @stumpylog (#5414)
- Feature: help tooltips @shamoon (#5383)
- Enhancement: warn when outdated doc detected @shamoon (#5372)
- Feature: app branding @shamoon (#5357)

### Bug Fixes

- Fix: doc link removal when has never been assigned @shamoon (#5451)
- Fix: dont lose permissions ui if owner changed from @shamoon (#5433)
- Fix: Getting next ASN when no documents have an ASN @stumpylog (#5431)
- Fix: signin username floating label @shamoon (#5424)
- Fix: shared by me filter with multiple users / groups in postgres @shamoon (#5396)
- Fix: Catch new warning when loading the classifier @stumpylog (#5395)
- Fix: doc detail component fixes @shamoon (#5373)

### Maintenance

- Chore: better bootstrap icons @shamoon (#5403)
- Chore: Close outdated support / general discussions @shamoon (#5443)

### Dependencies

- Chore(deps): Bump the small-changes group with 2 updates @dependabot (#5413)
- Chore(deps-dev): Bump the development group with 2 updates @dependabot (#5412)
- Chore(deps-dev): Bump jinja2 from 3.1.2 to 3.1.3 @dependabot (#5352)

### All App Changes

16 changes
- Fix: doc link removal when has never been assigned [@shamoon](https://github.com/shamoon) ([#5451](https://github.com/paperless-ngx/paperless-ngx/pull/5451)) - Chore: better bootstrap icons [@shamoon](https://github.com/shamoon) ([#5403](https://github.com/paperless-ngx/paperless-ngx/pull/5403)) - Fix: dont lose permissions ui if owner changed from [@shamoon](https://github.com/shamoon) ([#5433](https://github.com/paperless-ngx/paperless-ngx/pull/5433)) - Enhancement: support remote user auth directly against API (DRF) [@shamoon](https://github.com/shamoon) ([#5386](https://github.com/paperless-ngx/paperless-ngx/pull/5386)) - Fix: Getting next ASN when no documents have an ASN [@stumpylog](https://github.com/stumpylog) ([#5431](https://github.com/paperless-ngx/paperless-ngx/pull/5431)) - Feature: Add additional caching support to suggestions and metadata [@stumpylog](https://github.com/stumpylog) ([#5414](https://github.com/paperless-ngx/paperless-ngx/pull/5414)) - Chore(deps): Bump the small-changes group with 2 updates [@dependabot](https://github.com/dependabot) ([#5413](https://github.com/paperless-ngx/paperless-ngx/pull/5413)) - Chore(deps-dev): Bump the development group with 2 updates [@dependabot](https://github.com/dependabot) ([#5412](https://github.com/paperless-ngx/paperless-ngx/pull/5412)) - Fix: signin username floating label [@shamoon](https://github.com/shamoon) ([#5424](https://github.com/paperless-ngx/paperless-ngx/pull/5424)) - Feature: help tooltips [@shamoon](https://github.com/shamoon) ([#5383](https://github.com/paperless-ngx/paperless-ngx/pull/5383)) - Enhancement / QoL: show selected tasks count [@shamoon](https://github.com/shamoon) ([#5379](https://github.com/paperless-ngx/paperless-ngx/pull/5379)) - Fix: shared by me filter with multiple users / groups in postgres [@shamoon](https://github.com/shamoon) ([#5396](https://github.com/paperless-ngx/paperless-ngx/pull/5396)) - Fix: doc detail component fixes [@shamoon](https://github.com/shamoon) ([#5373](https://github.com/paperless-ngx/paperless-ngx/pull/5373)) - Enhancement: warn when outdated doc detected [@shamoon](https://github.com/shamoon) ([#5372](https://github.com/paperless-ngx/paperless-ngx/pull/5372)) - Feature: app branding [@shamoon](https://github.com/shamoon) ([#5357](https://github.com/paperless-ngx/paperless-ngx/pull/5357)) - Chore: Initial refactor of consume task [@stumpylog](https://github.com/stumpylog) ([#5367](https://github.com/paperless-ngx/paperless-ngx/pull/5367))

## paperless-ngx 2.3.3

### Enhancements

- Enhancement: Explain behavior of unset app config boolean to user @shamoon (#5345)
- Enhancement: title assignment placeholder error handling, fallback @shamoon (#5282)

### Bug Fixes

- Fix: Don't require the JSON user arguments field, interpret empty string as @stumpylog (#5320)

### Maintenance

- Chore: Backend dependencies update @stumpylog (#5336)
- Chore: add pre-commit hook for codespell @shamoon (#5324)

### All App Changes

5 changes
- Enhancement: Explain behavior of unset app config boolean to user [@shamoon](https://github.com/shamoon) ([#5345](https://github.com/paperless-ngx/paperless-ngx/pull/5345)) - Enhancement: title assignment placeholder error handling, fallback [@shamoon](https://github.com/shamoon) ([#5282](https://github.com/paperless-ngx/paperless-ngx/pull/5282)) - Chore: Backend dependencies update [@stumpylog](https://github.com/stumpylog) ([#5336](https://github.com/paperless-ngx/paperless-ngx/pull/5336)) - Fix: Don't require the JSON user arguments field, interpret empty string as [@stumpylog](https://github.com/stumpylog) ([#5320](https://github.com/paperless-ngx/paperless-ngx/pull/5320)) - Chore: add pre-commit hook for codespell [@shamoon](https://github.com/shamoon) ([#5324](https://github.com/paperless-ngx/paperless-ngx/pull/5324))

## paperless-ngx 2.3.2

### Bug Fixes

- Fix: triggered workflow assignment of customfield fails if field exists in v2.3.1 @shamoon (#5302)
- Fix: Decoding of user arguments for OCR @stumpylog (#5307)
- Fix: empty workflow trigger match field cannot be saved in v.2.3.1 @shamoon (#5301)
- Fix: Use local time for added/updated workflow triggers @stumpylog (#5304)
- Fix: workflow edit form loses unsaved changes @shamoon (#5299)

### All App Changes

5 changes
- Fix: triggered workflow assignment of customfield fails if field exists in v2.3.1 [@shamoon](https://github.com/shamoon) ([#5302](https://github.com/paperless-ngx/paperless-ngx/pull/5302)) - Fix: Decoding of user arguments for OCR [@stumpylog](https://github.com/stumpylog) ([#5307](https://github.com/paperless-ngx/paperless-ngx/pull/5307)) - Fix: empty workflow trigger match field cannot be saved in v.2.3.1 [@shamoon](https://github.com/shamoon) ([#5301](https://github.com/paperless-ngx/paperless-ngx/pull/5301)) - Fix: Use local time for added/updated workflow triggers [@stumpylog](https://github.com/stumpylog) ([#5304](https://github.com/paperless-ngx/paperless-ngx/pull/5304)) - Fix: workflow edit form loses unsaved changes [@shamoon](https://github.com/shamoon) ([#5299](https://github.com/paperless-ngx/paperless-ngx/pull/5299))

## paperless-ngx 2.3.1

### Bug Fixes

- Fix: edit workflow form not displaying trigger settings @shamoon (#5276)
- Fix: Prevent passing 0 pages to OCRMyPDF @stumpylog (#5275)

### All App Changes

2 changes
- Fix: edit workflow form not displaying trigger settings [@shamoon](https://github.com/shamoon) ([#5276](https://github.com/paperless-ngx/paperless-ngx/pull/5276)) - Fix: Prevent passing 0 pages to OCRMyPDF [@stumpylog](https://github.com/stumpylog) ([#5275](https://github.com/paperless-ngx/paperless-ngx/pull/5275))

## paperless-ngx 2.3.0

### Notable Changes

- Feature: Workflows @shamoon (#5121)
- Feature: Allow setting backend configuration settings via the UI @stumpylog (#5126)

### Features

- Feature: Workflows @shamoon (#5121)
- Feature: Allow setting backend configuration settings via the UI @stumpylog (#5126)
- Enhancement: fetch mails in bulk @falkenbt (#5249)
- Enhancement: add parameter to post_document API @bevanjkay (#5217)

### Bug Fixes

- Chore: Replaces deprecated Django alias with standard library @stumpylog (#5262)
- Fix: Crash in barcode ASN reading when the file type isn't supported @stumpylog (#5261)
- Fix: Allows pre-consume scripts to modify the working path again @stumpylog (#5260)
- Change: Use fnmatch for more sane workflow path matching @shamoon (#5250)
- Fix: zip exports not respecting the --delete option @stumpylog (#5245)
- Fix: correctly format tip admonition @ChrisRBe (#5229)
- Fix: filename format remove none when part of directory @shamoon (#5210)
- Fix: Improve Performance for Listing and Paginating Documents @antoinelibert (#5195)
- Fix: Disable custom field remove button if user does not have permissions @shamoon (#5194)
- Fix: overlapping button focus highlight on login @shamoon (#5193)
- Fix: symmetric doc links with target doc value None @shamoon (#5187)
- Fix: setting empty doc link with docs to be removed @shamoon (#5174)
- Enhancement: improve validation of custom field values @shamoon (#5166)
- Fix: type casting of db values for 'shared by me' filter @shamoon (#5155)

### Documentation

- Fix: correctly format tip admonition @ChrisRBe (#5229)

### Maintenance

- Chore(deps): Bump the actions group with 5 updates @dependabot (#5203)

### Dependencies

4 changes
- Chore(deps): Bump the actions group with 5 updates [@dependabot](https://github.com/dependabot) ([#5203](https://github.com/paperless-ngx/paperless-ngx/pull/5203)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 10 updates [@dependabot](https://github.com/dependabot) ([#5204](https://github.com/paperless-ngx/paperless-ngx/pull/5204)) - Chore(deps-dev): Bump [@types/node from 20.10.4 to 20.10.6 in /src-ui @dependabot](https://github.com/types/node from 20.10.4 to 20.10.6 in /src-ui @dependabot) ([#5207](https://github.com/paperless-ngx/paperless-ngx/pull/5207)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#5205](https://github.com/paperless-ngx/paperless-ngx/pull/5205))

### All App Changes

21 changes
- Chore: Replaces deprecated Django alias with standard library [@stumpylog](https://github.com/stumpylog) ([#5262](https://github.com/paperless-ngx/paperless-ngx/pull/5262)) - Fix: Crash in barcode ASN reading when the file type isn't supported [@stumpylog](https://github.com/stumpylog) ([#5261](https://github.com/paperless-ngx/paperless-ngx/pull/5261)) - Fix: Allows pre-consume scripts to modify the working path again [@stumpylog](https://github.com/stumpylog) ([#5260](https://github.com/paperless-ngx/paperless-ngx/pull/5260)) - Enhancement: add basic filters for listing of custom fields [@shamoon](https://github.com/shamoon) ([#5257](https://github.com/paperless-ngx/paperless-ngx/pull/5257)) - Change: Use fnmatch for more sane workflow path matching [@shamoon](https://github.com/shamoon) ([#5250](https://github.com/paperless-ngx/paperless-ngx/pull/5250)) - Enhancement: fetch mails in bulk [@falkenbt](https://github.com/falkenbt) ([#5249](https://github.com/paperless-ngx/paperless-ngx/pull/5249)) - Fix: zip exports not respecting the --delete option [@stumpylog](https://github.com/stumpylog) ([#5245](https://github.com/paperless-ngx/paperless-ngx/pull/5245)) - Enhancement: add parameter to post_document API [@bevanjkay](https://github.com/bevanjkay) ([#5217](https://github.com/paperless-ngx/paperless-ngx/pull/5217)) - Feature: Workflows [@shamoon](https://github.com/shamoon) ([#5121](https://github.com/paperless-ngx/paperless-ngx/pull/5121)) - Fix: filename format remove none when part of directory [@shamoon](https://github.com/shamoon) ([#5210](https://github.com/paperless-ngx/paperless-ngx/pull/5210)) - Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 10 updates [@dependabot](https://github.com/dependabot) ([#5204](https://github.com/paperless-ngx/paperless-ngx/pull/5204)) - Chore(deps-dev): Bump [@types/node from 20.10.4 to 20.10.6 in /src-ui @dependabot](https://github.com/types/node from 20.10.4 to 20.10.6 in /src-ui @dependabot) ([#5207](https://github.com/paperless-ngx/paperless-ngx/pull/5207)) - Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#5205](https://github.com/paperless-ngx/paperless-ngx/pull/5205)) - Fix: Improve Performance for Listing and Paginating Documents [@antoinelibert](https://github.com/antoinelibert) ([#5195](https://github.com/paperless-ngx/paperless-ngx/pull/5195)) - Fix: Disable custom field remove button if user does not have permissions [@shamoon](https://github.com/shamoon) ([#5194](https://github.com/paperless-ngx/paperless-ngx/pull/5194)) - Fix: overlapping button focus highlight on login [@shamoon](https://github.com/shamoon) ([#5193](https://github.com/paperless-ngx/paperless-ngx/pull/5193)) - Fix: symmetric doc links with target doc value None [@shamoon](https://github.com/shamoon) ([#5187](https://github.com/paperless-ngx/paperless-ngx/pull/5187)) - Fix: setting empty doc link with docs to be removed [@shamoon](https://github.com/shamoon) ([#5174](https://github.com/paperless-ngx/paperless-ngx/pull/5174)) - Feature: Allow setting backend configuration settings via the UI [@stumpylog](https://github.com/stumpylog) ([#5126](https://github.com/paperless-ngx/paperless-ngx/pull/5126)) - Enhancement: improve validation of custom field values [@shamoon](https://github.com/shamoon) ([#5166](https://github.com/paperless-ngx/paperless-ngx/pull/5166)) - Fix: type casting of db values for 'shared by me' filter [@shamoon](https://github.com/shamoon) ([#5155](https://github.com/paperless-ngx/paperless-ngx/pull/5155))

## paperless-ngx 2.2.1

### Bug Fixes

- Fix: saving doc links with no value @shamoon (#5144)
- Fix: allow multiple consumption templates to assign the same custom field @shamoon (#5142)
- Fix: some dropdowns broken in 2.2.0 @shamoon (#5134)

### All App Changes

3 changes
- Fix: saving doc links with no value [@shamoon](https://github.com/shamoon) ([#5144](https://github.com/paperless-ngx/paperless-ngx/pull/5144)) - Fix: allow multiple consumption templates to assign the same custom field [@shamoon](https://github.com/shamoon) ([#5142](https://github.com/paperless-ngx/paperless-ngx/pull/5142)) - Fix: some dropdowns broken in 2.2.0 [@shamoon](https://github.com/shamoon) ([#5134](https://github.com/paperless-ngx/paperless-ngx/pull/5134))

## paperless-ngx 2.2.0

### Features

- Enhancement: Add tooltip for select dropdown items @shamoon (#5070)
- Chore: Update Angular to v17 including new Angular control-flow @shamoon (#4980)
- Enhancement: symmetric document links @shamoon (#4907)
- Enhancement: shared icon \& shared by me filter @shamoon (#4859)
- Enhancement: Improved popup preview, respect embedded viewer, error handling @shamoon (#4947)
- Enhancement: Allow deletion of documents via the fuzzy matching command @stumpylog (#4957)
- Enhancement: document link field fixes @shamoon (#5020)
- Enhancement: above and below doc detail save buttons @shamoon (#5008)

### Bug Fixes

- Fix: Case where a mail attachment has no filename to use @stumpylog (#5117)
- Fix: Disable auto-login for API token requests @shamoon (#5094)
- Fix: update ASN regex to support Unicode @eukub (#5099)
- Fix: ensure CSRF-Token on Index view @baflo (#5082)
- Fix: Stop auto-refresh logs / tasks after close @shamoon (#5089)
- Fix: Make the admin panel accessible when using a large number of documents @bogdal (#5052)
- Fix: dont allow null property via API @shamoon (#5063)
- Fix: Updates Ghostscript to 10.02.1 for more bug fixes to it @stumpylog (#5040)
- Fix: allow system keyboard shortcuts in date fields @shamoon (#5009)
- Fix password change detection on profile edit @shamoon (#5028)

### Documentation

- Documentation: organize API endpoints @dgsponer (#5077)

### Maintenance

- Chore: Bulk backend update @stumpylog (#5061)

### Dependencies

5 changes
- Chore: Bulk backend update [@stumpylog](https://github.com/stumpylog) ([#5061](https://github.com/paperless-ngx/paperless-ngx/pull/5061)) - Chore(deps): Bump the django group with 3 updates [@dependabot](https://github.com/dependabot) ([#5046](https://github.com/paperless-ngx/paperless-ngx/pull/5046)) - Chore(deps): Bump the major-versions group with 1 update [@dependabot](https://github.com/dependabot) ([#5047](https://github.com/paperless-ngx/paperless-ngx/pull/5047)) - Chore(deps): Bump the small-changes group with 6 updates [@dependabot](https://github.com/dependabot) ([#5048](https://github.com/paperless-ngx/paperless-ngx/pull/5048)) - Fix: Updates Ghostscript to 10.02.1 for more bug fixes to it [@stumpylog](https://github.com/stumpylog) ([#5040](https://github.com/paperless-ngx/paperless-ngx/pull/5040))

### All App Changes

20 changes
- Fix: Case where a mail attachment has no filename to use [@stumpylog](https://github.com/stumpylog) ([#5117](https://github.com/paperless-ngx/paperless-ngx/pull/5117)) - Fix: Disable auto-login for API token requests [@shamoon](https://github.com/shamoon) ([#5094](https://github.com/paperless-ngx/paperless-ngx/pull/5094)) - Fix: update ASN regex to support Unicode [@eukub](https://github.com/eukub) ([#5099](https://github.com/paperless-ngx/paperless-ngx/pull/5099)) - Fix: ensure CSRF-Token on Index view [@baflo](https://github.com/baflo) ([#5082](https://github.com/paperless-ngx/paperless-ngx/pull/5082)) - Fix: Stop auto-refresh logs / tasks after close [@shamoon](https://github.com/shamoon) ([#5089](https://github.com/paperless-ngx/paperless-ngx/pull/5089)) - Enhancement: Add tooltip for select dropdown items [@shamoon](https://github.com/shamoon) ([#5070](https://github.com/paperless-ngx/paperless-ngx/pull/5070)) - Fix: Make the admin panel accessible when using a large number of documents [@bogdal](https://github.com/bogdal) ([#5052](https://github.com/paperless-ngx/paperless-ngx/pull/5052)) - Chore: Update Angular to v17 including new Angular control-flow [@shamoon](https://github.com/shamoon) ([#4980](https://github.com/paperless-ngx/paperless-ngx/pull/4980)) - Fix: dont allow null property via API [@shamoon](https://github.com/shamoon) ([#5063](https://github.com/paperless-ngx/paperless-ngx/pull/5063)) - Enhancement: symmetric document links [@shamoon](https://github.com/shamoon) ([#4907](https://github.com/paperless-ngx/paperless-ngx/pull/4907)) - Enhancement: shared icon \& shared by me filter [@shamoon](https://github.com/shamoon) ([#4859](https://github.com/paperless-ngx/paperless-ngx/pull/4859)) - Chore(deps): Bump the django group with 3 updates [@dependabot](https://github.com/dependabot) ([#5046](https://github.com/paperless-ngx/paperless-ngx/pull/5046)) - Chore(deps): Bump the major-versions group with 1 update [@dependabot](https://github.com/dependabot) ([#5047](https://github.com/paperless-ngx/paperless-ngx/pull/5047)) - Chore(deps): Bump the small-changes group with 6 updates [@dependabot](https://github.com/dependabot) ([#5048](https://github.com/paperless-ngx/paperless-ngx/pull/5048)) - Enhancement: Improved popup preview, respect embedded viewer, error handling [@shamoon](https://github.com/shamoon) ([#4947](https://github.com/paperless-ngx/paperless-ngx/pull/4947)) - Enhancement: Add {original_filename}, {added_time} to title placeholders [@TTT7275](https://github.com/TTT7275) ([#4972](https://github.com/paperless-ngx/paperless-ngx/pull/4972)) - Feature: Allow deletion of documents via the fuzzy matching command [@stumpylog](https://github.com/stumpylog) ([#4957](https://github.com/paperless-ngx/paperless-ngx/pull/4957)) - Fix: allow system keyboard shortcuts in date fields [@shamoon](https://github.com/shamoon) ([#5009](https://github.com/paperless-ngx/paperless-ngx/pull/5009)) - Enhancement: document link field fixes [@shamoon](https://github.com/shamoon) ([#5020](https://github.com/paperless-ngx/paperless-ngx/pull/5020)) - Fix password change detection on profile edit [@shamoon](https://github.com/shamoon) ([#5028](https://github.com/paperless-ngx/paperless-ngx/pull/5028))

## paperless-ngx 2.1.3

### Bug Fixes

- Fix: Document metadata is lost during barcode splitting @stumpylog (#4982)
- Fix: Export of custom field instances during a split manifest export @stumpylog (#4984)
- Fix: Apply user arguments even in the case of the forcing OCR @stumpylog (#4981)
- Fix: support show errors for select dropdowns @shamoon (#4979)
- Fix: Don't attempt to parse none objects during date searching @bogdal (#4977)

### All App Changes

6 changes
- Refactor: Boost performance by reducing db queries [@bogdal](https://github.com/bogdal) ([#4990](https://github.com/paperless-ngx/paperless-ngx/pull/4990)) - Fix: Document metadata is lost during barcode splitting [@stumpylog](https://github.com/stumpylog) ([#4982](https://github.com/paperless-ngx/paperless-ngx/pull/4982)) - Fix: Export of custom field instances during a split manifest export [@stumpylog](https://github.com/stumpylog) ([#4984](https://github.com/paperless-ngx/paperless-ngx/pull/4984)) - Fix: Apply user arguments even in the case of the forcing OCR [@stumpylog](https://github.com/stumpylog) ([#4981](https://github.com/paperless-ngx/paperless-ngx/pull/4981)) - Fix: support show errors for select dropdowns [@shamoon](https://github.com/shamoon) ([#4979](https://github.com/paperless-ngx/paperless-ngx/pull/4979)) - Fix: Don't attempt to parse none objects during date searching [@bogdal](https://github.com/bogdal) ([#4977](https://github.com/paperless-ngx/paperless-ngx/pull/4977))

## paperless-ngx 2.1.2

### Bug Fixes

- Fix: sort consumption templates by order by default @shamoon (#4956)
- Fix: Updates gotenberg-client, including workaround for Gotenberg non-latin handling @stumpylog (#4944)
- Fix: allow text copy in pngx pdf viewer @shamoon (#4938)
- Fix: Don't allow autocomplete searches to fail on schema field matches @stumpylog (#4934)
- Fix: Convert search dates to UTC in advanced search @bogdal (#4891)
- Fix: Use the attachment filename so downstream template matching works @stumpylog (#4931)
- Fix: frontend handle autocomplete failure gracefully @shamoon (#4903)

### Dependencies

- Chore(deps-dev): Bump the small-changes group with 2 updates @dependabot (#4942)
- Chore(deps-dev): Bump the development group with 1 update @dependabot (#4939)

### All App Changes

9 changes
- Fix: sort consumption templates by order by default [@shamoon](https://github.com/shamoon) ([#4956](https://github.com/paperless-ngx/paperless-ngx/pull/4956)) - Chore: reorganize api tests [@shamoon](https://github.com/shamoon) ([#4935](https://github.com/paperless-ngx/paperless-ngx/pull/4935)) - Chore(deps-dev): Bump the small-changes group with 2 updates [@dependabot](https://github.com/dependabot) ([#4942](https://github.com/paperless-ngx/paperless-ngx/pull/4942)) - Fix: allow text copy in pngx pdf viewer [@shamoon](https://github.com/shamoon) ([#4938](https://github.com/paperless-ngx/paperless-ngx/pull/4938)) - Chore(deps-dev): Bump the development group with 1 update [@dependabot](https://github.com/dependabot) ([#4939](https://github.com/paperless-ngx/paperless-ngx/pull/4939)) - Fix: Don't allow autocomplete searches to fail on schema field matches [@stumpylog](https://github.com/stumpylog) ([#4934](https://github.com/paperless-ngx/paperless-ngx/pull/4934)) - Fix: Convert search dates to UTC in advanced search [@bogdal](https://github.com/bogdal) ([#4891](https://github.com/paperless-ngx/paperless-ngx/pull/4891)) - Fix: Use the attachment filename so downstream template matching works [@stumpylog](https://github.com/stumpylog) ([#4931](https://github.com/paperless-ngx/paperless-ngx/pull/4931)) - Fix: frontend handle autocomplete failure gracefully [@shamoon](https://github.com/shamoon) ([#4903](https://github.com/paperless-ngx/paperless-ngx/pull/4903))

## paperless-ngx 2.1.1

### Bug Fixes

- Fix: disable toggle for share link creation without archive version, fix auto-copy in Safari @shamoon (#4885)
- Fix: storage paths link incorrect in dashboard widget @shamoon (#4878)
- Fix: respect baseURI for pdfjs worker URL @shamoon (#4865)
- Fix: Allow users to configure the From email for password reset @stumpylog (#4867)
- Fix: dont show move icon for file tasks badge @shamoon (#4860)

### Maintenance

- Chore: Simplifies how the documentation site is deployed @stumpylog (#4858)

### All App Changes

5 changes
- Fix: disable toggle for share link creation without archive version, fix auto-copy in Safari [@shamoon](https://github.com/shamoon) ([#4885](https://github.com/paperless-ngx/paperless-ngx/pull/4885)) - Fix: storage paths link incorrect in dashboard widget [@shamoon](https://github.com/shamoon) ([#4878](https://github.com/paperless-ngx/paperless-ngx/pull/4878)) - Fix: respect baseURI for pdfjs worker URL [@shamoon](https://github.com/shamoon) ([#4865](https://github.com/paperless-ngx/paperless-ngx/pull/4865)) - Fix: Allow users to configure the From email for password reset [@stumpylog](https://github.com/stumpylog) ([#4867](https://github.com/paperless-ngx/paperless-ngx/pull/4867)) - Fix: dont show move icon for file tasks badge [@shamoon](https://github.com/shamoon) ([#4860](https://github.com/paperless-ngx/paperless-ngx/pull/4860))

## paperless-ngx 2.1.0

### Features

- Enhancement: implement document link custom field @shamoon (#4799)
- Feature: Adds additional warnings during an import if it might fail @stumpylog (#4814)
- Feature: pngx PDF viewer with updated pdfjs @shamoon (#4679)
- Enhancement: support automatically assigning custom fields via consumption templates @shamoon (#4727)
- Feature: update user profile @shamoon (#4678)
- Enhancement: Allow excluding mail attachments by name @stumpylog (#4691)
- Enhancement: auto-refresh logs \& tasks @shamoon (#4680)

### Bug Fixes

- Fix: welcome widget text color @shamoon (#4829)
- Fix: export consumption templates \& custom fields in exporter @shamoon (#4825)
- Fix: bulk edit object permissions should use permissions object @shamoon (#4797)
- Fix: empty string for consumption template field should be interpreted as @shamoon (#4762)
- Fix: use default permissions for objects created via dropdown @shamoon (#4778)
- Fix: Alpha layer removal could allow duplicates @stumpylog (#4781)
- Fix: update checker broke in v2.0.0 @shamoon (#4773)
- Fix: only show global drag-drop when files included @shamoon (#4767)

### Documentation

- Enhancement: implement document link custom field @shamoon (#4799)
- Fix: export consumption templates \& custom fields in exporter @shamoon (#4825)
- Documentation: Fix typos @omahs (#4737)

### Maintenance

- Bump the actions group with 2 updates @dependabot (#4745)

### Dependencies

7 changes
- Bump the development group with 6 updates [@dependabot](https://github.com/dependabot) ([#4838](https://github.com/paperless-ngx/paperless-ngx/pull/4838)) - Bump the actions group with 2 updates [@dependabot](https://github.com/dependabot) ([#4745](https://github.com/paperless-ngx/paperless-ngx/pull/4745)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4756](https://github.com/paperless-ngx/paperless-ngx/pull/4756)) - Bump the frontend-jest-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#4744](https://github.com/paperless-ngx/paperless-ngx/pull/4744)) - Bump [@playwright/test from 1.39.0 to 1.40.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.39.0 to 1.40.1 in /src-ui @dependabot) ([#4749](https://github.com/paperless-ngx/paperless-ngx/pull/4749)) - Bump wait-on from 7.0.1 to 7.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#4747](https://github.com/paperless-ngx/paperless-ngx/pull/4747)) - Bump [@types/node from 20.8.10 to 20.10.2 in /src-ui @dependabot](https://github.com/types/node from 20.8.10 to 20.10.2 in /src-ui @dependabot) ([#4748](https://github.com/paperless-ngx/paperless-ngx/pull/4748))

### All App Changes

20 changes
- Enhancement: implement document link custom field [@shamoon](https://github.com/shamoon) ([#4799](https://github.com/paperless-ngx/paperless-ngx/pull/4799)) - Bump the development group with 6 updates [@dependabot](https://github.com/dependabot) ([#4838](https://github.com/paperless-ngx/paperless-ngx/pull/4838)) - Fix: welcome widget text color [@shamoon](https://github.com/shamoon) ([#4829](https://github.com/paperless-ngx/paperless-ngx/pull/4829)) - Fix: export consumption templates \& custom fields in exporter [@shamoon](https://github.com/shamoon) ([#4825](https://github.com/paperless-ngx/paperless-ngx/pull/4825)) - Feature: Adds additional warnings during an import if it might fail [@stumpylog](https://github.com/stumpylog) ([#4814](https://github.com/paperless-ngx/paperless-ngx/pull/4814)) - Feature: pngx PDF viewer with updated pdfjs [@shamoon](https://github.com/shamoon) ([#4679](https://github.com/paperless-ngx/paperless-ngx/pull/4679)) - Fix: bulk edit object permissions should use permissions object [@shamoon](https://github.com/shamoon) ([#4797](https://github.com/paperless-ngx/paperless-ngx/pull/4797)) - Enhancement: support automatically assigning custom fields via consumption templates [@shamoon](https://github.com/shamoon) ([#4727](https://github.com/paperless-ngx/paperless-ngx/pull/4727)) - Fix: empty string for consumption template field should be interpreted as [@shamoon](https://github.com/shamoon) ([#4762](https://github.com/paperless-ngx/paperless-ngx/pull/4762)) - Fix: use default permissions for objects created via dropdown [@shamoon](https://github.com/shamoon) ([#4778](https://github.com/paperless-ngx/paperless-ngx/pull/4778)) - Fix: Alpha layer removal could allow duplicates [@stumpylog](https://github.com/stumpylog) ([#4781](https://github.com/paperless-ngx/paperless-ngx/pull/4781)) - Feature: update user profile [@shamoon](https://github.com/shamoon) ([#4678](https://github.com/paperless-ngx/paperless-ngx/pull/4678)) - Fix: update checker broke in v2.0.0 [@shamoon](https://github.com/shamoon) ([#4773](https://github.com/paperless-ngx/paperless-ngx/pull/4773)) - Fix: only show global drag-drop when files included [@shamoon](https://github.com/shamoon) ([#4767](https://github.com/paperless-ngx/paperless-ngx/pull/4767)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4756](https://github.com/paperless-ngx/paperless-ngx/pull/4756)) - Bump the frontend-jest-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#4744](https://github.com/paperless-ngx/paperless-ngx/pull/4744)) - Bump [@playwright/test from 1.39.0 to 1.40.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.39.0 to 1.40.1 in /src-ui @dependabot) ([#4749](https://github.com/paperless-ngx/paperless-ngx/pull/4749)) - Bump wait-on from 7.0.1 to 7.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#4747](https://github.com/paperless-ngx/paperless-ngx/pull/4747)) - Bump [@types/node from 20.8.10 to 20.10.2 in /src-ui @dependabot](https://github.com/types/node from 20.8.10 to 20.10.2 in /src-ui @dependabot) ([#4748](https://github.com/paperless-ngx/paperless-ngx/pull/4748)) - Enhancement: auto-refresh logs \& tasks [@shamoon](https://github.com/shamoon) ([#4680](https://github.com/paperless-ngx/paperless-ngx/pull/4680))

## paperless-ngx 2.0.1

### Please Note

Exports generated in Paperless-ngx v2.0.0–2.0.1 will not contain consumption templates or custom fields, we recommend users upgrade to at least v2.1.

### Bug Fixes

- Fix: Increase field the length for consumption template source @stumpylog (#4719)
- Fix: Set RGB color conversion strategy for PDF outputs @stumpylog (#4709)
- Fix: Add a warning about a low image DPI which may cause OCR to fail @stumpylog (#4708)
- Fix: share links for URLs containing 'api' incorrect in dropdown @shamoon (#4701)

### All App Changes

4 changes
- Fix: Increase field the length for consumption template source [@stumpylog](https://github.com/stumpylog) ([#4719](https://github.com/paperless-ngx/paperless-ngx/pull/4719)) - Fix: Set RGB color conversion strategy for PDF outputs [@stumpylog](https://github.com/stumpylog) ([#4709](https://github.com/paperless-ngx/paperless-ngx/pull/4709)) - Fix: Add a warning about a low image DPI which may cause OCR to fail [@stumpylog](https://github.com/stumpylog) ([#4708](https://github.com/paperless-ngx/paperless-ngx/pull/4708)) - Fix: share links for URLs containing 'api' incorrect in dropdown [@shamoon](https://github.com/shamoon) ([#4701](https://github.com/paperless-ngx/paperless-ngx/pull/4701))

## paperless-ngx 2.0.0

### Please Note

Exports generated in Paperless-ngx v2.0.0–2.0.1 will not contain consumption templates or custom fields, we recommend users upgrade to at least v2.1.

### Breaking Changes

- Breaking: Rename the environment variable for self-signed email certificates @stumpylog (#4346)
- Breaking: Drop support for Python 3.8 @stumpylog (#4156)
- Breaking: Remove ARMv7 building of the Docker image @stumpylog (#3973)

### Notable Changes

- Feature: consumption templates @shamoon (#4196)
- Feature: Share links @shamoon (#3996)
- Enhancement: Updates the underlying image to use Python 3.11 @stumpylog (#4150)

### Features

- Feature: compact notifications @shamoon (#4545)
- Chore: Backend bulk updates @stumpylog (#4509)
- Feature: Hungarian translation @shamoon (#4552)
- Chore: API support for id args for documents \& objects @shamoon (#4519)
- Feature: Add Bulgarian translation @shamoon (#4470)
- Feature: Audit Trail @nanokatz (#4425)
- Feature: Add ahead of time compression of the static files for x86_64 @stumpylog (#4390)
- Feature: sort sidebar views @shamoon (#4381)
- Feature: Switches to a new client to handle communication with Gotenberg @stumpylog (#4391)
- barcode logic: strip non-numeric characters from detected ASN string @queaker (#4379)
- Feature: Include more updated base tools in Docker image @stumpylog (#4319)
- CI: speed-up frontend tests on ci @shamoon (#4316)
- Feature: password reset @shamoon (#4289)
- Enhancement: dashboard improvements, drag-n-drop reorder dashboard views @shamoon (#4252)
- Feature: Updates Django to 4.2.5 @stumpylog (#4278)
- Enhancement: settings reorganization \& improvements, separate admin section @shamoon (#4251)
- Feature: consumption templates @shamoon (#4196)
- Enhancement: support default permissions for object creation via frontend @shamoon (#4233)
- Fix: Set permissions before declaring volumes for rootless @stumpylog (#4225)
- Enhancement: bulk edit object permissions @shamoon (#4176)
- Enhancement: Allow the user the specify the export zip file name @stumpylog (#4189)
- Feature: Share links @shamoon (#3996)
- Chore: update docker image and ci to node 20 @shamoon (#4184)
- Fix: Trim unneeded libraries from Docker image @stumpylog (#4183)
- Feature: New management command for fuzzy matching document content @stumpylog (#4160)
- Enhancement: Updates the underlying image to use Python 3.11 @stumpylog (#4150)
- Enhancement: frontend better handle slow backend requests @shamoon (#4055)
- Chore: update docker image \& ci testing node to v18 @shamoon (#4149)
- Enhancement: Improved error notifications @shamoon (#4062)
- Feature: Official support for Python 3.11 @stumpylog (#4146)
- Enhancement: Add Afrikaans, Greek \& Norwegian languages @shamoon (#4088)
- Enhancement: add task id to pre/post consume script as env @andreheuer (#4037)
- Enhancement: update bootstrap to v5.3.1 for backend static pages @shamoon (#4060)

### Bug Fixes

- Fix: Add missing spaces to help string in @joouha (#4674)
- Fix: Typo invalidates precondition for doctype, resulting in Exception @ArminGruner (#4668)
- Fix: Miscellaneous visual fixes in v2.0.0-beta.rc1 2 @shamoon (#4635)
- Fix: Delay consumption after MODIFY inotify events @frozenbrain (#4626)
- Documentation: Add note that trash dir must exist @shamoon (#4608)
- Fix: Miscellaneous v2.0 visual fixes @shamoon (#4576)
- Fix: Force UTF-8 for exporter manifests and don't allow escaping @stumpylog (#4574)
- Fix: plain text preview overflows @shamoon (#4555)
- Fix: add permissions for custom fields with migration @shamoon (#4513)
- Fix: visually hidden text breaks delete button wrap @shamoon (#4462)
- Fix: API statistics document_file_type_counts return type @shamoon (#4464)
- Fix: Always return a list for audit log check @shamoon (#4463)
- Fix: Only create a Correspondent if the email matches rule filters @stumpylog (#4431)
- Fix: Combination of consume template with recursive tagging @stumpylog (#4442)
- Fix: replace drag drop \& clipboard deps with angular cdk @shamoon (#4362)
- Fix: update document modified time on note creation / deletion @shamoon (#4374)
- Fix: Updates to latest imap_tools which includes fix for the meta charset in HTML content @stumpylog (#4355)
- Fix: Missing creation of a folder in Docker image @stumpylog (#4347)
- Fix: Retry Tika parsing when Tika returns HTTP 500 @stumpylog (#4334)
- Fix: get highest ASN regardless of user @shamoon (#4326)
- Fix: Generate secret key with C locale and increase allowed characters @stumpylog (#4277)
- Fix: long notes cause visual overflow @shamoon (#4287)
- Fix: Ensures all old connections are closed in certain long lived places @stumpylog (#4265)
- CI: fix playwright browser version mismatch failures @shamoon (#4239)
- Fix: Set a non-zero polling internal when inotify cannot import @stumpylog (#4230)
- Fix: Set permissions before declaring volumes for rootless @stumpylog (#4225)
- Documentation: Fix fuzzy matching details @stumpylog (#4207)
- Fix: application of theme color vars at root @shamoon (#4193)
- Fix: Trim unneeded libraries from Docker image @stumpylog (#4183)
- Fix: support storage path placeholder via API @shamoon (#4179)
- Fix: Logs the errors during thumbnail generation @stumpylog (#4171)
- Fix: remove owner details from saved_views api endpoint @shamoon (#4158)
- Fix: dashboard widget card borders hidden by bkgd color @shamoon (#4155)
- Fix: hide entire add user / group buttons if insufficient permissions @shamoon (#4133)

### Documentation

- Documentation: Update documentation to refer only to Docker Compose v2 command @stumpylog (#4650)
- Documentation: fix typo, add to features list @tooomm (#4624)
- Documentation: Add note that trash dir must exist @shamoon (#4608)
- Documentation: Structure backup sections more clearly @quantenProjects (#4559)
- Documentation: update docs, screenshots ahead of Paperless-ngx v2.0 @shamoon (#4542)
- Chore: Cleanup command arguments and standardize process count handling @stumpylog (#4541)
- Add section for SELinux troubleshooting @nachtjasmin (#4528)
- Documentation: clarify document_exporter includes settings @coaxial (#4533)
- Change: Install script improvements @m-GDEV (#4387)
- Fix: update document modified time on note creation / deletion @shamoon (#4374)
- Fix: correct set owner API location in docs, additional test @shamoon (#4366)
- Documentation: Remove old information about building the Docker image locally @stumpylog (#4354)
- Documentation enhancement: add direct links for all config vars @shamoon (#4237)
- Documentation: Fix fuzzy matching details @stumpylog (#4207)

### Maintenance

- Chore: Backend bulk updates @stumpylog (#4509)
- Bump the actions group with 1 update @dependabot (#4476)
- Feature: Add Bulgarian translation @shamoon (#4470)
- Chore: Stop duplicated action runs against internal PRs @stumpylog (#4430)
- CI: separate frontend deps install @shamoon (#4336)
- CI: speed-up frontend tests on ci @shamoon (#4316)
- Fix: Generate secret key with C locale and increase allowed characters @stumpylog (#4277)
- Bump leonsteinhaeuser/project-beta-automations from 2.1.0 to 2.2.1 @dependabot (#4281)
- Chore: Updates dependabot to group more dependencies @stumpylog (#4280)
- Change: update translation string for tasks dialog @shamoon (#4263)
- CI: fix playwright browser version mismatch failures @shamoon (#4239)
- Bump docker/login-action from 2 to 3 @dependabot (#4221)
- Bump docker/setup-buildx-action from 2 to 3 @dependabot (#4220)
- Bump docker/setup-qemu-action from 2 to 3 @dependabot (#4211)
- Bump stumpylog/image-cleaner-action from 0.2.0 to 0.3.0 @dependabot (#4210)
- Bump docker/metadata-action from 4 to 5 @dependabot (#4209)
- Bump docker/build-push-action from 4 to 5 @dependabot (#4212)
- Bump actions/checkout from 3 to 4 @dependabot (#4208)
- Chore: update docker image and ci to node 20 @shamoon (#4184)

### Dependencies

39 changes
- Chore: Bulk update of Python dependencies [@stumpylog](https://github.com/stumpylog) ([#4688](https://github.com/paperless-ngx/paperless-ngx/pull/4688)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4479](https://github.com/paperless-ngx/paperless-ngx/pull/4479)) - Bump [@playwright/test from 1.38.1 to 1.39.0 in /src-ui @dependabot](https://github.com/playwright/test from 1.38.1 to 1.39.0 in /src-ui @dependabot) ([#4480](https://github.com/paperless-ngx/paperless-ngx/pull/4480)) - Bump concurrently from 8.2.1 to 8.2.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#4481](https://github.com/paperless-ngx/paperless-ngx/pull/4481)) - Bump the frontend-jest-dependencies group in /src-ui with 1 update [@dependabot](https://github.com/dependabot) ([#4478](https://github.com/paperless-ngx/paperless-ngx/pull/4478)) - Bump the frontend-angular-dependencies group in /src-ui with 14 updates [@dependabot](https://github.com/dependabot) ([#4477](https://github.com/paperless-ngx/paperless-ngx/pull/4477)) - Bump the actions group with 1 update [@dependabot](https://github.com/dependabot) ([#4476](https://github.com/paperless-ngx/paperless-ngx/pull/4476)) - Bump [@babel/traverse from 7.22.11 to 7.23.2 in /src-ui @dependabot](https://github.com/babel/traverse from 7.22.11 to 7.23.2 in /src-ui @dependabot) ([#4389](https://github.com/paperless-ngx/paperless-ngx/pull/4389)) - Fix: replace drag drop \& clipboard deps with angular cdk [@shamoon](https://github.com/shamoon) ([#4362](https://github.com/paperless-ngx/paperless-ngx/pull/4362)) - Bump postcss from 8.4.12 to 8.4.31 in /src/paperless_mail/templates [@dependabot](https://github.com/dependabot) ([#4318](https://github.com/paperless-ngx/paperless-ngx/pull/4318)) - Bump [@types/node from 20.7.0 to 20.8.0 in /src-ui @dependabot](https://github.com/types/node from 20.7.0 to 20.8.0 in /src-ui @dependabot) ([#4303](https://github.com/paperless-ngx/paperless-ngx/pull/4303)) - Bump the frontend-angular-dependencies group in /src-ui with 8 updates [@dependabot](https://github.com/dependabot) ([#4302](https://github.com/paperless-ngx/paperless-ngx/pull/4302)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4283](https://github.com/paperless-ngx/paperless-ngx/pull/4283)) - Bump the frontend-angular-dependencies group in /src-ui with 10 updates [@dependabot](https://github.com/dependabot) ([#4282](https://github.com/paperless-ngx/paperless-ngx/pull/4282)) - Bump [@types/node from 20.6.3 to 20.7.0 in /src-ui @dependabot](https://github.com/types/node from 20.6.3 to 20.7.0 in /src-ui @dependabot) ([#4284](https://github.com/paperless-ngx/paperless-ngx/pull/4284)) - Bump leonsteinhaeuser/project-beta-automations from 2.1.0 to 2.2.1 [@dependabot](https://github.com/dependabot) ([#4281](https://github.com/paperless-ngx/paperless-ngx/pull/4281)) - Bump zone.js from 0.13.1 to 0.13.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#4223](https://github.com/paperless-ngx/paperless-ngx/pull/4223)) - Bump [@types/node from 20.5.8 to 20.6.3 in /src-ui @dependabot](https://github.com/types/node from 20.5.8 to 20.6.3 in /src-ui @dependabot) ([#4224](https://github.com/paperless-ngx/paperless-ngx/pull/4224)) - Bump the frontend-angular-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#4222](https://github.com/paperless-ngx/paperless-ngx/pull/4222)) - Bump docker/login-action from 2 to 3 [@dependabot](https://github.com/dependabot) ([#4221](https://github.com/paperless-ngx/paperless-ngx/pull/4221)) - Bump docker/setup-buildx-action from 2 to 3 [@dependabot](https://github.com/dependabot) ([#4220](https://github.com/paperless-ngx/paperless-ngx/pull/4220)) - Bump docker/setup-qemu-action from 2 to 3 [@dependabot](https://github.com/dependabot) ([#4211](https://github.com/paperless-ngx/paperless-ngx/pull/4211)) - Bump bootstrap from 5.3.1 to 5.3.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#4217](https://github.com/paperless-ngx/paperless-ngx/pull/4217)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4215](https://github.com/paperless-ngx/paperless-ngx/pull/4215)) - Bump the frontend-jest-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#4218](https://github.com/paperless-ngx/paperless-ngx/pull/4218)) - Bump stumpylog/image-cleaner-action from 0.2.0 to 0.3.0 [@dependabot](https://github.com/dependabot) ([#4210](https://github.com/paperless-ngx/paperless-ngx/pull/4210)) - Bump docker/metadata-action from 4 to 5 [@dependabot](https://github.com/dependabot) ([#4209](https://github.com/paperless-ngx/paperless-ngx/pull/4209)) - Bump uuid from 9.0.0 to 9.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#4216](https://github.com/paperless-ngx/paperless-ngx/pull/4216)) - Bump the frontend-angular-dependencies group in /src-ui with 16 updates [@dependabot](https://github.com/dependabot) ([#4213](https://github.com/paperless-ngx/paperless-ngx/pull/4213)) - Bump docker/build-push-action from 4 to 5 [@dependabot](https://github.com/dependabot) ([#4212](https://github.com/paperless-ngx/paperless-ngx/pull/4212)) - Bump actions/checkout from 3 to 4 [@dependabot](https://github.com/dependabot) ([#4208](https://github.com/paperless-ngx/paperless-ngx/pull/4208)) - Chore: update docker image \& ci testing node to v18 [@shamoon](https://github.com/shamoon) ([#4149](https://github.com/paperless-ngx/paperless-ngx/pull/4149)) - Chore: Unlock dependencies \& update them all [@stumpylog](https://github.com/stumpylog) ([#4142](https://github.com/paperless-ngx/paperless-ngx/pull/4142)) - Bump the frontend-jest-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#4112](https://github.com/paperless-ngx/paperless-ngx/pull/4112)) - Bump tslib from 2.6.1 to 2.6.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#4108](https://github.com/paperless-ngx/paperless-ngx/pull/4108)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4106](https://github.com/paperless-ngx/paperless-ngx/pull/4106)) - Bump concurrently from 8.2.0 to 8.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#4111](https://github.com/paperless-ngx/paperless-ngx/pull/4111)) - Bump [@types/node from 20.4.5 to 20.5.8 in /src-ui @dependabot](https://github.com/types/node from 20.4.5 to 20.5.8 in /src-ui @dependabot) ([#4110](https://github.com/paperless-ngx/paperless-ngx/pull/4110)) - Bump the frontend-angular-dependencies group in /src-ui with 19 updates [@dependabot](https://github.com/dependabot) ([#4104](https://github.com/paperless-ngx/paperless-ngx/pull/4104))

### All App Changes

95 changes
- Fix: Add missing spaces to help string in [@joouha](https://github.com/joouha) ([#4674](https://github.com/paperless-ngx/paperless-ngx/pull/4674)) - Fix: Typo invalidates precondition for doctype, resulting in Exception [@ArminGruner](https://github.com/ArminGruner) ([#4668](https://github.com/paperless-ngx/paperless-ngx/pull/4668)) - Fix: dark mode inconsistencies in v2.0.0 beta.rc1 [@shamoon](https://github.com/shamoon) ([#4669](https://github.com/paperless-ngx/paperless-ngx/pull/4669)) - Fix: dashboard saved view mobile width in v.2.0.0 beta.rc1 [@shamoon](https://github.com/shamoon) ([#4660](https://github.com/paperless-ngx/paperless-ngx/pull/4660)) - Fix: Miscellaneous visual fixes in v2.0.0-beta.rc1 2 [@shamoon](https://github.com/shamoon) ([#4635](https://github.com/paperless-ngx/paperless-ngx/pull/4635)) - Fix: Delay consumption after MODIFY inotify events [@frozenbrain](https://github.com/frozenbrain) ([#4626](https://github.com/paperless-ngx/paperless-ngx/pull/4626)) - Fix: Import of split-manifests can fail [@stumpylog](https://github.com/stumpylog) ([#4623](https://github.com/paperless-ngx/paperless-ngx/pull/4623)) - Fix: sidebar views dont update after creation in v2.0.0-beta.rc1 [@shamoon](https://github.com/shamoon) ([#4619](https://github.com/paperless-ngx/paperless-ngx/pull/4619)) - Fix: Prevent text wrap on consumption template label [@shamoon](https://github.com/shamoon) ([#4616](https://github.com/paperless-ngx/paperless-ngx/pull/4616)) - Fix: increase width of labels in default perms settings [@shamoon](https://github.com/shamoon) ([#4612](https://github.com/paperless-ngx/paperless-ngx/pull/4612)) - Fix: note deletion fails in v2.0.0-beta.rc1 [@shamoon](https://github.com/shamoon) ([#4602](https://github.com/paperless-ngx/paperless-ngx/pull/4602)) - Fix: Handle override lists being None [@stumpylog](https://github.com/stumpylog) ([#4598](https://github.com/paperless-ngx/paperless-ngx/pull/4598)) - Fix: Miscellaneous v2.0 visual fixes [@shamoon](https://github.com/shamoon) ([#4576](https://github.com/paperless-ngx/paperless-ngx/pull/4576)) - Fix: Force UTF-8 for exporter manifests and don't allow escaping [@stumpylog](https://github.com/stumpylog) ([#4574](https://github.com/paperless-ngx/paperless-ngx/pull/4574)) - Feature: compact notifications [@shamoon](https://github.com/shamoon) ([#4545](https://github.com/paperless-ngx/paperless-ngx/pull/4545)) - Chore: Backend bulk updates [@stumpylog](https://github.com/stumpylog) ([#4509](https://github.com/paperless-ngx/paperless-ngx/pull/4509)) - Fix: plain text preview overflows [@shamoon](https://github.com/shamoon) ([#4555](https://github.com/paperless-ngx/paperless-ngx/pull/4555)) - Feature: Hungarian translation [@shamoon](https://github.com/shamoon) ([#4552](https://github.com/paperless-ngx/paperless-ngx/pull/4552)) - Chore: Cleanup command arguments and standardize process count handling [@stumpylog](https://github.com/stumpylog) ([#4541](https://github.com/paperless-ngx/paperless-ngx/pull/4541)) - Chore: API support for id args for documents \& objects [@shamoon](https://github.com/shamoon) ([#4519](https://github.com/paperless-ngx/paperless-ngx/pull/4519)) - Fix: add permissions for custom fields with migration [@shamoon](https://github.com/shamoon) ([#4513](https://github.com/paperless-ngx/paperless-ngx/pull/4513)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4479](https://github.com/paperless-ngx/paperless-ngx/pull/4479)) - Bump [@playwright/test from 1.38.1 to 1.39.0 in /src-ui @dependabot](https://github.com/playwright/test from 1.38.1 to 1.39.0 in /src-ui @dependabot) ([#4480](https://github.com/paperless-ngx/paperless-ngx/pull/4480)) - Bump concurrently from 8.2.1 to 8.2.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#4481](https://github.com/paperless-ngx/paperless-ngx/pull/4481)) - Bump the frontend-jest-dependencies group in /src-ui with 1 update [@dependabot](https://github.com/dependabot) ([#4478](https://github.com/paperless-ngx/paperless-ngx/pull/4478)) - Bump the frontend-angular-dependencies group in /src-ui with 14 updates [@dependabot](https://github.com/dependabot) ([#4477](https://github.com/paperless-ngx/paperless-ngx/pull/4477)) - Fix: visually hidden text breaks delete button wrap [@shamoon](https://github.com/shamoon) ([#4462](https://github.com/paperless-ngx/paperless-ngx/pull/4462)) - Fix: API statistics document_file_type_counts return type [@shamoon](https://github.com/shamoon) ([#4464](https://github.com/paperless-ngx/paperless-ngx/pull/4464)) - Fix: Always return a list for audit log check [@shamoon](https://github.com/shamoon) ([#4463](https://github.com/paperless-ngx/paperless-ngx/pull/4463)) - Feature: Audit Trail [@nanokatz](https://github.com/nanokatz) ([#4425](https://github.com/paperless-ngx/paperless-ngx/pull/4425)) - Fix: Only create a Correspondent if the email matches rule filters [@stumpylog](https://github.com/stumpylog) ([#4431](https://github.com/paperless-ngx/paperless-ngx/pull/4431)) - Fix: Combination of consume template with recursive tagging [@stumpylog](https://github.com/stumpylog) ([#4442](https://github.com/paperless-ngx/paperless-ngx/pull/4442)) - Feature: Add ahead of time compression of the static files for x86_64 [@stumpylog](https://github.com/stumpylog) ([#4390](https://github.com/paperless-ngx/paperless-ngx/pull/4390)) - Feature: sort sidebar views [@shamoon](https://github.com/shamoon) ([#4381](https://github.com/paperless-ngx/paperless-ngx/pull/4381)) - Feature: Switches to a new client to handle communication with Gotenberg [@stumpylog](https://github.com/stumpylog) ([#4391](https://github.com/paperless-ngx/paperless-ngx/pull/4391)) - barcode logic: strip non-numeric characters from detected ASN string [@queaker](https://github.com/queaker) ([#4379](https://github.com/paperless-ngx/paperless-ngx/pull/4379)) - Bump [@babel/traverse from 7.22.11 to 7.23.2 in /src-ui @dependabot](https://github.com/babel/traverse from 7.22.11 to 7.23.2 in /src-ui @dependabot) ([#4389](https://github.com/paperless-ngx/paperless-ngx/pull/4389)) - Fix: replace drag drop \& clipboard deps with angular cdk [@shamoon](https://github.com/shamoon) ([#4362](https://github.com/paperless-ngx/paperless-ngx/pull/4362)) - Fix: update document modified time on note creation / deletion [@shamoon](https://github.com/shamoon) ([#4374](https://github.com/paperless-ngx/paperless-ngx/pull/4374)) - Fix: correct set owner API location in docs, additional test [@shamoon](https://github.com/shamoon) ([#4366](https://github.com/paperless-ngx/paperless-ngx/pull/4366)) - Fix: get highest ASN regardless of user [@shamoon](https://github.com/shamoon) ([#4326](https://github.com/paperless-ngx/paperless-ngx/pull/4326)) - Bump postcss from 8.4.12 to 8.4.31 in /src/paperless_mail/templates [@dependabot](https://github.com/dependabot) ([#4318](https://github.com/paperless-ngx/paperless-ngx/pull/4318)) - CI: speed-up frontend tests on ci [@shamoon](https://github.com/shamoon) ([#4316](https://github.com/paperless-ngx/paperless-ngx/pull/4316)) - Bump [@types/node from 20.7.0 to 20.8.0 in /src-ui @dependabot](https://github.com/types/node from 20.7.0 to 20.8.0 in /src-ui @dependabot) ([#4303](https://github.com/paperless-ngx/paperless-ngx/pull/4303)) - Bump the frontend-angular-dependencies group in /src-ui with 8 updates [@dependabot](https://github.com/dependabot) ([#4302](https://github.com/paperless-ngx/paperless-ngx/pull/4302)) - Feature: password reset [@shamoon](https://github.com/shamoon) ([#4289](https://github.com/paperless-ngx/paperless-ngx/pull/4289)) - Enhancement: dashboard improvements, drag-n-drop reorder dashboard views [@shamoon](https://github.com/shamoon) ([#4252](https://github.com/paperless-ngx/paperless-ngx/pull/4252)) - Fix: long notes cause visual overflow [@shamoon](https://github.com/shamoon) ([#4287](https://github.com/paperless-ngx/paperless-ngx/pull/4287)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4283](https://github.com/paperless-ngx/paperless-ngx/pull/4283)) - Bump the frontend-angular-dependencies group in /src-ui with 10 updates [@dependabot](https://github.com/dependabot) ([#4282](https://github.com/paperless-ngx/paperless-ngx/pull/4282)) - Bump [@types/node from 20.6.3 to 20.7.0 in /src-ui @dependabot](https://github.com/types/node from 20.6.3 to 20.7.0 in /src-ui @dependabot) ([#4284](https://github.com/paperless-ngx/paperless-ngx/pull/4284)) - Fix: Ensures all old connections are closed in certain long lived places [@stumpylog](https://github.com/stumpylog) ([#4265](https://github.com/paperless-ngx/paperless-ngx/pull/4265)) - Change: update translation string for tasks dialog [@shamoon](https://github.com/shamoon) ([#4263](https://github.com/paperless-ngx/paperless-ngx/pull/4263)) - Enhancement: settings reorganization \& improvements, separate admin section [@shamoon](https://github.com/shamoon) ([#4251](https://github.com/paperless-ngx/paperless-ngx/pull/4251)) - Chore: Standardizes the imports across all the files and modules [@stumpylog](https://github.com/stumpylog) ([#4248](https://github.com/paperless-ngx/paperless-ngx/pull/4248)) - Feature: consumption templates [@shamoon](https://github.com/shamoon) ([#4196](https://github.com/paperless-ngx/paperless-ngx/pull/4196)) - Enhancement: support default permissions for object creation via frontend [@shamoon](https://github.com/shamoon) ([#4233](https://github.com/paperless-ngx/paperless-ngx/pull/4233)) - Fix: Set a non-zero polling internal when inotify cannot import [@stumpylog](https://github.com/stumpylog) ([#4230](https://github.com/paperless-ngx/paperless-ngx/pull/4230)) - Bump zone.js from 0.13.1 to 0.13.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#4223](https://github.com/paperless-ngx/paperless-ngx/pull/4223)) - Bump [@types/node from 20.5.8 to 20.6.3 in /src-ui @dependabot](https://github.com/types/node from 20.5.8 to 20.6.3 in /src-ui @dependabot) ([#4224](https://github.com/paperless-ngx/paperless-ngx/pull/4224)) - Bump the frontend-angular-dependencies group in /src-ui with 2 updates [@dependabot](https://github.com/dependabot) ([#4222](https://github.com/paperless-ngx/paperless-ngx/pull/4222)) - Bump bootstrap from 5.3.1 to 5.3.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#4217](https://github.com/paperless-ngx/paperless-ngx/pull/4217)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4215](https://github.com/paperless-ngx/paperless-ngx/pull/4215)) - Bump the frontend-jest-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#4218](https://github.com/paperless-ngx/paperless-ngx/pull/4218)) - Bump uuid from 9.0.0 to 9.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#4216](https://github.com/paperless-ngx/paperless-ngx/pull/4216)) - Bump the frontend-angular-dependencies group in /src-ui with 16 updates [@dependabot](https://github.com/dependabot) ([#4213](https://github.com/paperless-ngx/paperless-ngx/pull/4213)) - Enhancement: bulk edit object permissions [@shamoon](https://github.com/shamoon) ([#4176](https://github.com/paperless-ngx/paperless-ngx/pull/4176)) - Fix: completely hide upload widget if user does not have permissions [@nawramm](https://github.com/nawramm) ([#4198](https://github.com/paperless-ngx/paperless-ngx/pull/4198)) - Fix: application of theme color vars at root [@shamoon](https://github.com/shamoon) ([#4193](https://github.com/paperless-ngx/paperless-ngx/pull/4193)) - Enhancement: Allow the user the specify the export zip file name [@stumpylog](https://github.com/stumpylog) ([#4189](https://github.com/paperless-ngx/paperless-ngx/pull/4189)) - Feature: Share links [@shamoon](https://github.com/shamoon) ([#3996](https://github.com/paperless-ngx/paperless-ngx/pull/3996)) - Chore: change dark mode to use Bootstrap's color modes [@lkster](https://github.com/lkster) ([#4174](https://github.com/paperless-ngx/paperless-ngx/pull/4174)) - Fix: support storage path placeholder via API [@shamoon](https://github.com/shamoon) ([#4179](https://github.com/paperless-ngx/paperless-ngx/pull/4179)) - Fix: Logs the errors during thumbnail generation [@stumpylog](https://github.com/stumpylog) ([#4171](https://github.com/paperless-ngx/paperless-ngx/pull/4171)) - Feature: New management command for fuzzy matching document content [@stumpylog](https://github.com/stumpylog) ([#4160](https://github.com/paperless-ngx/paperless-ngx/pull/4160)) - Breaking: Drop support for Python 3.8 [@stumpylog](https://github.com/stumpylog) ([#4156](https://github.com/paperless-ngx/paperless-ngx/pull/4156)) - Fix: dashboard widget card borders hidden by bkgd color [@shamoon](https://github.com/shamoon) ([#4155](https://github.com/paperless-ngx/paperless-ngx/pull/4155)) - Enhancement: frontend better handle slow backend requests [@shamoon](https://github.com/shamoon) ([#4055](https://github.com/paperless-ngx/paperless-ngx/pull/4055)) - Chore: Extend the live service utility for handling 503 errors [@stumpylog](https://github.com/stumpylog) ([#4143](https://github.com/paperless-ngx/paperless-ngx/pull/4143)) - Chore: update docker image \& ci testing node to v18 [@shamoon](https://github.com/shamoon) ([#4149](https://github.com/paperless-ngx/paperless-ngx/pull/4149)) - Fix: hide entire add user / group buttons if insufficient permissions [@shamoon](https://github.com/shamoon) ([#4133](https://github.com/paperless-ngx/paperless-ngx/pull/4133)) - Enhancement: Improved error notifications [@shamoon](https://github.com/shamoon) ([#4062](https://github.com/paperless-ngx/paperless-ngx/pull/4062)) - Feature: Official support for Python 3.11 [@stumpylog](https://github.com/stumpylog) ([#4146](https://github.com/paperless-ngx/paperless-ngx/pull/4146)) - Chore: Unlock dependencies \& update them all [@stumpylog](https://github.com/stumpylog) ([#4142](https://github.com/paperless-ngx/paperless-ngx/pull/4142)) - Change: PWA Manifest to Standalone Display [@swoga](https://github.com/swoga) ([#4129](https://github.com/paperless-ngx/paperless-ngx/pull/4129)) - Enhancement: add --id-range for document_retagger [@kamilkosek](https://github.com/kamilkosek) ([#4080](https://github.com/paperless-ngx/paperless-ngx/pull/4080)) - Enhancement: Add Afrikaans, Greek \& Norwegian languages [@shamoon](https://github.com/shamoon) ([#4088](https://github.com/paperless-ngx/paperless-ngx/pull/4088)) - Enhancement: add task id to pre/post consume script as env [@andreheuer](https://github.com/andreheuer) ([#4037](https://github.com/paperless-ngx/paperless-ngx/pull/4037)) - Enhancement: update bootstrap to v5.3.1 for backend static pages [@shamoon](https://github.com/shamoon) ([#4060](https://github.com/paperless-ngx/paperless-ngx/pull/4060)) - Bump the frontend-jest-dependencies group in /src-ui with 4 updates [@dependabot](https://github.com/dependabot) ([#4112](https://github.com/paperless-ngx/paperless-ngx/pull/4112)) - Bump tslib from 2.6.1 to 2.6.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#4108](https://github.com/paperless-ngx/paperless-ngx/pull/4108)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#4106](https://github.com/paperless-ngx/paperless-ngx/pull/4106)) - Bump concurrently from 8.2.0 to 8.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#4111](https://github.com/paperless-ngx/paperless-ngx/pull/4111)) - Bump [@types/node from 20.4.5 to 20.5.8 in /src-ui @dependabot](https://github.com/types/node from 20.4.5 to 20.5.8 in /src-ui @dependabot) ([#4110](https://github.com/paperless-ngx/paperless-ngx/pull/4110)) - Bump the frontend-angular-dependencies group in /src-ui with 19 updates [@dependabot](https://github.com/dependabot) ([#4104](https://github.com/paperless-ngx/paperless-ngx/pull/4104))

## paperless-ngx 1.17.4

### Bug Fixes

- Fix: ghostscript rendering error doesn't trigger frontend failure message @shamoon (#4092)

### All App Changes

- Fix: ghostscript rendering error doesn't trigger frontend failure message @shamoon (#4092)

## paperless-ngx 1.17.3

### Bug Fixes

- Fix: When PDF/A rendering fails, add a consideration for the user to add args to override @stumpylog (#4083)

### Dependencies

- Chore: update frontend PDF viewer (including pdf-js) @shamoon (#4065)

### Maintenance

- Dev: Upload code coverage in the same job @stumpylog (#4084)

### All App Changes

3 changes
- Fix: When PDF/A rendering fails, add a consideration for the user to add args to override [@stumpylog](https://github.com/stumpylog) ([#4083](https://github.com/paperless-ngx/paperless-ngx/pull/4083)) - Chore: update frontend PDF viewer (including pdf-js) [@shamoon](https://github.com/shamoon) ([#4065](https://github.com/paperless-ngx/paperless-ngx/pull/4065)) - Chore: Prepare for Python 3.11 support [@stumpylog](https://github.com/stumpylog) ([#4066](https://github.com/paperless-ngx/paperless-ngx/pull/4066))

## paperless-ngx 1.17.2

### Features

- Enhancement: Allow to set a prefix for keys and channels in redis @amo13 (#3993)

### Bug Fixes

- Fix: Increase the HTTP timeouts for Tika/Gotenberg to maximum task time @stumpylog (#4061)
- Fix: Allow adding an SSL certificate for IMAP SSL context @stumpylog (#4048)
- Fix: tag creation sometimes retained search text @shamoon (#4038)
- Fix: enforce permissions on bulk_edit operations @shamoon (#4007)

### All App Changes

6 changes
- Fix: Increase the HTTP timeouts for Tika/Gotenberg to maximum task time [@stumpylog](https://github.com/stumpylog) ([#4061](https://github.com/paperless-ngx/paperless-ngx/pull/4061)) - Enhancement: disable / hide some UI buttons / elements if insufficient permissions, show errors [@shamoon](https://github.com/shamoon) ([#4014](https://github.com/paperless-ngx/paperless-ngx/pull/4014)) - Fix: Allow adding an SSL certificate for IMAP SSL context [@stumpylog](https://github.com/stumpylog) ([#4048](https://github.com/paperless-ngx/paperless-ngx/pull/4048)) - Fix: tag creation sometimes retained search text [@shamoon](https://github.com/shamoon) ([#4038](https://github.com/paperless-ngx/paperless-ngx/pull/4038)) - Fix: enforce permissions on bulk_edit operations [@shamoon](https://github.com/shamoon) ([#4007](https://github.com/paperless-ngx/paperless-ngx/pull/4007)) - Enhancement: Allow to set a prefix for keys and channels in redis [@amo13](https://github.com/amo13) ([#3993](https://github.com/paperless-ngx/paperless-ngx/pull/3993))

## paperless-ngx 1.17.1

### Features

- Fix / Enhancement: restrict status messages by owner if set \& improve 404 page @shamoon (#3959)
- Feature: Add Ukrainian translation @shamoon (#3941)

### Bug Fixes

- Fix: handle ASN = 0 on frontend cards @shamoon (#3988)
- Fix: improve light color filled primary button text legibility @shamoon (#3980)
- Fix / Enhancement: restrict status messages by owner if set \& improve 404 page @shamoon (#3959)
- Fix: handle very old date strings in correspondent list @shamoon (#3953)

### Documentation

- docs(bare-metal): add new dependency @bin101 (#3931)

### Dependencies

- Chore: Loosen Pipfile restriction on some packages and update them @stumpylog (#3972)

### All App Changes

6 changes
- Fix: handle ASN = 0 on frontend cards [@shamoon](https://github.com/shamoon) ([#3988](https://github.com/paperless-ngx/paperless-ngx/pull/3988)) - Fix: improve light color filled primary button text legibility [@shamoon](https://github.com/shamoon) ([#3980](https://github.com/paperless-ngx/paperless-ngx/pull/3980)) - Fix / Enhancement: restrict status messages by owner if set \& improve 404 page [@shamoon](https://github.com/shamoon) ([#3959](https://github.com/paperless-ngx/paperless-ngx/pull/3959)) - Fix: handle very old date strings in correspondent list [@shamoon](https://github.com/shamoon) ([#3953](https://github.com/paperless-ngx/paperless-ngx/pull/3953)) - Chore: Reduces the 2 mail tests flakiness [@stumpylog](https://github.com/stumpylog) ([#3949](https://github.com/paperless-ngx/paperless-ngx/pull/3949)) - Feature: Add Ukrainian translation [@shamoon](https://github.com/shamoon) ([#3941](https://github.com/paperless-ngx/paperless-ngx/pull/3941))

## paperless-ngx 1.17.0

### Features

- Add support for additional UK date formats @brainrecursion (#3887)
- Add 'doc_pk' to PAPERLESS_FILENAME_FORMAT handling @mechanarchy (#3861)
- Feature: hover buttons for saved view widgets @shamoon (#3875)
- Feature: collate two single-sided multipage scans @brakhane (#3784)
- Feature: include global and object-level permissions in export / import @shamoon (#3672)
- Enhancement / Fix: Migrate encrypted png thumbnails to webp @shamoon (#3719)
- Feature: Add Slovak translation @shamoon (#3722)

### Bug Fixes

- Fix: cancel possibly slow queries on doc details @shamoon (#3925)
- Fix: note creation / deletion should respect doc permissions @shamoon (#3903)
- Fix: notes show persistent scrollbars @shamoon (#3904)
- Fix: Provide SSL context to IMAP client @stumpylog (#3886)
- Fix/enhancement: permissions for mail rules \& accounts @shamoon (#3869)
- Fix: Classifier special case when no items are set to automatic matching @stumpylog (#3858)
- Fix: issues with copy2 or copystat and SELinux permissions @stumpylog (#3847)
- Fix: Parsing office document timestamps @stumpylog (#3836)
- Fix: Add warning to install script need for permissions @shamoon (#3835)
- Fix interaction between API and barcode archive serial number @stumpylog (#3834)
- Enhancement / Fix: Migrate encrypted png thumbnails to webp @shamoon (#3719)
- Fix: add UI tour step padding @hakimio (#3791)
- Fix: translate file tasks types in footer @shamoon (#3749)
- Fix: limit ng-select size for addition of filter button @shamoon (#3731)

### Documentation

- Documentation: improvements to grammar, spelling, indentation @mechanarchy (#3844)

### Maintenance

- Bump stumpylog/image-cleaner-action from 0.1.0 to 0.2.0 @dependabot (#3910)
- Chore: group frontend angular dependabot updates @shamoon (#3750)

### Dependencies

17 changes
- Chore: Bump the frontend-angular-dependencies group in /src-ui with 11 updates [@shamoon](https://github.com/shamoon) ([#3918](https://github.com/paperless-ngx/paperless-ngx/pull/3918)) - Bump stumpylog/image-cleaner-action from 0.1.0 to 0.2.0 [@dependabot](https://github.com/dependabot) ([#3910](https://github.com/paperless-ngx/paperless-ngx/pull/3910)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#3911](https://github.com/paperless-ngx/paperless-ngx/pull/3911)) - Bump tslib from 2.6.0 to 2.6.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#3909](https://github.com/paperless-ngx/paperless-ngx/pull/3909)) - Bump jest-environment-jsdom from 29.5.0 to 29.6.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#3916](https://github.com/paperless-ngx/paperless-ngx/pull/3916)) - Bump [@types/node from 20.3.3 to 20.4.5 in /src-ui @dependabot](https://github.com/types/node from 20.3.3 to 20.4.5 in /src-ui @dependabot) ([#3915](https://github.com/paperless-ngx/paperless-ngx/pull/3915)) - Bump bootstrap from 5.3.0 to 5.3.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#3914](https://github.com/paperless-ngx/paperless-ngx/pull/3914)) - Bump [@playwright/test from 1.36.1 to 1.36.2 in /src-ui @dependabot](https://github.com/playwright/test from 1.36.1 to 1.36.2 in /src-ui @dependabot) ([#3912](https://github.com/paperless-ngx/paperless-ngx/pull/3912)) - Bump the frontend-jest-dependencies group in /src-ui with 1 update [@dependabot](https://github.com/dependabot) ([#3906](https://github.com/paperless-ngx/paperless-ngx/pull/3906)) - Chore: Update dependencies [@stumpylog](https://github.com/stumpylog) ([#3883](https://github.com/paperless-ngx/paperless-ngx/pull/3883)) - Chore: Update Python dependencies [@stumpylog](https://github.com/stumpylog) ([#3842](https://github.com/paperless-ngx/paperless-ngx/pull/3842)) - Bump the frontend-angular-dependencies group in /src-ui with 16 updates [@dependabot](https://github.com/dependabot) ([#3826](https://github.com/paperless-ngx/paperless-ngx/pull/3826)) - Bump [@typescript-eslint/eslint-plugin from 5.60.1 to 6.1.0 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.60.1 to 6.1.0 in /src-ui @dependabot) ([#3829](https://github.com/paperless-ngx/paperless-ngx/pull/3829)) - Bump jest and [@types/jest in /src-ui @dependabot](https://github.com/types/jest in /src-ui @dependabot) ([#3828](https://github.com/paperless-ngx/paperless-ngx/pull/3828)) - Bump [@playwright/test from 1.36.0 to 1.36.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.36.0 to 1.36.1 in /src-ui @dependabot) ([#3827](https://github.com/paperless-ngx/paperless-ngx/pull/3827)) - Bump semver from 5.7.1 to 5.7.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#3793](https://github.com/paperless-ngx/paperless-ngx/pull/3793)) - Chore: Bump Angular to v16 and other frontend packages [@dependabot](https://github.com/dependabot) ([#3727](https://github.com/paperless-ngx/paperless-ngx/pull/3727))

### All App Changes

35 changes
- Fix: cancel possibly slow queries on doc details [@shamoon](https://github.com/shamoon) ([#3925](https://github.com/paperless-ngx/paperless-ngx/pull/3925)) - [BUG] Set office document creation date with timezone, if it is naive [@a17t](https://github.com/a17t) ([#3760](https://github.com/paperless-ngx/paperless-ngx/pull/3760)) - Fix: note creation / deletion should respect doc permissions [@shamoon](https://github.com/shamoon) ([#3903](https://github.com/paperless-ngx/paperless-ngx/pull/3903)) - Chore: Bump the frontend-angular-dependencies group in /src-ui with 11 updates [@shamoon](https://github.com/shamoon) ([#3918](https://github.com/paperless-ngx/paperless-ngx/pull/3918)) - Bump the frontend-eslint-dependencies group in /src-ui with 3 updates [@dependabot](https://github.com/dependabot) ([#3911](https://github.com/paperless-ngx/paperless-ngx/pull/3911)) - Bump tslib from 2.6.0 to 2.6.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#3909](https://github.com/paperless-ngx/paperless-ngx/pull/3909)) - Bump jest-environment-jsdom from 29.5.0 to 29.6.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#3916](https://github.com/paperless-ngx/paperless-ngx/pull/3916)) - Bump [@types/node from 20.3.3 to 20.4.5 in /src-ui @dependabot](https://github.com/types/node from 20.3.3 to 20.4.5 in /src-ui @dependabot) ([#3915](https://github.com/paperless-ngx/paperless-ngx/pull/3915)) - Bump bootstrap from 5.3.0 to 5.3.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#3914](https://github.com/paperless-ngx/paperless-ngx/pull/3914)) - Bump [@playwright/test from 1.36.1 to 1.36.2 in /src-ui @dependabot](https://github.com/playwright/test from 1.36.1 to 1.36.2 in /src-ui @dependabot) ([#3912](https://github.com/paperless-ngx/paperless-ngx/pull/3912)) - Bump the frontend-jest-dependencies group in /src-ui with 1 update [@dependabot](https://github.com/dependabot) ([#3906](https://github.com/paperless-ngx/paperless-ngx/pull/3906)) - Fix: notes show persistent scrollbars [@shamoon](https://github.com/shamoon) ([#3904](https://github.com/paperless-ngx/paperless-ngx/pull/3904)) - Add support for additional UK date formats [@brainrecursion](https://github.com/brainrecursion) ([#3887](https://github.com/paperless-ngx/paperless-ngx/pull/3887)) - Add 'doc_pk' to PAPERLESS_FILENAME_FORMAT handling [@mechanarchy](https://github.com/mechanarchy) ([#3861](https://github.com/paperless-ngx/paperless-ngx/pull/3861)) - Fix: Provide SSL context to IMAP client [@stumpylog](https://github.com/stumpylog) ([#3886](https://github.com/paperless-ngx/paperless-ngx/pull/3886)) - Feature: hover buttons for saved view widgets [@shamoon](https://github.com/shamoon) ([#3875](https://github.com/paperless-ngx/paperless-ngx/pull/3875)) - Fix/enhancement: permissions for mail rules \& accounts [@shamoon](https://github.com/shamoon) ([#3869](https://github.com/paperless-ngx/paperless-ngx/pull/3869)) - Chore: typing improvements [@stumpylog](https://github.com/stumpylog) ([#3860](https://github.com/paperless-ngx/paperless-ngx/pull/3860)) - Fix: Classifier special case when no items are set to automatic matching [@stumpylog](https://github.com/stumpylog) ([#3858](https://github.com/paperless-ngx/paperless-ngx/pull/3858)) - Fix: issues with copy2 or copystat and SELinux permissions [@stumpylog](https://github.com/stumpylog) ([#3847](https://github.com/paperless-ngx/paperless-ngx/pull/3847)) - Chore: Update Python dependencies [@stumpylog](https://github.com/stumpylog) ([#3842](https://github.com/paperless-ngx/paperless-ngx/pull/3842)) - Feature: include global and object-level permissions in export / import [@shamoon](https://github.com/shamoon) ([#3672](https://github.com/paperless-ngx/paperless-ngx/pull/3672)) - Fix: Parsing office document timestamps [@stumpylog](https://github.com/stumpylog) ([#3836](https://github.com/paperless-ngx/paperless-ngx/pull/3836)) - Fix interaction between API and barcode archive serial number [@stumpylog](https://github.com/stumpylog) ([#3834](https://github.com/paperless-ngx/paperless-ngx/pull/3834)) - Bump the frontend-angular-dependencies group in /src-ui with 16 updates [@dependabot](https://github.com/dependabot) ([#3826](https://github.com/paperless-ngx/paperless-ngx/pull/3826)) - Enhancement / Fix: Migrate encrypted png thumbnails to webp [@shamoon](https://github.com/shamoon) ([#3719](https://github.com/paperless-ngx/paperless-ngx/pull/3719)) - Bump [@typescript-eslint/eslint-plugin from 5.60.1 to 6.1.0 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.60.1 to 6.1.0 in /src-ui @dependabot) ([#3829](https://github.com/paperless-ngx/paperless-ngx/pull/3829)) - Bump jest and [@types/jest in /src-ui @dependabot](https://github.com/types/jest in /src-ui @dependabot) ([#3828](https://github.com/paperless-ngx/paperless-ngx/pull/3828)) - Bump [@playwright/test from 1.36.0 to 1.36.1 in /src-ui @dependabot](https://github.com/playwright/test from 1.36.0 to 1.36.1 in /src-ui @dependabot) ([#3827](https://github.com/paperless-ngx/paperless-ngx/pull/3827)) - Bump semver from 5.7.1 to 5.7.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#3793](https://github.com/paperless-ngx/paperless-ngx/pull/3793)) - Fix: add UI tour step padding [@hakimio](https://github.com/hakimio) ([#3791](https://github.com/paperless-ngx/paperless-ngx/pull/3791)) - Fix: translate file tasks types in footer [@shamoon](https://github.com/shamoon) ([#3749](https://github.com/paperless-ngx/paperless-ngx/pull/3749)) - Feature: Add Slovak translation [@shamoon](https://github.com/shamoon) ([#3722](https://github.com/paperless-ngx/paperless-ngx/pull/3722)) - Fix: limit ng-select size for addition of filter button [@shamoon](https://github.com/shamoon) ([#3731](https://github.com/paperless-ngx/paperless-ngx/pull/3731)) - Chore: Bump Angular to v16 and other frontend packages [@dependabot](https://github.com/dependabot) ([#3727](https://github.com/paperless-ngx/paperless-ngx/pull/3727))

## paperless-ngx 1.16.5

### Features

- Feature: support barcode upscaling for better detection of small barcodes @bmachek (#3655)

### Bug Fixes

- Fix: owner removed when set_permissions passed on object create @shamoon (#3702)

### All App Changes

2 changes
- Feature: support barcode upscaling for better detection of small barcodes [@bmachek](https://github.com/bmachek) ([#3655](https://github.com/paperless-ngx/paperless-ngx/pull/3655)) - Fix: owner removed when set_permissions passed on object create [@shamoon](https://github.com/shamoon) ([#3702](https://github.com/paperless-ngx/paperless-ngx/pull/3702))

## paperless-ngx 1.16.4

### Bug Fixes

- Fix: prevent button wrapping when sidebar narrows in MS Edge @shamoon (#3682)
- Fix: Handling for filenames with non-ascii and no content attribute @stumpylog (#3695)
- Fix: Generation of thumbnails for existing stored emails @stumpylog (#3696)
- Fix: Use row gap for filter editor @kleinweby (#3662)

### Documentation

- Documentation: update API docs re permissions @shamoon (#3697)

### Maintenance

- Chore: Updates codecov configuration for the flag settings and notification delay @stumpylog (#3656)

### All App Changes

4 changes
- Fix: prevent button wrapping when sidebar narrows in MS Edge [@shamoon](https://github.com/shamoon) ([#3682](https://github.com/paperless-ngx/paperless-ngx/pull/3682)) - Fix: Handling for filenames with non-ascii and no content attribute [@stumpylog](https://github.com/stumpylog) ([#3695](https://github.com/paperless-ngx/paperless-ngx/pull/3695)) - Fix: Generation of thumbnails for existing stored emails [@stumpylog](https://github.com/stumpylog) ([#3696](https://github.com/paperless-ngx/paperless-ngx/pull/3696)) - Fix: Use row gap for filter editor [@kleinweby](https://github.com/kleinweby) ([#3662](https://github.com/paperless-ngx/paperless-ngx/pull/3662))

## paperless-ngx 1.16.3

### Bug Fixes

- Fix: Set user and home environment through supervisord @stumpylog (#3638)
- Fix: Ignore errors when trying to copy the original file's stats @stumpylog (#3652)
- Fix: Copy default thumbnail if thumbnail generation fails @plu (#3632)
- Fix: Set user and home environment through supervisord @stumpylog (#3638)
- Fix: Fix quick install with external database not being fully ready @stumpylog (#3637)

### Maintenance

- Chore: Update default Postgres version for new installs @stumpylog (#3640)

### All App Changes

2 changes
- Fix: Ignore errors when trying to copy the original file's stats [@stumpylog](https://github.com/stumpylog) ([#3652](https://github.com/paperless-ngx/paperless-ngx/pull/3652)) - Fix: Copy default thumbnail if thumbnail generation fails [@plu](https://github.com/plu) ([#3632](https://github.com/paperless-ngx/paperless-ngx/pull/3632))

## paperless-ngx 1.16.2

### Bug Fixes

- Fix: Increase httpx operation timeouts to 30s @stumpylog (#3627)
- Fix: Better error handling and checking when parsing documents via Tika @stumpylog (#3617)

### Development

- Development: frontend unit testing @shamoon (#3597)

### Maintenance

- Chore: Bumps the CI/Docker pipenv version @stumpylog (#3622)
- Chore: Set CI artifact retention days @stumpylog (#3621)

### All App Changes

3 changes
- Fix: Increase httpx operation timeouts to 30s [@stumpylog](https://github.com/stumpylog) ([#3627](https://github.com/paperless-ngx/paperless-ngx/pull/3627)) - Fix: Better error handling and checking when parsing documents via Tika [@stumpylog](https://github.com/stumpylog) ([#3617](https://github.com/paperless-ngx/paperless-ngx/pull/3617)) - Development: frontend unit testing [@shamoon](https://github.com/shamoon) ([#3597](https://github.com/paperless-ngx/paperless-ngx/pull/3597))

## paperless-ngx 1.16.1

### Bug Fixes

- Fix: PIL ImportError on ARM devices with Docker @stumpylog (#3605)

### Maintenance

- Chore: Enable the image cleanup action @stumpylog (#3606)

## paperless-ngx 1.16.0

### Notable Changes

- Chore: Update base image to Debian bookworm @stumpylog (#3469)

### Features

- Feature: Update to a simpler Tika library @stumpylog (#3517)
- Feature: Allow to filter documents by original filename and checksum @jayme-github (#3485)

### Bug Fixes

- Fix: return user first / last name from backend @shamoon (#3579)
- Fix use of `PAPERLESS_DB_TIMEOUT` for all db types @shamoon (#3576)
- Fix: handle mail rules with no filters on some imap servers @shamoon (#3554)

### Dependencies

- Chore: Python dependency updates (celery 5.3.0 in particular) @stumpylog (#3584)

### All App Changes

8 changes
- Chore: Python dependency updates (celery 5.3.0 in particular) [@stumpylog](https://github.com/stumpylog) ([#3584](https://github.com/paperless-ngx/paperless-ngx/pull/3584)) - Fix: return user first / last name from backend [@shamoon](https://github.com/shamoon) ([#3579](https://github.com/paperless-ngx/paperless-ngx/pull/3579)) - Fix use of `PAPERLESS_DB_TIMEOUT` for all db types [@shamoon](https://github.com/shamoon) ([#3576](https://github.com/paperless-ngx/paperless-ngx/pull/3576)) - Fix: handle mail rules with no filters on some imap servers [@shamoon](https://github.com/shamoon) ([#3554](https://github.com/paperless-ngx/paperless-ngx/pull/3554)) - Chore: Copy file stats from original file [@stumpylog](https://github.com/stumpylog) ([#3551](https://github.com/paperless-ngx/paperless-ngx/pull/3551)) - Chore: Adds test for barcode ASN when it already exists [@stumpylog](https://github.com/stumpylog) ([#3550](https://github.com/paperless-ngx/paperless-ngx/pull/3550)) - Feature: Update to a simpler Tika library [@stumpylog](https://github.com/stumpylog) ([#3517](https://github.com/paperless-ngx/paperless-ngx/pull/3517)) - Feature: Allow to filter documents by original filename and checksum [@jayme-github](https://github.com/jayme-github) ([#3485](https://github.com/paperless-ngx/paperless-ngx/pull/3485))

## paperless-ngx 1.15.1

### Bug Fixes

- Fix incorrect colors in v1.15.0 @shamoon (#3523)

### All App Changes

- Fix incorrect colors in v1.15.0 @shamoon (#3523)

## paperless-ngx 1.15.0

### Features

- Feature: quick filters from document detail @shamoon (#3476)
- Feature: Add explanations to relative dates @shamoon (#3471)
- Enhancement: paginate frontend tasks @shamoon (#3445)
- Feature: Better encapsulation of barcode logic @stumpylog (#3425)
- Enhancement: Improve frontend error handling @shamoon (#3413)

### Bug Fixes

- Fix: KeyError error on unauthenticated API calls \& persist authentication when enabled @ajgon (#3516)
- Fix: exclude consumer \& AnonymousUser users from export manifest @shamoon (#3487)
- Fix: prevent date suggestion search if disabled @shamoon (#3472)
- Sync Pipfile.lock based on latest Pipfile @adamantike (#3475)
- Fix: DocumentSerializer should return correct original filename @jayme-github (#3473)
- consumer.py: read from original file (instead of temp copy) @chrisblech (#3466)
- Bugfix: Catch an nltk AttributeError and handle it @stumpylog (#3453)

### Documentation

- Adding doc on how to setup Fail2ban @GuillaumeHullin (#3414)
- Docs: Fix typo @MarcelBochtler (#3437)
- [Documentation] Move nginx @shamoon (#3420)
- Documentation: Note possible dependency removal for bare metal @stumpylog (#3408)

### Development

- Development: migrate frontend tests to playwright @shamoon (#3401)

### Dependencies

10 changes
- Bump eslint from 8.39.0 to 8.41.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3513](https://github.com/paperless-ngx/paperless-ngx/pull/3513)) - Bump concurrently from 8.0.1 to 8.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3510](https://github.com/paperless-ngx/paperless-ngx/pull/3510)) - Bump [@ng-bootstrap/ng-bootstrap from 14.1.0 to 14.2.0 in /src-ui @dependabot](https://github.com/ng-bootstrap/ng-bootstrap from 14.1.0 to 14.2.0 in /src-ui @dependabot) ([#3507](https://github.com/paperless-ngx/paperless-ngx/pull/3507)) - Bump [@popperjs/core from 2.11.7 to 2.11.8 in /src-ui @dependabot](https://github.com/popperjs/core from 2.11.7 to 2.11.8 in /src-ui @dependabot) ([#3508](https://github.com/paperless-ngx/paperless-ngx/pull/3508)) - Bump [@typescript-eslint/parser from 5.59.2 to 5.59.8 in /src-ui @dependabot](https://github.com/typescript-eslint/parser from 5.59.2 to 5.59.8 in /src-ui @dependabot) ([#3505](https://github.com/paperless-ngx/paperless-ngx/pull/3505)) - Bump bootstrap from 5.2.3 to 5.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3497](https://github.com/paperless-ngx/paperless-ngx/pull/3497)) - Bump [@typescript-eslint/eslint-plugin from 5.59.2 to 5.59.8 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.59.2 to 5.59.8 in /src-ui @dependabot) ([#3500](https://github.com/paperless-ngx/paperless-ngx/pull/3500)) - Bump tslib from 2.5.0 to 2.5.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#3501](https://github.com/paperless-ngx/paperless-ngx/pull/3501)) - Bump [@types/node from 18.16.3 to 20.2.5 in /src-ui @dependabot](https://github.com/types/node from 18.16.3 to 20.2.5 in /src-ui @dependabot) ([#3498](https://github.com/paperless-ngx/paperless-ngx/pull/3498)) - Bump [@playwright/test from 1.33.0 to 1.34.3 in /src-ui @dependabot](https://github.com/playwright/test from 1.33.0 to 1.34.3 in /src-ui @dependabot) ([#3499](https://github.com/paperless-ngx/paperless-ngx/pull/3499))

### All App Changes

22 changes
- Fix: KeyError error on unauthenticated API calls \& persist authentication when enabled [@ajgon](https://github.com/ajgon) ([#3516](https://github.com/paperless-ngx/paperless-ngx/pull/3516)) - Bump eslint from 8.39.0 to 8.41.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3513](https://github.com/paperless-ngx/paperless-ngx/pull/3513)) - Bump concurrently from 8.0.1 to 8.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3510](https://github.com/paperless-ngx/paperless-ngx/pull/3510)) - Bump [@ng-bootstrap/ng-bootstrap from 14.1.0 to 14.2.0 in /src-ui @dependabot](https://github.com/ng-bootstrap/ng-bootstrap from 14.1.0 to 14.2.0 in /src-ui @dependabot) ([#3507](https://github.com/paperless-ngx/paperless-ngx/pull/3507)) - Bump [@popperjs/core from 2.11.7 to 2.11.8 in /src-ui @dependabot](https://github.com/popperjs/core from 2.11.7 to 2.11.8 in /src-ui @dependabot) ([#3508](https://github.com/paperless-ngx/paperless-ngx/pull/3508)) - Bump [@typescript-eslint/parser from 5.59.2 to 5.59.8 in /src-ui @dependabot](https://github.com/typescript-eslint/parser from 5.59.2 to 5.59.8 in /src-ui @dependabot) ([#3505](https://github.com/paperless-ngx/paperless-ngx/pull/3505)) - Bump bootstrap from 5.2.3 to 5.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3497](https://github.com/paperless-ngx/paperless-ngx/pull/3497)) - Bump [@typescript-eslint/eslint-plugin from 5.59.2 to 5.59.8 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.59.2 to 5.59.8 in /src-ui @dependabot) ([#3500](https://github.com/paperless-ngx/paperless-ngx/pull/3500)) - Bump tslib from 2.5.0 to 2.5.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#3501](https://github.com/paperless-ngx/paperless-ngx/pull/3501)) - Bump [@types/node from 18.16.3 to 20.2.5 in /src-ui @dependabot](https://github.com/types/node from 18.16.3 to 20.2.5 in /src-ui @dependabot) ([#3498](https://github.com/paperless-ngx/paperless-ngx/pull/3498)) - Bump [@playwright/test from 1.33.0 to 1.34.3 in /src-ui @dependabot](https://github.com/playwright/test from 1.33.0 to 1.34.3 in /src-ui @dependabot) ([#3499](https://github.com/paperless-ngx/paperless-ngx/pull/3499)) - Feature: quick filters from document detail [@shamoon](https://github.com/shamoon) ([#3476](https://github.com/paperless-ngx/paperless-ngx/pull/3476)) - Fix: exclude consumer \& AnonymousUser users from export manifest [@shamoon](https://github.com/shamoon) ([#3487](https://github.com/paperless-ngx/paperless-ngx/pull/3487)) - Fix: prevent date suggestion search if disabled [@shamoon](https://github.com/shamoon) ([#3472](https://github.com/paperless-ngx/paperless-ngx/pull/3472)) - Feature: Add explanations to relative dates [@shamoon](https://github.com/shamoon) ([#3471](https://github.com/paperless-ngx/paperless-ngx/pull/3471)) - Fix: DocumentSerializer should return correct original filename [@jayme-github](https://github.com/jayme-github) ([#3473](https://github.com/paperless-ngx/paperless-ngx/pull/3473)) - consumer.py: read from original file (instead of temp copy) [@chrisblech](https://github.com/chrisblech) ([#3466](https://github.com/paperless-ngx/paperless-ngx/pull/3466)) - Bugfix: Catch an nltk AttributeError and handle it [@stumpylog](https://github.com/stumpylog) ([#3453](https://github.com/paperless-ngx/paperless-ngx/pull/3453)) - Chore: Improves the logging mixin and allows it to be typed better [@stumpylog](https://github.com/stumpylog) ([#3451](https://github.com/paperless-ngx/paperless-ngx/pull/3451)) - Enhancement: paginate frontend tasks [@shamoon](https://github.com/shamoon) ([#3445](https://github.com/paperless-ngx/paperless-ngx/pull/3445)) - Add SSL Support for MariaDB [@kimdre](https://github.com/kimdre) ([#3444](https://github.com/paperless-ngx/paperless-ngx/pull/3444)) - Enhancement: Improve frontend error handling [@shamoon](https://github.com/shamoon) ([#3413](https://github.com/paperless-ngx/paperless-ngx/pull/3413))

## paperless-ngx 1.14.5

### Features

- Feature: owner filtering @shamoon (#3309)
- Enhancement: dynamic counts include all pages, hide for Any @shamoon (#3329)
- Enhancement: save tour completion, hide welcome widget @shamoon (#3321)

### Bug Fixes

- Fix: Adds better handling for files with invalid utf8 content @stumpylog (#3387)
- Fix: respect permissions for autocomplete suggestions @shamoon (#3359)
- Fix: Transition to new library for finding IPs for failed logins @stumpylog (#3382)
- [Security] Render frontend text as plain text @shamoon (#3366)
- Fix: default frontend to current owner, allow setting no owner on create @shamoon (#3347)
- Fix: dont perform mail actions when rule filename filter not met @shamoon (#3336)
- Fix: permission-aware bulk editing in 1.14.1+ @shamoon (#3345)

### Maintenance

- Chore: Rework workflows @stumpylog (#3242)

### Dependencies

- Chore: Upgrade channels to v4 @stumpylog (#3383)
- Chore: Upgrades Python dependencies to their latest allowed versions @stumpylog (#3365)

### All App Changes

13 changes
- Fix: Adds better handling for files with invalid utf8 content [@stumpylog](https://github.com/stumpylog) ([#3387](https://github.com/paperless-ngx/paperless-ngx/pull/3387)) - Fix: respect permissions for autocomplete suggestions [@shamoon](https://github.com/shamoon) ([#3359](https://github.com/paperless-ngx/paperless-ngx/pull/3359)) - Chore: Upgrade channels to v4 [@stumpylog](https://github.com/stumpylog) ([#3383](https://github.com/paperless-ngx/paperless-ngx/pull/3383)) - Fix: Transition to new library for finding IPs for failed logins [@stumpylog](https://github.com/stumpylog) ([#3382](https://github.com/paperless-ngx/paperless-ngx/pull/3382)) - Feature: owner filtering [@shamoon](https://github.com/shamoon) ([#3309](https://github.com/paperless-ngx/paperless-ngx/pull/3309)) - [Security] Render frontend text as plain text [@shamoon](https://github.com/shamoon) ([#3366](https://github.com/paperless-ngx/paperless-ngx/pull/3366)) - Enhancement: dynamic counts include all pages, hide for Any [@shamoon](https://github.com/shamoon) ([#3329](https://github.com/paperless-ngx/paperless-ngx/pull/3329)) - Fix: default frontend to current owner, allow setting no owner on create [@shamoon](https://github.com/shamoon) ([#3347](https://github.com/paperless-ngx/paperless-ngx/pull/3347)) - [Fix] Position:fixed for .global-dropzone-overlay [@denilsonsa](https://github.com/denilsonsa) ([#3367](https://github.com/paperless-ngx/paperless-ngx/pull/3367)) - Fix: dont perform mail actions when rule filename filter not met [@shamoon](https://github.com/shamoon) ([#3336](https://github.com/paperless-ngx/paperless-ngx/pull/3336)) - Enhancement: save tour completion, hide welcome widget [@shamoon](https://github.com/shamoon) ([#3321](https://github.com/paperless-ngx/paperless-ngx/pull/3321)) - Fix: permission-aware bulk editing in 1.14.1+ [@shamoon](https://github.com/shamoon) ([#3345](https://github.com/paperless-ngx/paperless-ngx/pull/3345)) - Fix: Add proper testing for \*\_\_id\_\_in testing [@shamoon](https://github.com/shamoon) ([#3315](https://github.com/paperless-ngx/paperless-ngx/pull/3315))

## paperless-ngx 1.14.4

### Bug Fixes

- Fix: Inversion in tagged mail searching @stumpylog (#3305)
- Fix dynamic count labels hidden in light mode @shamoon (#3303)

### All App Changes

3 changes
- New Crowdin updates [@paperlessngx-bot](https://github.com/paperlessngx-bot) ([#3298](https://github.com/paperless-ngx/paperless-ngx/pull/3298)) - Fix: Inversion in tagged mail searching [@stumpylog](https://github.com/stumpylog) ([#3305](https://github.com/paperless-ngx/paperless-ngx/pull/3305)) - Fix dynamic count labels hidden in light mode [@shamoon](https://github.com/shamoon) ([#3303](https://github.com/paperless-ngx/paperless-ngx/pull/3303))

## paperless-ngx 1.14.3

### Features

- Enhancement: better keyboard nav for filter/edit dropdowns @shamoon (#3227)

### Bug Fixes

- Bump filelock from 3.10.2 to 3.12.0 to fix permissions bug @rbrownwsws (#3282)
- Fix: Handle cases where media files aren't all in the same filesystem @stumpylog (#3261)
- Fix: Prevent erroneous warning when starting container @stumpylog (#3262)
- Retain doc changes on tab switch after refresh doc @shamoon (#3243)
- Fix: Don't send Gmail related setting if the server doesn't support it @stumpylog (#3240)
- Fix: close all docs on logout @shamoon (#3232)
- Fix: Respect superuser for advanced queries, test coverage for object perms @shamoon (#3222)
- Fix: ALLOWED_HOSTS logic being overwritten when * is set @ikaruswill (#3218)

### Dependencies

7 changes
- Bump eslint from 8.38.0 to 8.39.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3276](https://github.com/paperless-ngx/paperless-ngx/pull/3276)) - Bump [@typescript-eslint/parser from 5.58.0 to 5.59.2 in /src-ui @dependabot](https://github.com/typescript-eslint/parser from 5.58.0 to 5.59.2 in /src-ui @dependabot) ([#3278](https://github.com/paperless-ngx/paperless-ngx/pull/3278)) - Bump [@types/node from 18.15.11 to 18.16.3 in /src-ui @dependabot](https://github.com/types/node from 18.15.11 to 18.16.3 in /src-ui @dependabot) ([#3275](https://github.com/paperless-ngx/paperless-ngx/pull/3275)) - Bump rxjs from 7.8.0 to 7.8.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#3277](https://github.com/paperless-ngx/paperless-ngx/pull/3277)) - Bump [@typescript-eslint/eslint-plugin from 5.58.0 to 5.59.2 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.58.0 to 5.59.2 in /src-ui @dependabot) ([#3274](https://github.com/paperless-ngx/paperless-ngx/pull/3274)) - Bump cypress from 12.9.0 to 12.11.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3268](https://github.com/paperless-ngx/paperless-ngx/pull/3268)) - Bulk bump angular packages to 15.2.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#3270](https://github.com/paperless-ngx/paperless-ngx/pull/3270))

### All App Changes

14 changes
- Bump eslint from 8.38.0 to 8.39.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3276](https://github.com/paperless-ngx/paperless-ngx/pull/3276)) - Bump [@typescript-eslint/parser from 5.58.0 to 5.59.2 in /src-ui @dependabot](https://github.com/typescript-eslint/parser from 5.58.0 to 5.59.2 in /src-ui @dependabot) ([#3278](https://github.com/paperless-ngx/paperless-ngx/pull/3278)) - Bump [@types/node from 18.15.11 to 18.16.3 in /src-ui @dependabot](https://github.com/types/node from 18.15.11 to 18.16.3 in /src-ui @dependabot) ([#3275](https://github.com/paperless-ngx/paperless-ngx/pull/3275)) - Bump rxjs from 7.8.0 to 7.8.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#3277](https://github.com/paperless-ngx/paperless-ngx/pull/3277)) - Bump [@typescript-eslint/eslint-plugin from 5.58.0 to 5.59.2 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.58.0 to 5.59.2 in /src-ui @dependabot) ([#3274](https://github.com/paperless-ngx/paperless-ngx/pull/3274)) - Bump cypress from 12.9.0 to 12.11.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#3268](https://github.com/paperless-ngx/paperless-ngx/pull/3268)) - Bulk bump angular packages to 15.2.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#3270](https://github.com/paperless-ngx/paperless-ngx/pull/3270)) - Fix: Handle cases where media files aren't all in the same filesystem [@stumpylog](https://github.com/stumpylog) ([#3261](https://github.com/paperless-ngx/paperless-ngx/pull/3261)) - Retain doc changes on tab switch after refresh doc [@shamoon](https://github.com/shamoon) ([#3243](https://github.com/paperless-ngx/paperless-ngx/pull/3243)) - Fix: Don't send Gmail related setting if the server doesn't support it [@stumpylog](https://github.com/stumpylog) ([#3240](https://github.com/paperless-ngx/paperless-ngx/pull/3240)) - Fix: close all docs on logout [@shamoon](https://github.com/shamoon) ([#3232](https://github.com/paperless-ngx/paperless-ngx/pull/3232)) - Enhancement: better keyboard nav for filter/edit dropdowns [@shamoon](https://github.com/shamoon) ([#3227](https://github.com/paperless-ngx/paperless-ngx/pull/3227)) - Fix: Respect superuser for advanced queries, test coverage for object perms [@shamoon](https://github.com/shamoon) ([#3222](https://github.com/paperless-ngx/paperless-ngx/pull/3222)) - Fix: ALLOWED_HOSTS logic being overwritten when \* is set [@ikaruswill](https://github.com/ikaruswill) ([#3218](https://github.com/paperless-ngx/paperless-ngx/pull/3218))

## paperless-ngx 1.14.2

### Features

- Feature: Finnish translation @shamoon (#3215)

### Bug Fixes

- Fix: Load saved views from app frame, not dashboard @shamoon (#3211)
- Fix: advanced search or date searching + doc type/correspondent/storage path broken @shamoon (#3209)
- Fix MixedContentTypeError in add_inbox_tags handler @e1mo (#3212)

### All App Changes

4 changes
- Feature: Finnish translation [@shamoon](https://github.com/shamoon) ([#3215](https://github.com/paperless-ngx/paperless-ngx/pull/3215)) - Fix: Load saved views from app frame, not dashboard [@shamoon](https://github.com/shamoon) ([#3211](https://github.com/paperless-ngx/paperless-ngx/pull/3211)) - Fix: advanced search or date searching + doc type/correspondent/storage path broken [@shamoon](https://github.com/shamoon) ([#3209](https://github.com/paperless-ngx/paperless-ngx/pull/3209)) - Fix MixedContentTypeError in add_inbox_tags handler [@e1mo](https://github.com/e1mo) ([#3212](https://github.com/paperless-ngx/paperless-ngx/pull/3212))

## paperless-ngx 1.14.1

### Bug Fixes

- Fix: reduce frequency of permissions queries to speed up v1.14.0 @shamoon (#3201)
- Fix: permissions-aware statistics @shamoon (#3199)
- Fix: Use document owner for matching if set @shamoon (#3198)
- Fix: respect permissions on document view actions @shamoon (#3174)
- Increment API version for 1.14.1+ @shamoon (#3191)
- Fix: dropdown Private items with empty set @shamoon (#3189)
- Documentation: add note for macOS @shamoon (#3190)
- Fix: make the importer a little more robust against some errors @stumpylog (#3188)
- Fix: Specify backend for auto-login @shamoon (#3163)
- Fix: StoragePath missing the owned or granted filter @stumpylog (#3180)
- Fix: Redis socket connections fail due to redis-py @stumpylog (#3176)
- Fix: Handle delete mail action with no filters @shamoon (#3161)
- Fix typos and wrong version number in doc @FizzyMUC (#3171)

### Documentation

- Documentation: add note for macOS @shamoon (#3190)
- Fix typos and wrong version number in doc @FizzyMUC (#3171)

### Maintenance

- Chore: Fix isort not running, upgrade to the latest black @stumpylog (#3177)

### All App Changes

11 changes
- Fix: reduce frequency of permissions queries to speed up v1.14.0 [@shamoon](https://github.com/shamoon) ([#3201](https://github.com/paperless-ngx/paperless-ngx/pull/3201)) - Fix: permissions-aware statistics [@shamoon](https://github.com/shamoon) ([#3199](https://github.com/paperless-ngx/paperless-ngx/pull/3199)) - Fix: Use document owner for matching if set [@shamoon](https://github.com/shamoon) ([#3198](https://github.com/paperless-ngx/paperless-ngx/pull/3198)) - Chore: Fix isort not running, upgrade to the latest black [@stumpylog](https://github.com/stumpylog) ([#3177](https://github.com/paperless-ngx/paperless-ngx/pull/3177)) - Fix: respect permissions on document view actions [@shamoon](https://github.com/shamoon) ([#3174](https://github.com/paperless-ngx/paperless-ngx/pull/3174)) - Increment API version for 1.14.1+ [@shamoon](https://github.com/shamoon) ([#3191](https://github.com/paperless-ngx/paperless-ngx/pull/3191)) - Fix: dropdown Private items with empty set [@shamoon](https://github.com/shamoon) ([#3189](https://github.com/paperless-ngx/paperless-ngx/pull/3189)) - Fix: make the importer a little more robust against some errors [@stumpylog](https://github.com/stumpylog) ([#3188](https://github.com/paperless-ngx/paperless-ngx/pull/3188)) - Fix: Specify backend for auto-login [@shamoon](https://github.com/shamoon) ([#3163](https://github.com/paperless-ngx/paperless-ngx/pull/3163)) - Fix: StoragePath missing the owned or granted filter [@stumpylog](https://github.com/stumpylog) ([#3180](https://github.com/paperless-ngx/paperless-ngx/pull/3180)) - Fix: Handle delete mail action with no filters [@shamoon](https://github.com/shamoon) ([#3161](https://github.com/paperless-ngx/paperless-ngx/pull/3161))

## paperless-ngx 1.14.0

### Notable Changes

- Feature: multi-user permissions @shamoon (#2147)

### Features

- Feature: Stronger typing for file consumption @stumpylog (#2744)
- Feature: double-click docs @shamoon (#2966)
- feature: Add support for zxing as barcode scanning lib @margau (#2907)
- Feature: Enable images to be released on Quay.io @stumpylog (#2972)
- Feature: test mail account @shamoon (#2949)
- Feature: Capture celery and kombu logs to a file @stumpylog (#2954)
- Fix: Resolve Redis connection issues with ACLs @stumpylog (#2939)
- Feature: Allow mail account to use access tokens @stumpylog (#2930)
- Fix: Consumer polling could overwhelm database @stumpylog (#2922)
- Feature: Improved statistics widget @shamoon (#2910)
- Enhancement: rename comments to notes and improve notes UI @shamoon (#2904)
- Allow psql client certificate authentication @Ongy (#2899)
- Enhancement: support filtering multiple correspondents, doctypes \& storage paths @shamoon (#2893)
- Feature: Change celery serializer to pickle @stumpylog (#2861)
- Feature: Allow naming to include owner and original name @stumpylog (#2873)
- Feature: Allows filtering email by the TO value(s) as well @stumpylog (#2871)
- Feature: owner-aware unique model name constraint @shamoon (#2827)
- Feature/2396 better mail actions @jonaswinkler (#2718)
- Feature: Reduce classifier memory usage somewhat during training @stumpylog (#2733)
- Feature: Add PAPERLESS_OCR_SKIP_ARCHIVE_FILE config setting @bdr99 (#2743)
- Feature: dynamic document counts in dropdowns @shamoon (#2704)
- Allow setting the ASN on document upload @stumpylog (#2713)
- Feature: Log failed login attempts @shamoon (#2359)
- Feature: Rename documents when storage path format changes @stumpylog (#2696)
- Feature: update error message colors \& show on document failures @shamoon (#2689)
- Feature: multi-user permissions @shamoon (#2147)

### Bug Fixes

- Fix: Allow setting additional Django settings for proxies @stumpylog (#3135)
- Fix: Use exclude instead of difference for mariadb @shamoon (#2983)
- Fix: permissions display should not show users with inherited permissions \& unable to change owner @shamoon (#2818)
- Fix: Resolve Redis connection issues with ACLs @stumpylog (#2939)
- Fix: unable to edit correspondents (in ) @shamoon (#2938)
- Fix: Consumer polling could overwhelm database @stumpylog (#2922)
- Fix: Chrome struggles with commas @stumpylog (#2892)
- Fix formatting in Setup documentation page @igrybkov (#2880)
- Fix: logout on change password via frontend @shamoon (#2863)
- Fix: give superuser full doc perms @shamoon (#2820)
- Fix: Append Gmail labels instead of replacing @stumpylog (#2860)
- Fix: Ensure email date is made aware during action processing @stumpylog (#2837)
- Fix: disable bulk edit dialog buttons during operation @shamoon (#2819)
- fix database locked error @jonaswinkler (#2808)
- Fix: Disable suggestions for read-only docs @shamoon (#2813)
- Update processed mail migration @shamoon (#2804)
- Fix: Ensure scratch directory exists before using @stumpylog (#2775)
- Don't submit owner via API on document upload @jonaswinkler (#2777)
- Fix: only offer log files that exist @shamoon (#2739)
- Fix: permissions editing and initial view issues @shamoon (#2717)
- Fix: reset saved view ID on quickFilter @shamoon (#2703)
- Fix: bulk edit reset apply button state @shamoon (#2701)
- Fix: add missing i18n for mobile preview tab title @nathanaelhoun (#2692)

### Documentation

- Whitespace changes, making sure the example is correctly aligned @denilsonsa (#3089)
- Docs: Include additional information about barcodes @stumpylog (#2889)
- Fix formatting in Setup documentation page @igrybkov (#2880)
- [Documentation] Update docker-compose steps to support podman @white-gecko (#2855)
- docs: better language code help @tooomm (#2830)
- Feature: Add an option to disable matching @bdr99 (#2727)
- Docs: Remove outdated PAPERLESS_WORKER_RETRY @shamoon (#2694)
- Fix: add missing i18n for mobile preview tab title @nathanaelhoun (#2692)

### Maintenance

- Chore: Configure ruff as the primary linter for Python @stumpylog (#2988)
- Feature: Enable images to be released on Quay.io @stumpylog (#2972)
- Chore: Updates locked pipenv to latest version @stumpylog (#2943)
- Chore: Properly collapse section in releases @tooomm (#2838)
- Chore: Don't include changelog PR for different releases @tooomm (#2832)
- Chore: Speed up frontend CI testing @stumpylog (#2796)
- Bump leonsteinhaeuser/project-beta-automations from 2.0.1 to 2.1.0 @dependabot (#2789)

### Dependencies

15 changes
- Bump ng2-pdf-viewer from 9.1.4 to 9.1.5 in /src-ui [@dependabot](https://github.com/dependabot) ([#3109](https://github.com/paperless-ngx/paperless-ngx/pull/3109)) - Grouped bump angular packages from 15.2.6 to 15.2.7 in /src-ui [@dependabot](https://github.com/dependabot) ([#3108](https://github.com/paperless-ngx/paperless-ngx/pull/3108)) - Bump typescript from 4.8.4 to 4.9.5 in /src-ui [@dependabot](https://github.com/dependabot) ([#3071](https://github.com/paperless-ngx/paperless-ngx/pull/3071)) - Bulk Bump npm packages 04.23 [@dependabot](https://github.com/dependabot) ([#3068](https://github.com/paperless-ngx/paperless-ngx/pull/3068)) - Bump wait-on from 6.0.1 to 7.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#2990](https://github.com/paperless-ngx/paperless-ngx/pull/2990)) - Bulk bump angular packages to 15.2.5 in /src-ui [@dependabot](https://github.com/dependabot) ([#2991](https://github.com/paperless-ngx/paperless-ngx/pull/2991)) - Bump [@types/node from 18.11.18 to 18.15.11 in /src-ui @dependabot](https://github.com/types/node from 18.11.18 to 18.15.11 in /src-ui @dependabot) ([#2993](https://github.com/paperless-ngx/paperless-ngx/pull/2993)) - Bump [@ng-select/ng-select from 10.0.3 to 10.0.4 in /src-ui @dependabot](https://github.com/ng-select/ng-select from 10.0.3 to 10.0.4 in /src-ui @dependabot) ([#2992](https://github.com/paperless-ngx/paperless-ngx/pull/2992)) - Bump [@typescript-eslint/eslint-plugin from 5.50.0 to 5.57.0 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.50.0 to 5.57.0 in /src-ui @dependabot) ([#2989](https://github.com/paperless-ngx/paperless-ngx/pull/2989)) - Chore: Update cryptography to latest version [@stumpylog](https://github.com/stumpylog) ([#2891](https://github.com/paperless-ngx/paperless-ngx/pull/2891)) - Chore: Update to qpdf 11.3.0 in Docker image [@stumpylog](https://github.com/stumpylog) ([#2862](https://github.com/paperless-ngx/paperless-ngx/pull/2862)) - Bump leonsteinhaeuser/project-beta-automations from 2.0.1 to 2.1.0 [@dependabot](https://github.com/dependabot) ([#2789](https://github.com/paperless-ngx/paperless-ngx/pull/2789)) - Bump zone.js from 0.11.8 to 0.12.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#2793](https://github.com/paperless-ngx/paperless-ngx/pull/2793)) - Bump [@typescript-eslint/parser from 5.50.0 to 5.54.0 in /src-ui @dependabot](https://github.com/typescript-eslint/parser from 5.50.0 to 5.54.0 in /src-ui @dependabot) ([#2792](https://github.com/paperless-ngx/paperless-ngx/pull/2792)) - Bulk Bump angular packages to 15.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#2788](https://github.com/paperless-ngx/paperless-ngx/pull/2788))

### All App Changes

72 changes
- Feature: Catalan translation [@shamoon](https://github.com/shamoon) ([#3146](https://github.com/paperless-ngx/paperless-ngx/pull/3146)) - Fix: Allow setting additional Django settings for proxies [@stumpylog](https://github.com/stumpylog) ([#3135](https://github.com/paperless-ngx/paperless-ngx/pull/3135)) - Fix: Increase mail account password field length [@stumpylog](https://github.com/stumpylog) ([#3134](https://github.com/paperless-ngx/paperless-ngx/pull/3134)) - Fix: respect permissions for matching suggestions [@shamoon](https://github.com/shamoon) ([#3103](https://github.com/paperless-ngx/paperless-ngx/pull/3103)) - Bump ng2-pdf-viewer from 9.1.4 to 9.1.5 in /src-ui [@dependabot](https://github.com/dependabot) ([#3109](https://github.com/paperless-ngx/paperless-ngx/pull/3109)) - Grouped bump angular packages from 15.2.6 to 15.2.7 in /src-ui [@dependabot](https://github.com/dependabot) ([#3108](https://github.com/paperless-ngx/paperless-ngx/pull/3108)) - Fix: update PaperlessTask on hard failures [@shamoon](https://github.com/shamoon) ([#3062](https://github.com/paperless-ngx/paperless-ngx/pull/3062)) - Bump typescript from 4.8.4 to 4.9.5 in /src-ui [@dependabot](https://github.com/dependabot) ([#3071](https://github.com/paperless-ngx/paperless-ngx/pull/3071)) - Bulk Bump npm packages 04.23 [@dependabot](https://github.com/dependabot) ([#3068](https://github.com/paperless-ngx/paperless-ngx/pull/3068)) - Fix: Hide UI tour steps if user doesn't have permissions [@shamoon](https://github.com/shamoon) ([#3060](https://github.com/paperless-ngx/paperless-ngx/pull/3060)) - Fix: Hide Permissions tab if user cannot view users [@shamoon](https://github.com/shamoon) ([#3061](https://github.com/paperless-ngx/paperless-ngx/pull/3061)) - v1.14.0 delete document fixes [@shamoon](https://github.com/shamoon) ([#3020](https://github.com/paperless-ngx/paperless-ngx/pull/3020)) - Bump wait-on from 6.0.1 to 7.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#2990](https://github.com/paperless-ngx/paperless-ngx/pull/2990)) - Fix: inline plaintext docs to enforce styling [@shamoon](https://github.com/shamoon) ([#3013](https://github.com/paperless-ngx/paperless-ngx/pull/3013)) - Chore: Configure ruff as the primary linter for Python [@stumpylog](https://github.com/stumpylog) ([#2988](https://github.com/paperless-ngx/paperless-ngx/pull/2988)) - Bulk bump angular packages to 15.2.5 in /src-ui [@dependabot](https://github.com/dependabot) ([#2991](https://github.com/paperless-ngx/paperless-ngx/pull/2991)) - Bump [@types/node from 18.11.18 to 18.15.11 in /src-ui @dependabot](https://github.com/types/node from 18.11.18 to 18.15.11 in /src-ui @dependabot) ([#2993](https://github.com/paperless-ngx/paperless-ngx/pull/2993)) - Bump [@ng-select/ng-select from 10.0.3 to 10.0.4 in /src-ui @dependabot](https://github.com/ng-select/ng-select from 10.0.3 to 10.0.4 in /src-ui @dependabot) ([#2992](https://github.com/paperless-ngx/paperless-ngx/pull/2992)) - Bump [@typescript-eslint/eslint-plugin from 5.50.0 to 5.57.0 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.50.0 to 5.57.0 in /src-ui @dependabot) ([#2989](https://github.com/paperless-ngx/paperless-ngx/pull/2989)) - Feature: Stronger typing for file consumption [@stumpylog](https://github.com/stumpylog) ([#2744](https://github.com/paperless-ngx/paperless-ngx/pull/2744)) - Fix: Use exclude instead of difference for mariadb [@shamoon](https://github.com/shamoon) ([#2983](https://github.com/paperless-ngx/paperless-ngx/pull/2983)) - Fix: permissions display should not show users with inherited permissions \& unable to change owner [@shamoon](https://github.com/shamoon) ([#2818](https://github.com/paperless-ngx/paperless-ngx/pull/2818)) - Feature: double-click docs [@shamoon](https://github.com/shamoon) ([#2966](https://github.com/paperless-ngx/paperless-ngx/pull/2966)) - feature: Add support for zxing as barcode scanning lib [@margau](https://github.com/margau) ([#2907](https://github.com/paperless-ngx/paperless-ngx/pull/2907)) - Feature: test mail account [@shamoon](https://github.com/shamoon) ([#2949](https://github.com/paperless-ngx/paperless-ngx/pull/2949)) - Feature: Capture celery and kombu logs to a file [@stumpylog](https://github.com/stumpylog) ([#2954](https://github.com/paperless-ngx/paperless-ngx/pull/2954)) - Fix: Resolve Redis connection issues with ACLs [@stumpylog](https://github.com/stumpylog) ([#2939](https://github.com/paperless-ngx/paperless-ngx/pull/2939)) - Feature: Allow mail account to use access tokens [@stumpylog](https://github.com/stumpylog) ([#2930](https://github.com/paperless-ngx/paperless-ngx/pull/2930)) - Fix: Consumer polling could overwhelm database [@stumpylog](https://github.com/stumpylog) ([#2922](https://github.com/paperless-ngx/paperless-ngx/pull/2922)) - Feature: Improved statistics widget [@shamoon](https://github.com/shamoon) ([#2910](https://github.com/paperless-ngx/paperless-ngx/pull/2910)) - Enhancement: rename comments to notes and improve notes UI [@shamoon](https://github.com/shamoon) ([#2904](https://github.com/paperless-ngx/paperless-ngx/pull/2904)) - Allow psql client certificate authentication [@Ongy](https://github.com/Ongy) ([#2899](https://github.com/paperless-ngx/paperless-ngx/pull/2899)) - Enhancement: support filtering multiple correspondents, doctypes \& storage paths [@shamoon](https://github.com/shamoon) ([#2893](https://github.com/paperless-ngx/paperless-ngx/pull/2893)) - Fix: frontend handle private tags, doctypes, correspondents [@shamoon](https://github.com/shamoon) ([#2839](https://github.com/paperless-ngx/paperless-ngx/pull/2839)) - Fix: Chrome struggles with commas [@stumpylog](https://github.com/stumpylog) ([#2892](https://github.com/paperless-ngx/paperless-ngx/pull/2892)) - Feature: Change celery serializer to pickle [@stumpylog](https://github.com/stumpylog) ([#2861](https://github.com/paperless-ngx/paperless-ngx/pull/2861)) - Feature: Allow naming to include owner and original name [@stumpylog](https://github.com/stumpylog) ([#2873](https://github.com/paperless-ngx/paperless-ngx/pull/2873)) - Feature: Allows filtering email by the TO value(s) as well [@stumpylog](https://github.com/stumpylog) ([#2871](https://github.com/paperless-ngx/paperless-ngx/pull/2871)) - Fix: logout on change password via frontend [@shamoon](https://github.com/shamoon) ([#2863](https://github.com/paperless-ngx/paperless-ngx/pull/2863)) - Fix: give superuser full doc perms [@shamoon](https://github.com/shamoon) ([#2820](https://github.com/paperless-ngx/paperless-ngx/pull/2820)) - Fix: Append Gmail labels instead of replacing [@stumpylog](https://github.com/stumpylog) ([#2860](https://github.com/paperless-ngx/paperless-ngx/pull/2860)) - Feature: owner-aware unique model name constraint [@shamoon](https://github.com/shamoon) ([#2827](https://github.com/paperless-ngx/paperless-ngx/pull/2827)) - Chore: Create list parsing utility for settings [@stumpylog](https://github.com/stumpylog) ([#2816](https://github.com/paperless-ngx/paperless-ngx/pull/2816)) - Fix: Ensure email date is made aware during action processing [@stumpylog](https://github.com/stumpylog) ([#2837](https://github.com/paperless-ngx/paperless-ngx/pull/2837)) - Chore: Convert more code to pathlib [@stumpylog](https://github.com/stumpylog) ([#2817](https://github.com/paperless-ngx/paperless-ngx/pull/2817)) - Fix: disable bulk edit dialog buttons during operation [@shamoon](https://github.com/shamoon) ([#2819](https://github.com/paperless-ngx/paperless-ngx/pull/2819)) - fix database locked error [@jonaswinkler](https://github.com/jonaswinkler) ([#2808](https://github.com/paperless-ngx/paperless-ngx/pull/2808)) - Fix: Disable suggestions for read-only docs [@shamoon](https://github.com/shamoon) ([#2813](https://github.com/paperless-ngx/paperless-ngx/pull/2813)) - update django.po messages [@jonaswinkler](https://github.com/jonaswinkler) ([#2806](https://github.com/paperless-ngx/paperless-ngx/pull/2806)) - Update processed mail migration [@shamoon](https://github.com/shamoon) ([#2804](https://github.com/paperless-ngx/paperless-ngx/pull/2804)) - Feature/2396 better mail actions [@jonaswinkler](https://github.com/jonaswinkler) ([#2718](https://github.com/paperless-ngx/paperless-ngx/pull/2718)) - Bump zone.js from 0.11.8 to 0.12.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#2793](https://github.com/paperless-ngx/paperless-ngx/pull/2793)) - Bump [@typescript-eslint/parser from 5.50.0 to 5.54.0 in /src-ui @dependabot](https://github.com/typescript-eslint/parser from 5.50.0 to 5.54.0 in /src-ui @dependabot) ([#2792](https://github.com/paperless-ngx/paperless-ngx/pull/2792)) - Bulk Bump angular packages to 15.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#2788](https://github.com/paperless-ngx/paperless-ngx/pull/2788)) - Fix: Ensure scratch directory exists before using [@stumpylog](https://github.com/stumpylog) ([#2775](https://github.com/paperless-ngx/paperless-ngx/pull/2775)) - Don't submit owner via API on document upload [@jonaswinkler](https://github.com/jonaswinkler) ([#2777](https://github.com/paperless-ngx/paperless-ngx/pull/2777)) - Feature: Reduce classifier memory usage somewhat during training [@stumpylog](https://github.com/stumpylog) ([#2733](https://github.com/paperless-ngx/paperless-ngx/pull/2733)) - Chore: Setup for mypy typing checks [@stumpylog](https://github.com/stumpylog) ([#2742](https://github.com/paperless-ngx/paperless-ngx/pull/2742)) - Feature: Add PAPERLESS_OCR_SKIP_ARCHIVE_FILE config setting [@bdr99](https://github.com/bdr99) ([#2743](https://github.com/paperless-ngx/paperless-ngx/pull/2743)) - Fix: only offer log files that exist [@shamoon](https://github.com/shamoon) ([#2739](https://github.com/paperless-ngx/paperless-ngx/pull/2739)) - Feature: dynamic document counts in dropdowns [@shamoon](https://github.com/shamoon) ([#2704](https://github.com/paperless-ngx/paperless-ngx/pull/2704)) - Fix: permissions editing and initial view issues [@shamoon](https://github.com/shamoon) ([#2717](https://github.com/paperless-ngx/paperless-ngx/pull/2717)) - Fix: reset saved view ID on quickFilter [@shamoon](https://github.com/shamoon) ([#2703](https://github.com/paperless-ngx/paperless-ngx/pull/2703)) - Feature: Add an option to disable matching [@bdr99](https://github.com/bdr99) ([#2727](https://github.com/paperless-ngx/paperless-ngx/pull/2727)) - Chore: Improve clarity of some test asserting [@stumpylog](https://github.com/stumpylog) ([#2714](https://github.com/paperless-ngx/paperless-ngx/pull/2714)) - Allow setting the ASN on document upload [@stumpylog](https://github.com/stumpylog) ([#2713](https://github.com/paperless-ngx/paperless-ngx/pull/2713)) - Fix: bulk edit reset apply button state [@shamoon](https://github.com/shamoon) ([#2701](https://github.com/paperless-ngx/paperless-ngx/pull/2701)) - Feature: Log failed login attempts [@shamoon](https://github.com/shamoon) ([#2359](https://github.com/paperless-ngx/paperless-ngx/pull/2359)) - Feature: Rename documents when storage path format changes [@stumpylog](https://github.com/stumpylog) ([#2696](https://github.com/paperless-ngx/paperless-ngx/pull/2696)) - Feature: update error message colors \& show on document failures [@shamoon](https://github.com/shamoon) ([#2689](https://github.com/paperless-ngx/paperless-ngx/pull/2689)) - Feature: multi-user permissions [@shamoon](https://github.com/shamoon) ([#2147](https://github.com/paperless-ngx/paperless-ngx/pull/2147)) - Fix: add missing i18n for mobile preview tab title [@nathanaelhoun](https://github.com/nathanaelhoun) ([#2692](https://github.com/paperless-ngx/paperless-ngx/pull/2692))

## paperless-ngx 1.13.0

### Features

- Feature: allow disable warn on close saved view with changes @shamoon (#2681)
- Feature: Add option to enable response compression @stumpylog (#2621)
- Feature: split documents on ASN barcode @muued (#2554)

### Bug Fixes

- Fix: Ignore path filtering didn't handle sub directories @stumpylog (#2674)
- Bugfix: Generation of secret key hangs during install script @stumpylog (#2657)
- Fix: Remove files produced by barcode splitting when completed @stumpylog (#2648)
- Fix: add missing storage path placeholders @shamoon (#2651)
- Fix long dropdown contents break document detail column view @shamoon (#2638)
- Fix: tags dropdown should stay closed when removing @shamoon (#2625)
- Bugfix: Configure scheduled tasks to expire after some time @stumpylog (#2614)
- Bugfix: Limit management list pagination maxSize to 5 @Kaaybi (#2618)
- Fix: Don't crash on bad ASNs during indexing @stumpylog (#2586)
- Fix: Prevent mktime OverflowError except in even more rare caes @stumpylog (#2574)
- Bugfix: Whoosh relative date queries weren't handling timezones @stumpylog (#2566)
- Fix importing files with non-ascii names @Kexogg (#2555)

### Documentation

- Chore: update recommended Gotenberg to 7.8, docs note possible incompatibility @shamoon (#2608)
- [Documentation] Add v1.12.2 changelog @github-actions (#2553)

### Maintenance

- Chore: Faster Docker image cleanup @stumpylog (#2687)
- Chore: Remove duplicated folder @stumpylog (#2561)
- Chore: Switch test coverage to Codecov @stumpylog (#2582)
- Bump docker/build-push-action from 3 to 4 @dependabot (#2576)

- Chore: Run tests which require convert in the CI @stumpylog (#2570)

- Feature: split documents on ASN barcode @muued (#2554)

- Bugfix: Whoosh relative date queries weren't handling timezones @stumpylog (#2566)
- Fix importing files with non-ascii names @Kexogg (#2555)

## paperless-ngx 1.12.2

Note: Version 1.12.x introduced searching of comments which will work for comments added after the upgrade but a reindex of the search index is required in order to be able to search older comments. The Docker image will automatically perform this reindex, bare metal installations will have to perform this manually, see the docs.

### Bug Fixes

- Bugfix: Allow pre-consume scripts to modify incoming file @stumpylog (#2547)
- Bugfix: Return to page based barcode scanning @stumpylog (#2544)
- Fix: Try to prevent title debounce overwriting @shamoon (#2543)
- Fix comment search highlight + multi-word search @shamoon (#2542)
- Bugfix: Request PDF/A format from Gotenberg @stumpylog (#2530)
- Fix: Trigger reindex for pre-existing comments @shamoon (#2519)

### Documentation

- Bugfix: Allow pre-consume scripts to modify incoming file @stumpylog (#2547)
- Fix: Trigger reindex for pre-existing comments @shamoon (#2519)
- Minor updates to development documentation @clemensrieder (#2474)
- [Documentation] Add v1.12.1 changelog @github-actions (#2515)

### Maintenance

- Chore: Fix tag cleaner to work with attestations @stumpylog (#2532)
- Chore: Make installers statically versioned @stumpylog (#2517)

### All App Changes

- Bugfix: Allow pre-consume scripts to modify incoming file @stumpylog (#2547)
- Bugfix: Return to page based barcode scanning @stumpylog (#2544)
- Fix: Try to prevent title debounce overwriting @shamoon (#2543)
- Fix comment search highlight + multi-word search @shamoon (#2542)
- Bugfix: Request PDF/A format from Gotenberg @stumpylog (#2530)

## paperless-ngx 1.12.1

### Bug Fixes

- Fix: comments not showing in search until after manual reindex in v1.12 @shamoon (#2513)
- Fix: date range search broken in 1.12 @shamoon (#2509)

### Documentation

- [Documentation] Add v1.12.0 changelog @github-actions (#2507)

### Maintenance

- Moves back to the main release-drafter now that it does what we wanted @stumpylog (#2503)

### All App Changes

- Fix: comments not showing in search until after manual reindex in v1.12 @shamoon (#2513)
- Fix: date range search broken in 1.12 @shamoon (#2509)

## paperless-ngx 1.12.0

### Features

- New document_exporter options @mhelleboid (#2448)
- Read ASN from barcode on page @peterkappelt (#2437)
- Add AppleMail color tag support @clemensrieder (#2407)
- Feature: Retain original filename on upload @stumpylog (#2404)
- Feature: Control scheduled tasks via cron expressions @stumpylog (#2403)
- Simplify json parsing in build scripts @tribut (#2370)
- Feature: include comments in advanced search @shamoon (#2351)

### Bug Fixes

- Fix: limit asn integer size @shamoon (#2498)
- Bugfix: Rescales images for better barcode locating @stumpylog (#2468)
- Fix: fix downgrade migration @shamoon (#2494)
- Fix: Allow setting mailrule order from frontend @shamoon (#2459)
- Fix: tag color ordering @shamoon (#2456)
- Fix: Better Handle arbitrary ISO 8601 strings after celery serializing @shamoon (#2441)
- Use correct canonical path for nltk_data @amo13 (#2429)
- Fix: Include optional socket file in release @stumpylog (#2409)
- Fix: display rtl content in correct direction @shamoon (#2302)
- Fixed endpoint count in Docs The REST API @PascalSenn (#2386)
- Fix subpath for websockets @tribut (#2371)
- Fix: Make missing environment from file files informational only @stumpylog (#2368)
- Bugfix: Backend tests weren't using correct Python version @stumpylog (#2363)
- Fix: preview content remains hidden on mobile @shamoon (#2346)
- Bugfix: Removal of alpha channel truncates multipage TIFFs @stumpylog (#2335)
- Documentation: update build instructions to remove deprecated @shamoon (#2334)

### Documentation

- Docs: Fix typo - docker-compose.yml file name in setup doc @muli (#2477)
- document existence of document_thumbnails @frrad (#2470)
- Add optional sudo command to bare metal docs @shamoon (#2464)
- Fix link @edenhaus (#2458)
- Documentation: Fix comment re bare metal runserver command @shamoon (#2420)
- Fix formatting of config variable in docs @peterkappelt (#2445)
- Update docs nginx reverse proxy example @Sprinterfreak (#2443)
- [Documentation] Add note re for dev server @shamoon (#2387)
- Fixed endpoint count in Docs The REST API @PascalSenn (#2386)
- [ Docs] Update bare metal setup instructions @natrius (#2281)
- [Docs] Add Paperless Mobile app to docs @astubenbord (#2378)
- Tiny spelling change @veverkap (#2369)
- Documentation: update build instructions to remove deprecated @shamoon (#2334)
- [Documentation] Add note that PAPERLESS_URL can't contain a path @shamoon (#2319)
- [Documentation] Add v1.11.3 changelog @github-actions (#2311)

### Maintenance

- Fix: Include optional socket file in release @stumpylog (#2409)
- Chore: remove helm chart code @shamoon (#2388)
- Simplify json parsing in build scripts @tribut (#2370)
- Bugfix: Backend tests weren't using correct Python version @stumpylog (#2363)
- Bump tj-actions/changed-files from 34 to 35 @dependabot (#2303)

### Dependencies

4 changes
- Chore: Backend library updates [@stumpylog](https://github.com/stumpylog) ([#2401](https://github.com/paperless-ngx/paperless-ngx/pull/2401)) - Bump tj-actions/changed-files from 34 to 35 [@dependabot](https://github.com/dependabot) ([#2303](https://github.com/paperless-ngx/paperless-ngx/pull/2303)) - Bump [@typescript-eslint/parser from 5.43.0 to 5.47.1 in /src-ui @dependabot](https://github.com/typescript-eslint/parser from 5.43.0 to 5.47.1 in /src-ui @dependabot) ([#2306](https://github.com/paperless-ngx/paperless-ngx/pull/2306)) - Bump [@typescript-eslint/eslint-plugin from 5.43.0 to 5.47.1 in /src-ui @dependabot](https://github.com/typescript-eslint/eslint-plugin from 5.43.0 to 5.47.1 in /src-ui @dependabot) ([#2308](https://github.com/paperless-ngx/paperless-ngx/pull/2308))

### All App Changes

- New document_exporter options @mhelleboid (#2448)
- Fix: limit asn integer size @shamoon (#2498)
- Fix: fix downgrade migration @shamoon (#2494)
- Read ASN from barcode on page @peterkappelt (#2437)
- Fix: Allow setting mailrule order from frontend @shamoon (#2459)
- Chore: Update to Angular 15 \& associated frontend deps @shamoon (#2411)
- Fix: tag color ordering @shamoon (#2456)
- Fix: Better Handle arbitrary ISO 8601 strings after celery serializing @shamoon (#2441)
- Use correct canonical path for nltk_data @amo13 (#2429)
- Add AppleMail color tag support @clemensrieder (#2407)
- Chore: Convert document exporter to use pathlib @stumpylog (#2416)
- Feature: Retain original filename on upload @stumpylog (#2404)
- Feature: Control scheduled tasks via cron expressions @stumpylog (#2403)
- Fix: display rtl content in correct direction @shamoon (#2302)
- Fix subpath for websockets @tribut (#2371)
- Bugfix: Backend tests weren't using correct Python version @stumpylog (#2363)
- Feature: include comments in advanced search @shamoon (#2351)
- Chore: More frontend tests @shamoon (#2352)
- Chore: Fixing up some minor annoyances @stumpylog (#2348)
- Bugfix: Removal of alpha channel truncates multipage TIFFs @stumpylog (#2335)
- Documentation: update build instructions to remove deprecated @shamoon (#2334)
- Add Arabic language to frontend @KhaledEmad7 (#2313)
- Bump @typescript-eslint/parser from 5.43.0 to 5.47.1 in /src-ui @dependabot (#2306)
- Bump @typescript-eslint/eslint-plugin from 5.43.0 to 5.47.1 in /src-ui @dependabot (#2308)

## paperless-ngx 1.11.3

### Breaking Changes

Note: PR #2279 could represent a breaking change to the API which may affect third party applications that were only checking the `post_document` endpoint for e.g. result = 'OK' as opposed to e.g. HTTP status = 200

- Bugfix: Return created task ID when posting document to API @stumpylog (#2279)

### Bug Fixes

- Bugfix: Fix no content when processing some RTL files @stumpylog (#2295)
- Bugfix: Handle email dates maybe being naive @stumpylog (#2293)
- Fix: live filterable dropdowns broken in 1.11.x @shamoon (#2292)
- Bugfix: Reading environment from files didn't work for management commands @stumpylog (#2261)
- Bugfix: Return created task ID when posting document to API @stumpylog (#2279)

### All App Changes

- Bugfix: Fix no content when processing some RTL files @stumpylog (#2295)
- Bugfix: Handle email dates maybe being naive @stumpylog (#2293)
- Fix: live filterable dropdowns broken in 1.11.x @shamoon (#2292)
- Bugfix: Return created task ID when posting document to API @stumpylog (#2279)

## paperless-ngx 1.11.2

Versions 1.11.1 and 1.11.2 contain bug fixes from v1.11.0 that prevented use of the new email consumption feature

### Bug Fixes

- Fix frontend mailrule missing consumption scope parameter @shamoon (#2280)
- Fix: missing frontend email attachment options @shamoon (#2272)
- Fix: edit dialog creation in v1.11.0 @shamoon (#2273)

### All App Changes

- Fix frontend mailrule missing consumption scope parameter @shamoon (#2280)
- Fix: missing frontend email attachment options @shamoon (#2272)
- Fix: edit dialog creation in v1.11.0 @shamoon (#2273)

## paperless-ngx 1.11.0

### Notable Changes

- Feature: frontend paperless mail @shamoon (#2000)
- Feature: Ability to consume mails and eml files @p-h-a-i-l (#848)

### Features

- Chore: Downgrade hiredis to 2.0.0 @stumpylog (#2262)
- Add ability to provide the configuration file path using an env variable @hashworks (#2241)
- Feature: Adds option to allow a user to export directly to a zipfile @stumpylog (#2004)
- Feature: Adds PaperlessTask admin page interface @stumpylog (#2184)
- Feature: speed up frontend by truncating content @shamoon (#2028)
- Feature: Allow bulk download API to follow file name formatting @stumpylog (#2003)
- Feature: Bake NLTK into Docker image @stumpylog (#2129)
- Feature: frontend paperless mail @shamoon (#2000)
- Feature: Ability to consume mails and eml files @p-h-a-i-l (#848)

### Bug Fixes

- Bugfix: Handle RTL languages better @stumpylog (#1665)
- Fixed typo in docs @mendelk (#2256)
- Fix: support in advanced search, fix tags filter badge count for excluded @shamoon (#2205)
- Bugfix: Don't run system checks on migrate @stumpylog (#2183)
- Bugfix: Decoding task signals could fail on datetime type @stumpylog (#2058)

### Documentation

- Fixed typo in docs @mendelk (#2256)
- Docs: More fixes and improvements @tooomm (#2203)
- Docs: Fix leftover issues from conversion @tooomm (#2172)
- Docs: Fix broken internal links @tooomm (#2165)
- Update setup.md @Weltraumschaf (#2157)
- Chore: Cleanup of new documentation @stumpylog (#2137)
- [Documentation] Add v1.10.2 changelog @github-actions (#2114)

### Maintenance

- Chore: Adds notable label for release drafter @stumpylog (#2200)
- Chore: Prevent forks from having failing CI runs by default @tooomm (#2166)
- Chore: migrate to eslint @shamoon (#2199)
- Feature: Adds PaperlessTask admin page interface @stumpylog (#2184)
- Chore: Changes qpdf to be cross compiled for large speed up @stumpylog (#2181)
- Chore: Decrease time to build pikepdf @stumpylog (#2178)
- Chore: Minor CI cleanups @stumpylog (#2175)

### All App Changes

- Add ability to provide the configuration file path using an env variable @hashworks (#2241)
- Fix: support in advanced search, fix tags filter badge count for excluded @shamoon (#2205)
- Chore: migrate to eslint @shamoon (#2199)
- Feature: Adds option to allow a user to export directly to a zipfile @stumpylog (#2004)
- Feature: Adds PaperlessTask admin page interface @stumpylog (#2184)
- Bugfix: Decoding task signals could fail on datetime type @stumpylog (#2058)
- Feature: speed up frontend by truncating content @shamoon (#2028)
- Feature: Allow bulk download API to follow file name formatting @stumpylog (#2003)
- Feature: Bake NLTK into Docker image @stumpylog (#2129)
- Chore: Apply live testing backoff logic to new mail tests @stumpylog (#2134)
- Feature: frontend paperless mail @shamoon (#2000)
- Feature: Ability to consume mails and eml files @p-h-a-i-l (#848)

## paperless-ngx 1.10.2

### Features

- Take ownership of k8s-at-home Helm chart @alexander-bauer (#1947)

### Bug Fixes

- Bugfix: Language code checks around two part languages @stumpylog (#2112)
- Bugfix: Redis socket compatibility didn't handle URLs with ports @stumpylog (#2109)
- Bugfix: Incompatible URL schemes for socket based Redis @stumpylog (#2092)
- Fix doc links in contributing @tooomm (#2102)

### Documentation

- Docs: Some more small MkDocs updates @tooomm (#2106)
- Chore: Cleans up documentation links @stumpylog (#2104)
- Feature: Move docs to material-mkdocs @shamoon (#2067)
- Chore: Add v1.10.1 changelong @shamoon (#2082)

### Maintenance

- Take ownership of k8s-at-home Helm chart @alexander-bauer (#1947)

### All App Changes

- Bugfix: Language code checks around two part languages @stumpylog (#2112)
- Bugfix: Redis socket compatibility didn't handle URLs with ports @stumpylog (#2109)
- Bugfix: Incompatible URL schemes for socket based Redis @stumpylog (#2092)

## paperless-ngx 1.10.1

### Features

- Feature: Allows documents in WebP format @stumpylog (#1984)

### Bug Fixes

- Fix: frontend tasks display in 1.10.0 @shamoon (#2073)
- Bugfix: Custom startup commands weren't run as root @stumpylog (#2069)
- Bugfix: Add libatomic for armv7 compatibility @stumpylog (#2066)
- Bugfix: Don't silence an exception when trying to handle file naming @stumpylog (#2062)
- Bugfix: Some tesseract languages aren't detected as installed. @stumpylog (#2057)

### Maintenance

- Chore: Use a maintained upload-release-asset @stumpylog (#2055)

### Dependencies

5 changes
- Bump tslib from 2.4.0 to 2.4.1 in /src-ui @dependabot ([#2076](https://github.com/paperless-ngx/paperless-ngx/pull/2076)) - Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui @dependabot ([#2079](https://github.com/paperless-ngx/paperless-ngx/pull/2079)) - Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui @dependabot ([#2078](https://github.com/paperless-ngx/paperless-ngx/pull/2078)) - Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui @dependabot ([#2080](https://github.com/paperless-ngx/paperless-ngx/pull/2080)) - Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui @dependabot ([#2077](https://github.com/paperless-ngx/paperless-ngx/pull/2077))

### All App Changes

- Bump tslib from 2.4.0 to 2.4.1 in /src-ui @dependabot (#2076)
- Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui @dependabot (#2079)
- Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui @dependabot (#2078)
- Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui @dependabot (#2080)
- Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui @dependabot (#2077)
- Fix: frontend tasks display in 1.10.0 @shamoon (#2073)
- Bugfix: Don't silence an exception when trying to handle file naming @stumpylog (#2062)
- Bugfix: Some tesseract languages aren't detected as installed. @stumpylog (#2057)

## paperless-ngx 1.10.0

### Features

- Feature: Capture stdout \& stderr of the pre/post consume scripts @stumpylog (#1967)
- Feature: Allow running custom container initialization scripts @stumpylog (#1838)
- Feature: Add more file name formatting options @stumpylog (#1906)
- Feature: 1.9.2 UI tweaks @shamoon (#1886)
- Feature: Optional celery monitoring with Flower @stumpylog (#1810)
- Feature: Save pending tasks for frontend @stumpylog (#1816)
- Feature: Improved processing for automatic matching @stumpylog (#1609)
- Feature: Transition to celery for background tasks @stumpylog (#1648)
- Feature: UI Welcome Tour @shamoon (#1644)
- Feature: slim sidebar @shamoon (#1641)
- change default matching algo to auto and move to constant @NiFNi (#1754)
- Feature: Enable end to end Tika testing in CI @stumpylog (#1757)
- Feature: frontend update checking settings @shamoon (#1692)
- Feature: Upgrade to qpdf 11, pikepdf 6 \& ocrmypdf 14 @stumpylog (#1642)

### Bug Fixes

- Bugfix: Fix created_date being a string @stumpylog (#2023)
- Bugfix: Fixes an issue with mixed text and images when redoing OCR @stumpylog (#2017)
- Bugfix: Always re-try barcodes with pdf2image @stumpylog (#1953)
- Fix: using `CONSUMER_SUBDIRS_AS_TAGS` causes failure with Celery in `dev` @shamoon (#1942)
- Fix mail consumption broken in `dev` after move to celery @shamoon (#1934)
- Bugfix: Prevent file handling from running with stale data @stumpylog (#1905)
- Chore: Reduce nuisance CI test failures @stumpylog (#1922)
- Bugfix: Unintentional deletion of feature tagged Docker images @stumpylog (#1896)
- Fix: independent control of saved views @shamoon (#1868)
- Fix: frontend relative date searches @shamoon (#1865)
- Chore: Fixes pipenv issues @stumpylog (#1873)
- Bugfix: Handle password protected PDFs during barcode detection @stumpylog (#1858)
- Fix: Allows configuring barcodes with pdf2image instead of pikepdf @stumpylog (#1857)
- Bugfix: Reverts the change around skip_noarchive @stumpylog (#1829)
- Fix: missing loadViewConfig breaks loading saved view @shamoon (#1792)
- Bugfix: Fallback to pdf2image if pikepdf fails @stumpylog (#1745)
- Fix: creating new storage path on document edit fails to update menu @shamoon (#1777)
- Bugfix: Files containing barcodes uploaded via web are not consumed after splitting @stumpylog (#1762)
- Bugfix: Fix email labeling for non-Gmail servers @stumpylog (#1755)
- Fix: allow preview for .csv files @shamoon (#1744)
- Bugfix: csv recognition by consumer @bin101 (#1726)
- Bugfix: Include document title when a duplicate is detected @stumpylog (#1696)
- Bugfix: Set MySql charset @stumpylog (#1687)
- Mariadb compose files should use `PAPERLESS_DBPASS` @shamoon (#1683)

### Documentation

- Documentation: Update MariaDB docs to note some potential issues @stumpylog (#2016)
- Documentation: Add note re MS exchange servers @shamoon (#1780)
- Chore: Updates Gotenberg versions @stumpylog (#1768)
- Documentation: Tweak LinuxServer @stumpylog (#1761)
- Documentation: Adds troubleshooting note about Kubernetes and ports @stumpylog (#1731)
- Documentation: LinuxServer.io Migration @stumpylog (#1733)
- [Documentation] Add v1.9.2 changelog @github-actions (#1671)

### Maintenance

- Bump tj-actions/changed-files from 32 to 34 @dependabot (#1915)
- Chore: Fix `dev` trying to build Pillow or lxml @stumpylog (#1909)
- Chore: Fixes pipenv issues @stumpylog (#1873)
- Chore: Simplified registry cleanup @stumpylog (#1812)
- Chore: Fixing deprecated workflow commands @stumpylog (#1786)
- Chore: Python library update + test fixes @stumpylog (#1773)
- Chore: Updates Gotenberg versions @stumpylog (#1768)
- Bump leonsteinhaeuser/project-beta-automations from 1.3.0 to 2.0.1 @dependabot (#1703)
- Bump tj-actions/changed-files from 29.0.2 to 31.0.2 @dependabot (#1702)
- Bump actions/checkout from 2 to 3 @dependabot (#1704)
- Bump actions/setup-python from 3 to 4 @dependabot (#1705)

### Dependencies

31 changes
- Bugfix: Downgrade cryptography for armv7 compatibility [@stumpylog](https://github.com/stumpylog) ([#1954](https://github.com/paperless-ngx/paperless-ngx/pull/1954)) - Chore: Bulk library updates + loosen restrictions [@stumpylog](https://github.com/stumpylog) ([#1949](https://github.com/paperless-ngx/paperless-ngx/pull/1949)) - Bump tj-actions/changed-files from 32 to 34 [@dependabot](https://github.com/dependabot) ([#1915](https://github.com/paperless-ngx/paperless-ngx/pull/1915)) - Bump scikit-learn from 1.1.2 to 1.1.3 [@dependabot](https://github.com/dependabot) ([#1903](https://github.com/paperless-ngx/paperless-ngx/pull/1903)) - Bump angular packages as bundle [@dependabot](https://github.com/dependabot) ([#1910](https://github.com/paperless-ngx/paperless-ngx/pull/1910)) - Bump ngx-ui-tour-ng-bootstrap from 11.0.0 to 11.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1911](https://github.com/paperless-ngx/paperless-ngx/pull/1911)) - Bump jest-environment-jsdom from 29.1.2 to 29.2.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1914](https://github.com/paperless-ngx/paperless-ngx/pull/1914)) - Bump pillow from 9.2.0 to 9.3.0 [@dependabot](https://github.com/dependabot) ([#1904](https://github.com/paperless-ngx/paperless-ngx/pull/1904)) - Bump pytest from 7.1.3 to 7.2.0 [@dependabot](https://github.com/dependabot) ([#1902](https://github.com/paperless-ngx/paperless-ngx/pull/1902)) - Bump tox from 3.26.0 to 3.27.0 [@dependabot](https://github.com/dependabot) ([#1901](https://github.com/paperless-ngx/paperless-ngx/pull/1901)) - Bump zipp from 3.9.0 to 3.10.0 [@dependabot](https://github.com/dependabot) ([#1860](https://github.com/paperless-ngx/paperless-ngx/pull/1860)) - Bump pytest-env from 0.6.2 to 0.8.1 [@dependabot](https://github.com/dependabot) ([#1859](https://github.com/paperless-ngx/paperless-ngx/pull/1859)) - Bump sphinx from 5.2.3 to 5.3.0 [@dependabot](https://github.com/dependabot) ([#1817](https://github.com/paperless-ngx/paperless-ngx/pull/1817)) - Chore: downgrade channels-redis [@stumpylog](https://github.com/stumpylog) ([#1802](https://github.com/paperless-ngx/paperless-ngx/pull/1802)) - Chore: Update to qpdf 11.1.1 and update backend libraries [@stumpylog](https://github.com/stumpylog) ([#1749](https://github.com/paperless-ngx/paperless-ngx/pull/1749)) - Bump myst-parser from 0.18.0 to 0.18.1 [@dependabot](https://github.com/dependabot) ([#1738](https://github.com/paperless-ngx/paperless-ngx/pull/1738)) - Bump leonsteinhaeuser/project-beta-automations from 1.3.0 to 2.0.1 [@dependabot](https://github.com/dependabot) ([#1703](https://github.com/paperless-ngx/paperless-ngx/pull/1703)) - Bump tj-actions/changed-files from 29.0.2 to 31.0.2 [@dependabot](https://github.com/dependabot) ([#1702](https://github.com/paperless-ngx/paperless-ngx/pull/1702)) - Bump actions/checkout from 2 to 3 [@dependabot](https://github.com/dependabot) ([#1704](https://github.com/paperless-ngx/paperless-ngx/pull/1704)) - Bump actions/setup-python from 3 to 4 [@dependabot](https://github.com/dependabot) ([#1705](https://github.com/paperless-ngx/paperless-ngx/pull/1705)) - Bump rxjs from 7.5.6 to 7.5.7 in /src-ui [@dependabot](https://github.com/dependabot) ([#1720](https://github.com/paperless-ngx/paperless-ngx/pull/1720)) - Bump uuid from 8.3.2 to 9.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1716](https://github.com/paperless-ngx/paperless-ngx/pull/1716)) - Bump ng2-pdf-viewer from 9.1.0 to 9.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1717](https://github.com/paperless-ngx/paperless-ngx/pull/1717)) - Bump ngx-color from 8.0.2 to 8.0.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1715](https://github.com/paperless-ngx/paperless-ngx/pull/1715)) - Bump concurrently from 7.3.0 to 7.4.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1719](https://github.com/paperless-ngx/paperless-ngx/pull/1719)) - Bump [@types/node from 18.7.14 to 18.7.23 in /src-ui @dependabot](https://github.com/types/node from 18.7.14 to 18.7.23 in /src-ui @dependabot) ([#1718](https://github.com/paperless-ngx/paperless-ngx/pull/1718)) - Bump jest-environment-jsdom from 29.0.1 to 29.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1714](https://github.com/paperless-ngx/paperless-ngx/pull/1714)) - Bump [@angular/cli @angular/core @dependabot](https://github.com/angular/cli @angular/core @dependabot) ([#1708](https://github.com/paperless-ngx/paperless-ngx/pull/1708)) - Bump cypress from 10.7.0 to 10.9.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1707](https://github.com/paperless-ngx/paperless-ngx/pull/1707)) - Bump bootstrap from 5.2.0 to 5.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1710](https://github.com/paperless-ngx/paperless-ngx/pull/1710)) - Bump typescript from 4.7.4 to 4.8.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1706](https://github.com/paperless-ngx/paperless-ngx/pull/1706))

### All App Changes

- Add info that re-do OCR doesn't automatically refresh content @shamoon (#2025)
- Bugfix: Fix created_date being a string @stumpylog (#2023)
- Bugfix: Fixes an issue with mixed text and images when redoing OCR @stumpylog (#2017)
- Bugfix: Don't allow exceptions during date parsing to fail consume @stumpylog (#1998)
- Feature: Capture stdout \& stderr of the pre/post consume scripts @stumpylog (#1967)
- Bugfix: Always re-try barcodes with pdf2image @stumpylog (#1953)
- Fix: using `CONSUMER_SUBDIRS_AS_TAGS` causes failure with Celery in `dev` @shamoon (#1942)
- Fix mail consumption broken in `dev` after move to celery @shamoon (#1934)
- Bugfix: Prevent file handling from running with stale data @stumpylog (#1905)
- Chore: Reduce nuisance CI test failures @stumpylog (#1922)
- Bump scikit-learn from 1.1.2 to 1.1.3 @dependabot (#1903)
- Bump angular packages as bundle @dependabot (#1910)
- Bump ngx-ui-tour-ng-bootstrap from 11.0.0 to 11.1.0 in /src-ui @dependabot (#1911)
- Bump jest-environment-jsdom from 29.1.2 to 29.2.2 in /src-ui @dependabot (#1914)
- Feature: Add more file name formatting options @stumpylog (#1906)
- Bump pillow from 9.2.0 to 9.3.0 @dependabot (#1904)
- Bump pytest from 7.1.3 to 7.2.0 @dependabot (#1902)
- Bump tox from 3.26.0 to 3.27.0 @dependabot (#1901)
- directly use rapidfuzz @maxbachmann (#1899)
- Feature: 1.9.2 UI tweaks @shamoon (#1886)
- Bump zipp from 3.9.0 to 3.10.0 @dependabot (#1860)
- Fix: independent control of saved views @shamoon (#1868)
- Fix: frontend relative date searches @shamoon (#1865)
- Django error W003 - MariaDB may not allow unique CharFields to have a max_length > 255. @Sblop (#1881)
- Bump pytest-env from 0.6.2 to 0.8.1 @dependabot (#1859)
- Fix: Allows configuring barcodes with pdf2image instead of pikepdf @stumpylog (#1857)
- Feature: Save pending tasks for frontend @stumpylog (#1816)
- Bugfix: Reverts the change around skip_noarchive @stumpylog (#1829)
- Bump sphinx from 5.2.3 to 5.3.0 @dependabot (#1817)
- Fix: missing loadViewConfig breaks loading saved view @shamoon (#1792)
- Bugfix: Fallback to pdf2image if pikepdf fails @stumpylog (#1745)
- Fix: creating new storage path on document edit fails to update menu @shamoon (#1777)
- Chore: Python library update + test fixes @stumpylog (#1773)
- Feature: Improved processing for automatic matching @stumpylog (#1609)
- Feature: Transition to celery for background tasks @stumpylog (#1648)
- Feature: UI Welcome Tour @shamoon (#1644)
- Feature: slim sidebar @shamoon (#1641)
- Bugfix: Files containing barcodes uploaded via web are not consumed after splitting @stumpylog (#1762)
- change default matching algo to auto and move to constant @NiFNi (#1754)
- Bugfix: Fix email labeling for non-Gmail servers @stumpylog (#1755)
- Feature: frontend update checking settings @shamoon (#1692)
- Fix: allow preview for .csv files @shamoon (#1744)
- Bump myst-parser from 0.18.0 to 0.18.1 @dependabot (#1738)
- Bugfix: csv recognition by consumer @bin101 (#1726)
- Bugfix: Include document title when a duplicate is detected @stumpylog (#1696)
- Bump rxjs from 7.5.6 to 7.5.7 in /src-ui @dependabot (#1720)
- Bump uuid from 8.3.2 to 9.0.0 in /src-ui @dependabot (#1716)
- Bump ng2-pdf-viewer from 9.1.0 to 9.1.2 in /src-ui @dependabot (#1717)
- Bump ngx-color from 8.0.2 to 8.0.3 in /src-ui @dependabot (#1715)
- Bump concurrently from 7.3.0 to 7.4.0 in /src-ui @dependabot (#1719)
- Bump @types/node from 18.7.14 to 18.7.23 in /src-ui @dependabot (#1718)
- Bump jest-environment-jsdom from 29.0.1 to 29.1.2 in /src-ui @dependabot (#1714)
- Bump @angular/cli @angular/core @dependabot (#1708)
- Bump cypress from 10.7.0 to 10.9.0 in /src-ui @dependabot (#1707)
- Bump bootstrap from 5.2.0 to 5.2.1 in /src-ui @dependabot (#1710)
- Bump typescript from 4.7.4 to 4.8.4 in /src-ui @dependabot (#1706)
- Bugfix: Set MySql charset @stumpylog (#1687)

## paperless-ngx 1.9.2

### Bug Fixes

- Bugfix: Allow PAPERLESS_OCR_CLEAN=none @shamoon (#1670)

### All App Changes

- Chore: Bumps version numbers to 1.9.2 @stumpylog (#1666)

## paperless-ngx 1.9.1

### Notes

- Version 1.9.1 incorrectly displays the version string as 1.9.0

### Bug Fixes

- Bugfix: Fixes missing OCR mode skip_noarchive @stumpylog (#1645)
- Fix reset button padding on small screens @shamoon (#1646)

### Documentation

- Improve docs re @janis-ax (#1625)
- [Documentation] Add v1.9.0 changelog @github-actions (#1639)

### All App Changes

- Bugfix: Fixes missing OCR mode skip_noarchive @stumpylog (#1645)
- Fix reset button padding on small screens @shamoon (#1646)

## paperless-ngx 1.9.0

### Features

- Feature: Faster, less memory barcode handling @stumpylog (#1594)
- Feature: Display django-q process names @stumpylog (#1567)
- Feature: Add MariaDB support @bckelly1 (#543)
- Feature: Simplify IMAP login for UTF-8 @stumpylog (#1492)
- Feature: Even better re-do of OCR @stumpylog (#1451)
- Feature: document comments @tim-vogel (#1375)
- Adding date suggestions to the documents details view @Eckii24 (#1367)
- Feature: Event driven consumer @stumpylog (#1421)
- Feature: Adds storage paths to re-tagger command @stumpylog (#1446)
- Feature: Preserve original filename in metadata @GwynHannay (#1440)
- Handle tags for gmail email accounts @sisao (#1433)
- Update redis image @tribut (#1436)
- PAPERLESS_REDIS may be set via docker secrets @DennisGaida (#1405)

### Bug Fixes

- paperless_cmd.sh: use exec to run supervisord @lemmi (#1617)
- Fix: Double barcode separation creates empty file @stumpylog (#1596)
- Fix: Resolve issue with slow classifier @stumpylog (#1576)
- Fix document comments not updating on document navigation @shamoon (#1566)
- Fix: Include storage paths in document exporter @shamoon (#1557)
- Chore: Cleanup and validate settings @stumpylog (#1551)
- Bugfix: Better gunicorn settings for workers @stumpylog (#1500)
- Fix actions button in tasks table @shamoon (#1488)
- Fix: Add missing filter rule types to SavedViewFilterRule model \& fix migrations @shamoon (#1463)
- Fix paperless.conf.example typo @qcasey (#1460)
- Bugfix: Fixes the creation of an archive file, even if noarchive was specified @stumpylog (#1442)
- Fix: created_date should not be required @shamoon (#1412)
- Fix: dev backend testing @stumpylog (#1420)
- Bugfix: Catch all exceptions during the task signals @stumpylog (#1387)
- Fix: saved view page parameter @shamoon (#1376)
- Fix: Correct browser unsaved changes warning @shamoon (#1369)
- Fix: correct date pasting with other formats @shamoon (#1370)
- Bugfix: Allow webserver bind address to be configured @stumpylog (#1358)
- Bugfix: Chain exceptions during exception handling @stumpylog (#1354)
- Fix: missing tooltip translation \& filter editor wrapping @shamoon (#1305)
- Bugfix: Interaction between barcode and directories as tags @stumpylog (#1303)

### Documentation

- [Beta] Paperless-ngx v1.9.0 Release Candidate @stumpylog (#1560)
- docs/configuration: Fix binary variable defaults @erikarvstedt (#1528)
- Info about installing on subpath @viktor-c (#1350)
- Docs: move scanner \& software recs to GH wiki @shamoon (#1482)
- Docs: Update mobile scanner section @tooomm (#1467)
- Adding date suggestions to the documents details view @Eckii24 (#1367)
- docs: scanners: add Brother ads4700w @ocelotsloth (#1450)
- Feature: Adds storage paths to re-tagger command @stumpylog (#1446)
- Changes to Redis documentation @Zerteax (#1441)
- Update scanners.rst @glassbox-sco (#1430)
- Update scanners.rst @derlucas (#1415)
- Bugfix: Allow webserver bind address to be configured @stumpylog (#1358)
- docs: fix small typo @tooomm (#1352)
- [Documentation] Add v1.8.0 changelog @github-actions (#1298)

### Maintenance

- [Beta] Paperless-ngx v1.9.0 Release Candidate @stumpylog (#1560)
- paperless_cmd.sh: use exec to run supervisord @lemmi (#1617)
- Chore: Extended container image cleanup @stumpylog (#1556)
- Chore: Smaller library images @stumpylog (#1546)
- Bump tj-actions/changed-files from 24 to 29.0.2 @dependabot (#1493)
- Bugfix: Better gunicorn settings for workers @stumpylog (#1500)
- [CI] Fix release drafter issues @qcasey (#1301)
- Fix: dev backend testing @stumpylog (#1420)
- Chore: Exclude dependabot PRs from Project, set status to Needs Review @qcasey (#1397)
- Chore: Add to label PRs based on and title @qcasey (#1396)
- Chore: use pre-commit in the Ci workflow @stumpylog (#1362)
- Chore: Fixes permissions for image tag cleanup @stumpylog (#1315)
- Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0 @dependabot (#1328)
- Bump tj-actions/changed-files from 23.1 to 24 @dependabot (#1329)
- Feature: Remove requirements.txt and use pipenv everywhere @stumpylog (#1316)

### Dependencies

34 changes
- Bump pikepdf from 5.5.0 to 5.6.1 [@dependabot](https://github.com/dependabot) ([#1537](https://github.com/paperless-ngx/paperless-ngx/pull/1537)) - Bump black from 22.6.0 to 22.8.0 [@dependabot](https://github.com/dependabot) ([#1539](https://github.com/paperless-ngx/paperless-ngx/pull/1539)) - Bump tqdm from 4.64.0 to 4.64.1 [@dependabot](https://github.com/dependabot) ([#1540](https://github.com/paperless-ngx/paperless-ngx/pull/1540)) - Bump pytest from 7.1.2 to 7.1.3 [@dependabot](https://github.com/dependabot) ([#1538](https://github.com/paperless-ngx/paperless-ngx/pull/1538)) - Bump tj-actions/changed-files from 24 to 29.0.2 [@dependabot](https://github.com/dependabot) ([#1493](https://github.com/paperless-ngx/paperless-ngx/pull/1493)) - Bump angular packages, jest-preset-angular in src-ui [@dependabot](https://github.com/dependabot) ([#1502](https://github.com/paperless-ngx/paperless-ngx/pull/1502)) - Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1507](https://github.com/paperless-ngx/paperless-ngx/pull/1507)) - Bump [@types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot](https://github.com/types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot) ([#1506](https://github.com/paperless-ngx/paperless-ngx/pull/1506)) - Bump [@angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot](https://github.com/angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot) ([#1505](https://github.com/paperless-ngx/paperless-ngx/pull/1505)) - Bump zone.js from 0.11.7 to 0.11.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#1504](https://github.com/paperless-ngx/paperless-ngx/pull/1504)) - Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1494](https://github.com/paperless-ngx/paperless-ngx/pull/1494)) - Bump cypress from 10.3.1 to 10.7.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1496](https://github.com/paperless-ngx/paperless-ngx/pull/1496)) - Bump [@cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot](https://github.com/cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot) ([#1495](https://github.com/paperless-ngx/paperless-ngx/pull/1495)) - Bump [@popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot](https://github.com/popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot) ([#1498](https://github.com/paperless-ngx/paperless-ngx/pull/1498)) - Bump sphinx from 5.0.2 to 5.1.1 [@dependabot](https://github.com/dependabot) ([#1297](https://github.com/paperless-ngx/paperless-ngx/pull/1297)) - Chore: Bump Python dependencies [@stumpylog](https://github.com/stumpylog) ([#1445](https://github.com/paperless-ngx/paperless-ngx/pull/1445)) - Chore: Update Python deps [@stumpylog](https://github.com/stumpylog) ([#1391](https://github.com/paperless-ngx/paperless-ngx/pull/1391)) - Bump watchfiles from 0.15.0 to 0.16.1 [@dependabot](https://github.com/dependabot) ([#1285](https://github.com/paperless-ngx/paperless-ngx/pull/1285)) - Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0 [@dependabot](https://github.com/dependabot) ([#1328](https://github.com/paperless-ngx/paperless-ngx/pull/1328)) - Bump tj-actions/changed-files from 23.1 to 24 [@dependabot](https://github.com/dependabot) ([#1329](https://github.com/paperless-ngx/paperless-ngx/pull/1329)) - Bump cypress from 10.3.0 to 10.3.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1342](https://github.com/paperless-ngx/paperless-ngx/pull/1342)) - Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1343](https://github.com/paperless-ngx/paperless-ngx/pull/1343)) - Bump [@angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot](https://github.com/angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot) ([#1330](https://github.com/paperless-ngx/paperless-ngx/pull/1330)) - Bump [@types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot](https://github.com/types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot) ([#1341](https://github.com/paperless-ngx/paperless-ngx/pull/1341)) - Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1340](https://github.com/paperless-ngx/paperless-ngx/pull/1340)) - Bump concurrently from 7.2.2 to 7.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1326](https://github.com/paperless-ngx/paperless-ngx/pull/1326)) - Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1337](https://github.com/paperless-ngx/paperless-ngx/pull/1337)) - Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1336](https://github.com/paperless-ngx/paperless-ngx/pull/1336)) - Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1331](https://github.com/paperless-ngx/paperless-ngx/pull/1331)) - Bump jest and [@types/jest in /src-ui @dependabot](https://github.com/types/jest in /src-ui @dependabot) ([#1333](https://github.com/paperless-ngx/paperless-ngx/pull/1333)) - Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1327](https://github.com/paperless-ngx/paperless-ngx/pull/1327)) - Bump typescript from 4.6.4 to 4.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1324](https://github.com/paperless-ngx/paperless-ngx/pull/1324)) - Bump ts-node from 10.8.1 to 10.9.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1325](https://github.com/paperless-ngx/paperless-ngx/pull/1325)) - Bump rxjs from 7.5.5 to 7.5.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#1323](https://github.com/paperless-ngx/paperless-ngx/pull/1323))

### All App Changes

- [Beta] Paperless-ngx v1.9.0 Release Candidate @stumpylog (#1560)
- Feature: Faster, less memory barcode handling @stumpylog (#1594)
- Fix: Consume directory permissions were not updated @stumpylog (#1605)
- Fix: Double barcode separation creates empty file @stumpylog (#1596)
- Fix: Parsing Tika documents fails with AttributeError @stumpylog (#1591)
- Fix: Resolve issue with slow classifier @stumpylog (#1576)
- Feature: Display django-q process names @stumpylog (#1567)
- Fix document comments not updating on document navigation @shamoon (#1566)
- Feature: Add MariaDB support @bckelly1 (#543)
- Fix: Include storage paths in document exporter @shamoon (#1557)
- Chore: Cleanup and validate settings @stumpylog (#1551)
- Bump pikepdf from 5.5.0 to 5.6.1 @dependabot (#1537)
- Bump black from 22.6.0 to 22.8.0 @dependabot (#1539)
- Bump tqdm from 4.64.0 to 4.64.1 @dependabot (#1540)
- Bump pytest from 7.1.2 to 7.1.3 @dependabot (#1538)
- Bump angular packages, jest-preset-angular in src-ui @dependabot (#1502)
- Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui @dependabot (#1507)
- Bump @types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot (#1506)
- Bump @angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot (#1505)
- Bump zone.js from 0.11.7 to 0.11.8 in /src-ui @dependabot (#1504)
- Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui @dependabot (#1494)
- Bump cypress from 10.3.1 to 10.7.0 in /src-ui @dependabot (#1496)
- Bump @cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot (#1495)
- Bump @popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot (#1498)
- Feature: Simplify IMAP login for UTF-8 @stumpylog (#1492)
- Fix actions button in tasks table @shamoon (#1488)
- Fix: Add missing filter rule types to SavedViewFilterRule model \& fix migrations @shamoon (#1463)
- Feature: Even better re-do of OCR @stumpylog (#1451)
- Feature: document comments @tim-vogel (#1375)
- Adding date suggestions to the documents details view @Eckii24 (#1367)
- Bump sphinx from 5.0.2 to 5.1.1 @dependabot (#1297)
- Feature: Event driven consumer @stumpylog (#1421)
- Bugfix: Fixes the creation of an archive file, even if noarchive was specified @stumpylog (#1442)
- Feature: Adds storage paths to re-tagger command @stumpylog (#1446)
- Feature: Preserve original filename in metadata @GwynHannay (#1440)
- Handle tags for gmail email accounts @sisao (#1433)
- Fix: should not be required @shamoon (#1412)
- Bugfix: Catch all exceptions during the task signals @stumpylog (#1387)
- Fix: saved view page parameter @shamoon (#1376)
- Fix: Correct browser unsaved changes warning @shamoon (#1369)
- Fix: correct date pasting with other formats @shamoon (#1370)
- Chore: use pre-commit in the Ci workflow @stumpylog (#1362)
- Bugfix: Chain exceptions during exception handling @stumpylog (#1354)
- Bump watchfiles from 0.15.0 to 0.16.1 @dependabot (#1285)
- Bump cypress from 10.3.0 to 10.3.1 in /src-ui @dependabot (#1342)
- Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui @dependabot (#1343)
- Bump @angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot (#1330)
- Bump @types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot (#1341)
- Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui @dependabot (#1340)
- Bump concurrently from 7.2.2 to 7.3.0 in /src-ui @dependabot (#1326)
- Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui @dependabot (#1337)
- Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui @dependabot (#1336)
- Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui @dependabot (#1331)
- Bump jest and @types/jest in /src-ui @dependabot (#1333)
- Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui @dependabot (#1327)
- Bump typescript from 4.6.4 to 4.7.4 in /src-ui @dependabot (#1324)
- Bump ts-node from 10.8.1 to 10.9.1 in /src-ui @dependabot (#1325)
- Bump rxjs from 7.5.5 to 7.5.6 in /src-ui @dependabot (#1323)
- Fix: missing tooltip translation \& filter editor wrapping @shamoon (#1305)
- Feature: Remove requirements.txt and use pipenv everywhere @stumpylog (#1316)
- Bugfix: Interaction between barcode and directories as tags @stumpylog (#1303)

## paperless-ngx 1.8.0

### Features

- Feature use env vars in pre post scripts @ziprandom (#1154)
- frontend task queue @shamoon (#1020)
- Fearless scikit-learn updates @stumpylog (#1082)
- Adds support for Docker secrets @stumpylog (#1034)
- make frontend timezone un-aware @shamoon (#957)
- Change document thumbnails to WebP @stumpylog (#1127)
- Fork django-q to update dependencies @stumpylog (#1014)
- Fix: Rework query params logic @shamoon (#1000)
- Enhancement: show note on language change and offer reload @shamoon (#1030)
- Include error information when Redis connection fails @stumpylog (#1016)
- frontend settings saved to database @shamoon (#919)
- Add "Created" as additional (optional) parameter for post_documents @eingemaischt (#965)
- Convert Changelog to markdown, auto-commit future changelogs @qcasey (#935)
- allow all ASN filtering functions @shamoon (#920)
- gunicorn: Allow IPv6 sockets @vlcty (#924)
- initial app loading indicators @shamoon (#899)

### Bug Fixes

- Fix: dropdown selected items not visible again @shamoon (#1261)
- [CI] Fix automatic changelog generation on release @qcasey (#1249)
- Fix: Prevent duplicate api calls on text filtering @shamoon (#1133)
- make frontend timezone un-aware @shamoon (#957)
- Feature / fix quick toggleable filters @shamoon (#1122)
- Chore: Manually downgrade reportlab (and update everything else) @stumpylog (#1116)
- Bugfix: Don't assume default Docker folders @stumpylog (#1088)
- Bugfix: Better sanity check messages @stumpylog (#1049)
- Fix vertical margins between pages of pdf viewer @shamoon (#1081)
- Bugfix: Pass debug setting on to django-q @stumpylog (#1058)
- Bugfix: Don't assume the document has a title set @stumpylog (#1057)
- Bugfix: Corrects the setting of max pixel size for OCR @stumpylog (#1008)
- better date pasting @shamoon (#1007)
- Enhancement: Alphabetize tags by default @shamoon (#1017)
- Fix: Rework query params logic @shamoon (#1000)
- Fix: add translation for some un-translated tooltips @shamoon (#995)
- Change npm --no-optional to --omit=optional @shamoon (#986)
- Add `myst-parser` to fix readthedocs @qcasey (#982)
- Fix: Title is changed after switching doc quickly @shamoon (#979)
- Fix: warn when closing a document with unsaved changes due to max open docs @shamoon (#956)
- Bugfix: Adds configurable intoify debounce time @stumpylog (#953)
- Bugfix: Fixes document filename date off by 1 issue @stumpylog (#942)
- fixes #949: change to MIME detection for files @gador (#962)
- docs: fix some typos @Berjou (#948)
- [Docs] Fix 2 small typos @tooomm (#946)
- [Readme] Fix typo @tooomm (#941)
- Fix: management pages plurals incorrect in other languages @shamoon (#939)
- Fix: v1.7.1 frontend visual fixes @shamoon (#933)
- Fix: unassigned query params ignored @shamoon (#930)
- Fix: allow commas in non-multi rules query params @shamoon (#923)
- Fix: Include version in export for better error messages @stumpylog (#883)
- Bugfix: Superuser Management Won't Reset Password @stumpylog (#903)
- Fix Ignore Date Parsing @stumpylog (#721)

### Documentation

- Feature use env vars in pre post scripts @ziprandom (#1154)
- Add `myst-parser` to fix readthedocs @qcasey (#982)
- Add "Created" as additional (optional) parameter for post_documents @eingemaischt (#965)
- Bugfix: Adds configurable intoify debounce time @stumpylog (#953)
- docs: fix some typos @Berjou (#948)
- [Docs] Fix 2 small typos @tooomm (#946)
- Convert Changelog to markdown, auto-commit future changelogs @qcasey (#935)
- [Readme] Fix typo @tooomm (#941)

### Maintenance

- Adds support for Docker secrets @stumpylog (#1034)
- Bugfix: Don't assume default Docker folders @stumpylog (#1088)
- Include error information when Redis connection fails @stumpylog (#1016)
- Fix: add translation for some un-translated tooltips @shamoon (#995)
- gunicorn: Allow IPv6 sockets @vlcty (#924)

### Dependencies

34 changes
- Fearless scikit-learn updates [@stumpylog](https://github.com/stumpylog) ([#1082](https://github.com/paperless-ngx/paperless-ngx/pull/1082)) - Bump pillow from 9.1.1 to 9.2.0 [@dependabot](https://github.com/dependabot) ([#1193](https://github.com/paperless-ngx/paperless-ngx/pull/1193)) - Bump watchdog from 2.1.8 to 2.1.9 [@dependabot](https://github.com/dependabot) ([#1132](https://github.com/paperless-ngx/paperless-ngx/pull/1132)) - Bump scikit-learn from 1.0.2 to 1.1.1 [@dependabot](https://github.com/dependabot) ([#992](https://github.com/paperless-ngx/paperless-ngx/pull/992)) - Bump setuptools from 62.3.3 to 62.6.0 [@dependabot](https://github.com/dependabot) ([#1150](https://github.com/paperless-ngx/paperless-ngx/pull/1150)) - Bump django-filter from 21.1 to 22.1 [@dependabot](https://github.com/dependabot) ([#1191](https://github.com/paperless-ngx/paperless-ngx/pull/1191)) - Bump actions/setup-python from 3 to 4 [@dependabot](https://github.com/dependabot) ([#1176](https://github.com/paperless-ngx/paperless-ngx/pull/1176)) - Bump sphinx from 4.5.0 to 5.0.2 [@dependabot](https://github.com/dependabot) ([#1151](https://github.com/paperless-ngx/paperless-ngx/pull/1151)) - Bump docker/metadata-action from 3 to 4 [@dependabot](https://github.com/dependabot) ([#1178](https://github.com/paperless-ngx/paperless-ngx/pull/1178)) - Bump tj-actions/changed-files from 22.1 to 23.1 [@dependabot](https://github.com/dependabot) ([#1179](https://github.com/paperless-ngx/paperless-ngx/pull/1179)) - Bump @angular/cli from 13.3.7 to 14.0.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1177](https://github.com/paperless-ngx/paperless-ngx/pull/1177)) - Bump cypress from 10.0.1 to 10.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1187](https://github.com/paperless-ngx/paperless-ngx/pull/1187)) - Bump zone.js from 0.11.5 to 0.11.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#1185](https://github.com/paperless-ngx/paperless-ngx/pull/1185)) - Bump ts-node from 10.8.0 to 10.8.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1184](https://github.com/paperless-ngx/paperless-ngx/pull/1184)) - Bump jest-environment-jsdom from 28.1.0 to 28.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1175](https://github.com/paperless-ngx/paperless-ngx/pull/1175)) - Bump @types/node from 17.0.38 to 18.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1183](https://github.com/paperless-ngx/paperless-ngx/pull/1183)) - Bump concurrently from 7.2.1 to 7.2.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1181](https://github.com/paperless-ngx/paperless-ngx/pull/1181)) - Bump jest-preset-angular from 12.0.1 to 12.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1182](https://github.com/paperless-ngx/paperless-ngx/pull/1182)) - Bump jest and @types/jest in /src-ui [@dependabot](https://github.com/dependabot) ([#1180](https://github.com/paperless-ngx/paperless-ngx/pull/1180)) - Bump whitenoise from 6.1.0 to 6.2.0 [@dependabot](https://github.com/dependabot) ([#1103](https://github.com/paperless-ngx/paperless-ngx/pull/1103)) - Bump cypress from 9.6.1 to 10.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1083](https://github.com/paperless-ngx/paperless-ngx/pull/1083)) - Bump docker/setup-qemu-action from 1 to 2 [@dependabot](https://github.com/dependabot) ([#1065](https://github.com/paperless-ngx/paperless-ngx/pull/1065)) - Bump docker/setup-buildx-action from 1 to 2 [@dependabot](https://github.com/dependabot) ([#1064](https://github.com/paperless-ngx/paperless-ngx/pull/1064)) - Bump docker/build-push-action from 2 to 3 [@dependabot](https://github.com/dependabot) ([#1063](https://github.com/paperless-ngx/paperless-ngx/pull/1063)) - Bump @cypress/schematic from 1.7.0 to 2.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1075](https://github.com/paperless-ngx/paperless-ngx/pull/1075)) - Bump tj-actions/changed-files from 19 to 22.1 [@dependabot](https://github.com/dependabot) ([#1062](https://github.com/paperless-ngx/paperless-ngx/pull/1062)) - Bump concurrently from 7.1.0 to 7.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1073](https://github.com/paperless-ngx/paperless-ngx/pull/1073)) - Bump @types/jest from 27.4.1 to 27.5.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1074](https://github.com/paperless-ngx/paperless-ngx/pull/1074)) - Bump ts-node from 10.7.0 to 10.8.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1070](https://github.com/paperless-ngx/paperless-ngx/pull/1070)) - Bump jest from 28.0.3 to 28.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1071](https://github.com/paperless-ngx/paperless-ngx/pull/1071)) - Chore: npm package updates 22-06-01 [@shamoon](https://github.com/shamoon) ([#1069](https://github.com/paperless-ngx/paperless-ngx/pull/1069)) - Bump docker/login-action from 1 to 2 [@dependabot](https://github.com/dependabot) ([#1061](https://github.com/paperless-ngx/paperless-ngx/pull/1061)) - Chore: Manually update dependencies [@stumpylog](https://github.com/stumpylog) ([#1013](https://github.com/paperless-ngx/paperless-ngx/pull/1013)) - Chore: Manually update all Python dependencies [@stumpylog](https://github.com/stumpylog) ([#973](https://github.com/paperless-ngx/paperless-ngx/pull/973))

## paperless-ngx 1.7.1

### Features

- (chore) Runs pyupgrade to Python 3.8+ @stumpylog (#890)
- Dockerfile Organization \& Enhancements @stumpylog (#888)
- mobile friendlier manage pages @shamoon (#873)
- Use semver for release process @stumpylog (#851)
- Enable Docker Hub push @stumpylog (#828)
- Feature barcode tiff support @gador (#766)
- Updates GHA workflow to rebuild intermediate images on changes @stumpylog (#820)
- Adds simple Python to wait for Redis broker to be ready @stumpylog (#788)
- Update GHA workflow to build all Docker images @stumpylog (#761)

### Bug Fixes

- Feature / fix saved view \& sort field query params @shamoon (#881)
- Mobile friendlier manage pages @shamoon (#873)
- Add timeout to healthcheck @shamoon (#880)
- Always accept yyyy-mm-dd date inputs @shamoon (#864)
- Fix local Docker image building @stumpylog (#849)
- Fix: show errors on invalid date input @shamoon (#862)
- Fix: Older dates do not display on frontend @shamoon (#852)
- Fixes IMAP UTF8 Authentication @stumpylog (#725)
- Fix password field remains visible @shamoon (#840)
- Fixes Pillow build for armv7 @stumpylog (#815)
- Update frontend localization source file @shamoon (#814)
- Fix install script extra OCR languages format @stumpylog (#777)

### Documentation

- Use semver for release process @stumpylog (#851)
- Deployment: Consolidate tika compose files @qcasey (#866)
- Fix local Docker image building @stumpylog (#849)

### Maintenance

- Dockerfile Organization \& Enhancements @stumpylog (#888)
- Add timeout to healthcheck @shamoon (#880)
- Use semver for release process @stumpylog (#851)
- Deployment: Consolidate tika compose files @qcasey (#866)
- Fixes Pillow build for armv7 @stumpylog (#815)
- Update frontend localization source file @shamoon (#814)
- Fix install script extra OCR languages format @stumpylog (#777)
- Adds simple Python to wait for Redis broker to be ready @stumpylog (#788)

### Dependencies

15 changes
- Bump tj-actions/changed-files from 18.7 to 19 @dependabot ([#830](https://github.com/paperless-ngx/paperless-ngx/pull/830)) - Bump asgiref from 3.5.0 to 3.5.1 @dependabot ([#867](https://github.com/paperless-ngx/paperless-ngx/pull/867)) - Bump jest from 27.5.1 to 28.0.3 in /src-ui @dependabot ([#860](https://github.com/paperless-ngx/paperless-ngx/pull/860)) - Bump @ng-bootstrap/ng-bootstrap from 12.1.0 to 12.1.1 in /src-ui @dependabot ([#861](https://github.com/paperless-ngx/paperless-ngx/pull/861)) - Bump @types/node from 17.0.27 to 17.0.29 in /src-ui @dependabot ([#833](https://github.com/paperless-ngx/paperless-ngx/pull/833)) - Bump @ng-bootstrap/ng-bootstrap from 12.0.2 to 12.1.0 in /src-ui @dependabot ([#834](https://github.com/paperless-ngx/paperless-ngx/pull/834)) - Bump pytest from 7.1.1 to 7.1.2 @dependabot ([#806](https://github.com/paperless-ngx/paperless-ngx/pull/806)) - Bump github/codeql-action from 1 to 2 @dependabot ([#792](https://github.com/paperless-ngx/paperless-ngx/pull/792)) - Bump imap-tools from 0.53.0 to 0.54.0 @dependabot ([#758](https://github.com/paperless-ngx/paperless-ngx/pull/758)) - Bump ocrmypdf from 13.4.2 to 13.4.3 @dependabot ([#757](https://github.com/paperless-ngx/paperless-ngx/pull/757)) - Bump importlib-resources from 5.6.0 to 5.7.1 @dependabot ([#756](https://github.com/paperless-ngx/paperless-ngx/pull/756)) - Bump tox from 3.24.5 to 3.25.0 @dependabot ([#692](https://github.com/paperless-ngx/paperless-ngx/pull/692)) - Bump cypress from 9.5.3 to 9.6.0 in /src-ui @dependabot ([#800](https://github.com/paperless-ngx/paperless-ngx/pull/800)) - Bump angular \& tools to 13.3.4 or 13.3.3 [@shamoon](https://github.com/shamoon) ([#799](https://github.com/paperless-ngx/paperless-ngx/pull/799)) - Bump concurrently from 7.0.0 to 7.1.0 in /src-ui @dependabot ([#797](https://github.com/paperless-ngx/paperless-ngx/pull/797))

## paperless-ngx 1.7.0

### Breaking Changes

- `PAPERLESS_URL` is now required when using a reverse proxy. See #674.

### Features

- Allow setting more than one tag in mail rules @jonasc (#270)
- Global drag'n'drop @shamoon (#283)
- Fix: download buttons should disable while waiting @shamoon (#630)
- Update checker @shamoon (#591)
- Show prompt on password-protected pdfs @shamoon (#564)
- Filtering query params aka browser navigation for filtering @shamoon (#540)
- Clickable tags in dashboard widgets @shamoon (#515)
- Add bottom pagination @shamoon (#372)
- Feature barcode splitter @gador (#532)
- App loading screen @shamoon (#298)
- Use progress bar for delayed buttons @shamoon (#415)
- Add minimum length for documents text filter @shamoon (#401)
- Added nav buttons in the document detail view @GruberViktor (#273)
- Improve date keyboard input @shamoon (#253)
- Color theming @shamoon (#243)
- Parse dates when entered without separators @GruberViktor (#250)

### Bug Fixes

- Add "localhost" to ALLOWED_HOSTS @gador (#700)
- Fix: scanners table @qcasey (#690)
- Adds wait for file before consuming @stumpylog (#483)
- Fix: frontend document editing erases time data @shamoon (#654)
- Increase length of SavedViewFilterRule @stumpylog (#612)
- Fixes attachment filename matching during mail fetching @stumpylog (#680)
- Add `PAPERLESS_URL` env variable & CSRF var @shamoon (#674)
- Fix: download buttons should disable while waiting @shamoon (#630)
- Fixes downloaded filename, add more consumer ignore settings @stumpylog (#599)
- FIX BUG: case-sensitive matching was not possible @danielBreitlauch (#594)
- Uses shutil.move instead of rename @gador (#617)
- Fix npm deps 01.02.22 2 @shamoon (#610)
- Fix npm dependencies 01.02.22 @shamoon (#600)
- Fix issue 416: implement `PAPERLESS_OCR_MAX_IMAGE_PIXELS` @hacker-h (#441)
- Fix: exclude cypress from build in Dockerfile @FrankStrieter (#526)
- Corrections to pass pre-commit hooks @schnuffle (#454)
- Fix 311 unable to click checkboxes in document list @shamoon (#313)
- Fix imap tools bug @stumpylog (#393)
- Fix filterable dropdown buttons aren't translated @shamoon (#366)
- Fix 224: "Auto-detected date is day before receipt date" @a17t (#246)
- Fix minor sphinx errors @shamoon (#322)
- Fix page links hidden @shamoon (#314)
- Fix: Include excluded items in dropdown count @shamoon (#263)

### Translation

- @miku323 contributed to Slovenian translation
- @FaintGhost contributed to Chinese Simplified translation
- @DarkoBG79 contributed to Serbian translation
- Kemal Secer contributed to Turkish translation
- @Prominence contributed to Belarusian translation

### Documentation

- Fix: scanners table @qcasey (#690)
- Add `PAPERLESS_URL` env variable & CSRF var @shamoon (#674)
- Fixes downloaded filename, add more consumer ignore settings @stumpylog (#599)
- Fix issue 416: implement `PAPERLESS_OCR_MAX_IMAGE_PIXELS` @hacker-h (#441)
- Fix minor sphinx errors @shamoon (#322)

### Maintenance

- Add `PAPERLESS_URL` env variable & CSRF var @shamoon (#674)
- Chore: Implement release-drafter action for Changelogs @qcasey (#669)
- Chore: Add CODEOWNERS @qcasey (#667)
- Support docker-compose v2 in install @stumpylog (#611)
- Add Belarusian localization @shamoon (#588)
- Add Turkish localization @shamoon (#536)
- Add Serbian localization @shamoon (#504)
- Create PULL_REQUEST_TEMPLATE.md @shamoon (#304)
- Add Chinese localization @shamoon (#247)
- Add Slovenian language for frontend @shamoon (#315)

## paperless-ngx 1.6.0

This is the first release of the revived paperless-ngx project 🎉. Thank you to everyone on the paperless-ngx team for your initiative and excellent teamwork!

Version 1.6.0 merges several pending PRs from jonaswinkler's repo and includes new feature updates and bug fixes. Major backend and UI changes include:

- Updated docs, scripts, CI, and containers to paperless-ngx.
- Updated Python and Angular dependencies.
- Dropped support for Python 3.7.
- Dropped support for Ansible playbooks (thanks @slankes #109). If someone would like to continue supporting them, please see our ansible repo.
- Python code is now required to use Black formatting (thanks @kpj #168).
- @tribut added support for a custom SSO logout redirect (jonaswinkler#1258). See `PAPERLESS_LOGOUT_REDIRECT_URL`.
- @shamoon added a loading indicator when document list is reloading (jonaswinkler#1297).
- @shamoon improved the PDF viewer on mobile (#2).
- @shamoon added 'any' / 'all' and 'not' filtering with tags (#10).
- @shamoon added warnings for unsaved changes, with smart edit buttons (#13).
- @benjaminfrank enabled a non-root access to port 80 via systemd (#18).
- @tribut added simple "delete to trash" functionality (#24). See `PAPERLESS_TRASH_DIR`.
- @amenk fixed the search box overlay menu on mobile (#32).
- @dblitt updated the login form to not auto-capitalize usernames (#36).
- @evilsidekick293 made the worker timeout configurable (#37). See `PAPERLESS_WORKER_TIMEOUT`.
- @Nicarim fixed downloads of UTF-8 formatted documents in Firefox (#56).
- @mweimerskirch sorted the language dropdown by locale (#78).
- @mweimerskirch enabled the Czech (#83) and Danish (#84) translations.
- @cschmatzler enabled specifying the webserver port (#124). See `PAPERLESS_PORT`.
- @muellermartin fixed an error when uploading transparent PNGs (#133).
- @shamoon created a slick new logo (#165).
- @tim-vogel fixed exports missing groups (#193).

Known issues:

- 1.6.0 included a malformed package-lock.json, as a result users who want to build the docker image themselves need to change line 6 of the `Dockerfile` to `RUN npm update npm -g && npm install --legacy-peer-deps`.

Thank you to the following people for their documentation updates, fixes, and comprehensive testing:

@m0veax, @a17t, @fignew, @muued, @bauerj, @isigmund, @denilsonsa, @mweimerskirch, @alexander-bauer, @apeltzer, @tribut, @yschroeder, @gador, @sAksham-Ar, @sbrunner, @philpagel, @davemachado, @2600box, @qcasey, @Nicarim, @kpj, @filcuk, @Timoms, @mattlamb99, @padraigkitterick, @ajkavanagh, @Tooa, @Unkn0wnCat, @pewter77, @stumpylog, @Toxix, @azapater, @jschpp

Another big thanks to the people who have contributed translations:

- Michel Weimerskirch (michel_weimerskirch) suggested 31 translations into French and Luxembourgish.
- jo.vandeginste suggested 21 translations into Dutch.
- Lars Sørensen (Lrss) suggested 486 translations into Danish.
- Alex (Sky-Dragon) voted for 46 translations in German.
- Yannic Schröder (yschroeder) suggested 14 translations into German.
- David Morais Ferreira (DavidMoraisFerreira) voted for 10 translations in Portuguese and Luxembourgish.
- David Morais Ferreira (DavidMoraisFerreira) suggested 88 translations into French, German, Portuguese, Portuguese, Brazilian and Luxembourgish.
- 汪泠沣 (wlfcss) suggested 13 translations into Chinese Traditional.
- Lars Sørensen (Lrss) suggested 167 translations into Danish.
- Philmo67 suggested 11 translations into French.

## Paperless-ng

### paperless-ng 1.5.0

Support for Python 3.6 was dropped.

- Updated python dependencies.
- Base image of the docker image changed from Debian Buster to Debian Bullseye due to its recent release.
- The docker image now uses python 3.9.
- Added the Luxembourgish locale. Thanks for translating!
- Daniel Albers added support for making the files and folders ignored by the paperless consume folder scanner configurable. See `PAPERLESS_CONSUMER_IGNORE_PATTERNS`.

### paperless-ng 1.4.5

This is a maintenance release.

- Updated Python and Angular dependencies.
- Changed the algorithm that changes permissions during startup. This is still fast, and will hopefully cause less issues.
- Fixed an issue that would sometimes cause paperless to write an incomplete classification model file to disk.
- Fixed an issue with the OCRmyPDF parser that would always try to extract text with PDFminer even from non-PDF files.

### paperless-ng 1.4.4

- Drastically decreased the startup time of the docker container. The startup script adjusts file permissions of all data only if changes are required.
- Paperless mail: Added ability to specify the character set for each server.
- Document consumption: Ignore Mac OS specific files such as `.DS_STORE` and `._XXXXX.pdf`.
- Fixed an issue with the automatic matching algorithm that prevents paperless from consuming new files.
- Updated translations.

### paperless-ng 1.4.3

- Additions and changes
- Added Swedish locale.
- Stéphane Brunner added an option to disable the progress bars of all management commands.
- Jo Vandeginste added support for RTF documents to the Apache TIKA parser.
- Michael Shamoon added dark mode for the login and logout pages.
- Alexander Menk added additional stylesheets for printing. You can now print any page of paperless and the print result will hide the page header, sidebar, and action buttons.
- Added support for sorting when using full text search.
- Fixes
- puuu fixed `PAPERLESS_FORCE_SCRIPT_NAME`. You can now host paperless on sub paths such as `https://localhost:8000/paperless/`.
- Fixed an issue with the document consumer crashing on certain documents due to issues with pdfminer.six. This library is used for PDF text extraction.

### paperless-ng 1.4.2

- Fixed an issue with `sudo` that caused paperless to not start on many Raspberry Pi devices. Thank you WhiteHatTux!

### paperless-ng 1.4.1

- Added Polish locale.
- Changed some parts of the Dockerfile to hopefully restore functionality on certain ARM devices.
- Updated python dependencies.
- Michael Shamoon added a sticky filter / bulk edit bar.
- sbrl changed the docker-entrypoint.sh script to increase compatibility with NFS shares.
- Chris Nagy added support for creating a super user by passing `PAPERLESS_ADMIN_USER` and `PAPERLESS_ADMIN_PASSWORD` as environment variables to the docker container.

### paperless-ng 1.4.0

- Docker images now use tesseract 4.1.1, which should fix a series of issues with OCR.
- The full text search now displays results using the default document list. This enables selection, filtering and bulk edit on search results.
- Changes
- Firefox only: Highlight search query in PDF previews.
- New URL pattern for accessing documents by ASN directly (http:///asn/123)
- Added logging when executing pre* and post-consume scripts.
- Better error logging during document consumption.
- Updated python dependencies.
- Automatically inserts typed text when opening "Create new" dialogs on the document details page.
- Fixes
- Fixed an issue with null characters in the document content.

Note

The changed to the full text searching require you to reindex your documents. The docker image does this automatically, you don't need to do anything. To do this, execute the `document_index reindex` management command (see Managing the document search index).

### paperless-ng 1.3.2

- Added translation into Portuguese.
- Changes
- The exporter now exports user accounts, mail accounts, mail rules and saved views as well.
- Fixes
- Minor layout issues with document cards and the log viewer.
- Fixed an issue with any/all/exact matching when characters used in regular expressions were used for the match.

### paperless-ng 1.3.1

- Added translation into Spanish and Russian.
- Other changes
- ISO-8601 date format will now always show years with 4 digits.
- Added the ability to search for a document with a specific ASN.
- The document cards now display ASN, types and dates in a more organized way.
- Added document previews when hovering over the preview button.
- Fixes
- The startup check for write permissions now works properly on NFS shares.
- Fixed an issue with the search results score indicator.
- Paperless was unable to generate thumbnails for encrypted PDF files and failed. Paperless will now generate a default thumbnail for these files.
- Fixed `AUTO_LOGIN_USERNAME`: Unable to perform POST/PUT/DELETE requests and unable to receive WebSocket messages.

### paperless-ng 1.3.0

This release contains new database migrations.

- Changes
- The REST API is versioned from this point onwards. This will allow me to make changes without breaking existing clients. See the documentation about API versioning for details.
- Added a color picker for tag colors.
- Added the ability to use the filter for searching the document content as well.
- Added translations into Italian and Romanian. Thank you!
- Close individual documents from the sidebar. Thanks to Michael Shamoon.
- BolkoSchreiber added an option to disable/enable thumbnail inversion in dark mode.
- Simon Taddiken added the ability to customize the header used for remote user authentication with SSO applications.
- Bug fixes
- Fixed an issue with the auto matching algorithm when more than 256 tags were used.

### paperless-ng 1.2.1

- Rodrigo Avelino translated Paperless into Portuguese (Brazil)!
- The date input fields now respect the currently selected date format.
- Added a fancy icon when adding paperless to the home screen on iOS devices. Thanks to Joel Nordell.
- When using regular expression matching, the regular expression is now validated before saving the tag/correspondent/type.
- Regression fix: Dates on the front end did not respect date locale settings in some cases.

### paperless-ng 1.2.0

- Changes to the OCRmyPDF integration
- Added support for deskewing and automatic rotation of incorrectly rotated pages. This is enabled by default, see OCR settings.
- Better support for encrypted files.
- Better support for various other PDF files: Paperless will now attempt to force OCR with safe options when OCR fails with the configured options.
- Added an explicit option to skip cleaning with `unpaper`.
- Download multiple selected documents as a zip archive.
- The document list now remembers the current page.
- Improved responsiveness when switching between saved views and the document list.
- Increased the default wait time when observing files in the consumption folder with polling from 1 to 5 seconds. This will decrease the likelihood of paperless consuming partially written files.
- Fixed a crash of the document archiver management command when trying to process documents with unknown mime types.
- Paperless no longer depends on `libpoppler-cpp-dev`.

### paperless-ng 1.1.4

- Added English (GB) locale.
- Added ISO-8601 date display option.

### paperless-ng 1.1.3

- Added a docker-specific configuration option to adjust the number of worker processes of the web server. See Docker options.
- Some more memory usage optimizations.
- Don't show inbox statistics if no inbox tag is defined.

### paperless-ng 1.1.2

- Always show top left corner of thumbnails, even for extra wide documents.
- Added a management command for executing the sanity checker directly. See management utilities.
- The weekly sanity check now reports messages in the log files.
- Fixed an issue with the metadata tab not reporting anything in case of missing files.
- Reverted a change from 1.1.0 that caused huge memory usage due to redis caching.
- Some memory usage optimizations.

### paperless-ng 1.1.1

This release contains new database migrations.

- Fixed a bug in the sanity checker that would cause it to display "x not in list" errors instead of actual issues.
- Fixed a bug with filename generation for archive filenames that would cause the archive files of two documents to overlap.
- This happened when `PAPERLESS_FILENAME_FORMAT` is used and the filenames of two or more documents are the same, except for the file extension.
- Paperless will now store the archive filename in the database as well instead of deriving it from the original filename, and use the same logic for detecting and avoiding filename clashes that's also used for original filenames.
- The migrations will repair any missing archive files. If you're using tika, ensure that tika is running while performing the migration. Docker-compose will take care of that.
- Fixed a bug with thumbnail regeneration when TIKA integration was used.
- Added ASN as a placeholder field to the filename format.
- The docker image now comes with built-in shortcuts for most management commands. These are now the recommended way to execute management commands, since these also ensure that they're always executed as the paperless user and you're less likely to run into permission issues. See management commands.

### paperless-ng 1.1.0

- Document processing status
- Paperless now shows the status of processing documents on the dashboard in real time.
- Status notifications when
  - New documents are detected in the consumption folder, in mails, uploaded on the front end, or added with one of the mobile apps.
  - Documents are successfully added to paperless.
  - Document consumption failed (with error messages)

- Configuration options to enable/disable individual notifications.

- Live updates to document lists and saved views when new documents are added.

!!! tip

For status notifications and live updates to work, paperless now requires an ASGI-enabled web server. The docker images uses `gunicorn` and an ASGI-enabled worker called uvicorn, and there is no need to configure anything.

For bare metal installations, changes are required for the notifications to work. Adapt the service `paperless-webserver.service` to use the supplied `gunicorn.conf.py` configuration file and adapt the reference to the ASGI application as follows:

    ExecStart=/opt/paperless/.local/bin/gunicorn -c /opt/paperless/gunicorn.conf.py paperless.asgi:application

Paperless will continue to work with WSGI, but you will not get any status notifications.

- Paperless now offers suggestions for tags, correspondents and types on the document detail page.

- Added an interactive easy install script that automatically downloads, configures and starts paperless with docker.

- Official support for Python 3.9.

- Other changes and fixes

- Adjusted the default parallelization settings to run more than one task in parallel on systems with 4 or less cores. This addresses issues with paperless not consuming any new files when other tasks are running.
- Fixed a rare race condition that would cause paperless to process incompletely written files when using the upload on the dashboard.
- The document classifier no longer issues warnings and errors when auto matching is not used at all.
- Better icon for document previews.
- Better info section in the side bar.
- Paperless no longer logs to the database. Instead, logs are written to rotating log files. This solves many "database is locked" issues on Raspberry Pi, especially when SQLite is used.
- By default, log files are written to `PAPERLESS_DATA_DIR/log/`. Logging settings can be adjusted with `PAPERLESS_LOGGING_DIR`, `PAPERLESS_LOGROTATE_MAX_SIZE` and `PAPERLESS_LOGROTATE_MAX_BACKUPS`.

### paperless-ng 1.0.0

Nothing special about this release, but since there are relatively few bug reports coming in, I think that this is reasonably stable.

- Document export
- The document exporter has been rewritten to support updating an already existing export in place. This enables incremental backups with `rsync`.
- The document exporter supports naming exported files according to `PAPERLESS_FILENAME_FORMAT`.
- The document exporter locks the media directory and the database during execution to ensure that the resulting export is consistent.
- See the updated documentation for more details.
- Other changes and additions
- Added a language selector to the settings.
- Added date format options to the settings.
- Range selection with shift clicking is now possible in the document list.
- Filtering correspondent, type and tag management pages by name.
- Focus "Name" field in dialogs by default.

### paperless-ng 0.9.14

Starting with this version, releases are getting built automatically. This release also comes with changes on how to install and update paperless.

- Paperless now uses GitHub Actions to make releases and build docker images.
- Docker images are available for amd64, armhf, and aarch64.
- When you pull an image from Docker Hub, Docker will automatically select the correct image for you.
- Changes to docker installations and updates
- The `-dockerfiles.tar.xz` release archive is gone. Instead, simply grab the docker files from `/docker/compose` in the repository if you wish to install paperless by pulling from the hub.
- The docker compose files in `/docker/compose` were changed to always use the `latest` version automatically. In order to do further updates, simply do a `docker-compose pull`. The documentation has been updated.
- The docker compose files were changed to restart paperless on system boot only if it was running before shutdown.
- Documentation of the docker-compose files about what they do.
- Changes to bare metal installations and updates
- The release archive is built exactly like before. However, the release now comes with already compiled translation messages and collected static files. Therefore, the update steps `compilemessages` and `collectstatic` are now obsolete.
- Other changes
- A new configuration option `PAPERLESS_IGNORE_DATES` was added by jayme-github. This can be used to instruct paperless to ignore certain dates (such as your date of birth) when guessing the date from the document content. This was actually introduced in 0.9.12, I just forgot to mention it in the changelog.
- The filter drop downs now display selected entries on top of all other entries.
- The PostgreSQL client now supports setting an explicit `sslmode` to force encryption of the connection to PostgreSQL.
- The docker images now come with `jbig2enc`, which is a lossless image encoder for PDF documents and decreases the size of certain PDF/A documents.
- When using any of the manual matching algorithms, paperless now logs messages about when and why these matching algorithms matched.
- The default settings for parallelization in paperless were adjusted to always leave one CPU core free.
- Added an option to the frontend to choose which method to use for displaying PDF documents.
- Fixes
- An issue with the tika parser not picking up files from the consumption directory was fixed.
- A couple changes to the dark mode and fixes to several other layout issues.
- An issue with the drop downs for correspondents, tags and types not properly supporting filtering with special characters was fixed.
- Fixed an issue with filenames of downloaded files: Dates where off by one day due to timezone issues.
- Searching will continue to work even when the index returns non-existing documents. This resulted in "Document does not exist" errors before. Instead, a warning is logged, indicating the issue.
- An issue with the consumer crashing when invalid regular expression were used was fixed.

### paperless-ng 0.9.13

- Fixed an issue with Paperless not starting due to the new Tika integration when `USERMAP_UID` and `USERMAP_GID` was used in the `docker-compose.env` file.

### paperless-ng 0.9.12

- Paperless localization
- Thanks to the combined efforts of many users, Paperless is now available in English, Dutch, French and German.
- Thanks to Jo Vandeginste, Paperless has optional support for Office documents such as .docx, .doc, .odt and more.
- See the Tika settings on how to enable this feature. This feature requires two additional services (one for parsing Office documents and metadata extraction and another for converting Office documents to PDF), and is therefore not enabled on default installations.
- As with all other documents, paperless converts Office documents to PDF and stores both the original as well as the archived PDF.
- Dark mode
- Thanks to Michael Shamoon, paperless now has a dark mode. Configuration is available in the settings.
- Other changes and additions
- The PDF viewer now uses a local copy of some dependencies instead of fetching them from the internet. Thanks to slorenz.
- Revamped search bar styling thanks to Michael Shamoon.
- Sorting in the document list by clicking on table headers.
- A button was added to the document detail page that assigns a new ASN to a document.
- Form field validation: When providing invalid input in a form (such as a duplicate ASN or no name), paperless now has visual indicators and clearer error messages about what's wrong.
- Paperless disables buttons with network actions (such as save and delete) when a network action is active. This indicates that something is happening and prevents double clicking.
- When using "Save & next", the title field is focussed automatically to better support keyboard editing.
- E-Mail: Added filter rule parameters to allow inline attachments (watch out for mails with inlined images!) and attachment filename filters with wildcards.
- Support for remote user authentication thanks to Michael Shamoon. This is useful for hiding Paperless behind single sign on applications such as authelia.
- "Clear filters" has been renamed to "Reset filters" and now correctly restores the default filters on saved views. Thanks to Michael Shamoon
- Fixes
- Paperless was unable to save views when "Not assigned" was chosen in one of the filter dropdowns.
- Clearer error messages when pre and post consumption scripts do not exist.
- The post consumption script is executed later in the consumption process. Before the change, an ID was passed to the script referring to a document that did not yet exist in the database.

### paperless-ng 0.9.11

- Fixed an issue with the docker image not starting at all due to a configuration change of the web server.

### paperless-ng 0.9.10

- Bulk editing
- Thanks to Michael Shamoon, we've got a new interface for the bulk editor.
- There are some configuration options in the settings to alter the behavior.
- Other changes and additions
- Thanks to zjean, paperless now publishes a webmanifest, which is useful for adding the application to home screens on mobile devices.
- The Paperless-ng logo now navigates to the dashboard.
- Filter for documents that don't have any correspondents, types or tags assigned.
- Tags, types and correspondents are now sorted case insensitive.
- Lots of preparation work for localization support.
- Fixes
- Added missing dependencies for Raspberry Pi builds.
- Fixed an issue with plain text file consumption: Thumbnail generation failed due to missing fonts.
- An issue with the search index reporting missing documents after bulk deletes was fixed.
- Issue with the tag selector not clearing input correctly.
- The consumer used to stop working when encountering an incomplete classifier model file.

Note

The bulk delete operations did not update the search index. Therefore, documents that you deleted remained in the index and caused the search to return messages about missing documents when searching. Further bulk operations will properly update the index.

However, this change is not retroactive: If you used the delete method of the bulk editor, you need to reindex your search index by running the management command `document_index` with the argument `reindex`.

### paperless-ng 0.9.9

Christmas release!

- Bulk editing
- Paperless now supports bulk editing.
- The following operations are available: Add and remove correspondents, tags, document types from selected documents, as well as mass-deleting documents.
- We've got a more fancy UI in the works that makes these features more accessible, but that's not quite ready yet.
- Searching
- Paperless now supports searching for similar documents ("More like this") both from the document detail page as well as from individual search results.
- A search score indicates how well a document matches the search query, or how similar a document is to a given reference document.
- Other additions and changes
- Clarification in the UI that the fields "Match" and "Is insensitive" are not relevant for the Auto matching algorithm.
- New select interface for tags, types and correspondents allows filtering. This also improves tag selection. Thanks again to Michael Shamoon!
- Page navigation controls for the document viewer, thanks to Michael Shamoon.
- Layout changes to the small cards document list.
- The dashboard now displays the username (or full name if specified in the admin) on the dashboard.
- Fixes
- An error that caused the document importer to crash was fixed.
- An issue with changes not being possible when `PAPERLESS_COOKIE_PREFIX` is used was fixed.
- The date selection filters now allow manual entry of dates.
- Feature Removal
- Most of the guesswork features have been removed. Paperless no longer tries to extract correspondents and tags from file names.

### paperless-ng 0.9.8

This release addresses two severe issues with the previous release.

- The delete buttons for document types, correspondents and tags were not working.
- The document section in the admin was causing internal server errors (500).

### paperless-ng 0.9.7

- Front end
- Thanks to the hard work of Michael Shamoon, paperless now comes with a much more streamlined UI for filtering documents.
- Michael Shamoon replaced the document preview with another component. This should fix compatibility with Safari browsers.
- Added buttons to the management pages to quickly show all documents with one specific tag, correspondent, or title.
- Paperless now stores your saved views on the server and associates them with your user account. This means that you can access your views on multiple devices and have separate views for different users. You will have to recreate your views.
- The GitHub and documentation links now open in new tabs/windows. Thanks to rYR79435.
- Paperless now generates default saved view names when saving views with certain filter rules.
- Added a small version indicator to the front end.
- Other additions and changes
- The new filename format field `{tag_list}` inserts a list of tags into the filename, separated by comma.
- The `document_retagger` no longer removes inbox tags or tags without matching rules.
- The new configuration option `PAPERLESS_COOKIE_PREFIX` allows you to run multiple instances of paperless on different ports. This option enables you to be logged in into multiple instances by specifying different cookie names for each instance.
- Fixes
- Sometimes paperless would assign dates in the future to newly consumed documents.
- The filename format fields `{created_month}` and `{created_day}` now use a leading zero for single digit values.
- The filename format field `{tags}` can no longer be used without arguments.
- Paperless was not able to consume many images (especially images from mobile scanners) due to missing DPI information. Paperless now assumes A4 paper size for PDF generation if no DPI information is present.
- Documents with empty titles could not be opened from the table view due to the link being empty.
- Fixed an issue with filenames containing special characters such as `:` not being accepted for upload.
- Fixed issues with thumbnail generation for plain text files.

### paperless-ng 0.9.6

This release focusses primarily on many small issues with the UI.

- Front end
- Paperless now has proper window titles.
- Fixed an issue with the small cards when more than 7 tags were used.
- Navigation of the "Show all" links adjusted. They navigate to the saved view now, if available in the sidebar.
- Some indication on the document lists that a filter is active was added.
- There's a new filter to filter for documents that do not have a certain tag.
- The file upload box now shows upload progress.
- The document edit page was reorganized.
- The document edit page shows various information about a document.
- An issue with the height of the preview was fixed.
- Table issues with too long document titles fixed.
- API
- The API now serves file names with documents.
- The API now serves various metadata about documents.
- API documentation updated.
- Other
- Fixed an issue with the docker image when a non-standard PostgreSQL port was used.
- The docker image was trying check for installed languages before actually installing them.
- `FILENAME_FORMAT` placeholder for document types.
- The filename formatter is now less restrictive with file names and tries to conserve the original correspondents, types and titles as much as possible.
- The filename formatter does not include the document ID in filenames anymore. It will rather append `_01`, `_02`, etc when it detects duplicate filenames.

Note

The changes to the filename format will apply to newly added documents and changed documents. If you want all files to reflect these changes, execute the `document_renamer` management command.

### paperless-ng 0.9.5

This release concludes the big changes I wanted to get rolled into paperless. The next releases before 1.0 will focus on fixing issues, primarily.

- OCR
- Paperless now uses OCRmyPDF to perform OCR on documents. It still uses tesseract under the hood, but the PDF parser of Paperless has changed considerably and will behave different for some documents.
- OCRmyPDF creates archived PDF/A documents with embedded text that can be selected in the front end.
- Paperless stores archived versions of documents alongside with the originals. The originals can be accessed on the document edit page. If available, a dropdown menu will appear next to the download button.
- Many of the configuration options regarding OCR have changed. See OCR settings for details.
- Paperless no longer guesses the language of your documents. It always uses the language that you specified with `PAPERLESS_OCR_LANGUAGE`. Be sure to set this to the language the majority of your documents are in. Multiple languages can be specified, but that requires more CPU time.
- The management command `document_archiver` can be used to create archived versions for already existing documents.
- Tags from consumption folder.
- Thanks to jayme-github, paperless now consumes files from sub folders in the consumption folder and is able to assign tags based on the sub folders a document was found in. This can be configured with `PAPERLESS_CONSUMER_RECURSIVE` and `PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS`.
- API
- The API now offers token authentication.
- The endpoint for uploading documents now supports specifying custom titles, correspondents, tags and types. This can be used by clients to override the default behavior of paperless. See POSTing documents.
- The document endpoint of API now serves documents in this form:
  - correspondents, document types and tags are referenced by their ID in the fields `correspondent`, `document_type` and `tags`. The `*_id` versions are gone. These fields are read/write.
  - paperless does not serve nested tags, correspondents or types anymore.
- Front end
- Paperless does some basic caching of correspondents, tags and types and will only request them from the server when necessary or when entirely reloading the page.
- Document list fetching is about 10%-30% faster now, especially when lots of tags/correspondents are present.
- Some minor improvements to the front end, such as document count in the document list, better highlighting of the current page, and improvements to the filter behavior.
- Fixes:
- A bug with the generation of filenames for files with unsupported types caused the exporter and document saving to crash.
- Mail handling no longer exits entirely when encountering errors. It will skip the account/rule/message on which the error occurred.
- Assigning correspondents from mail sender names failed for very long names. Paperless no longer assigns correspondents in these cases.

### paperless-ng 0.9.4

- Searching:
- Paperless now supports searching by tags, types and dates and correspondents. In order to have this applied to your existing documents, you need to perform a `document_index reindex` management command (see document search index) that adds the data to the search index. You only need to do this once, since the schema of the search index changed. Paperless keeps the index updated after that whenever something changes.
- Paperless now has spelling corrections ("Did you mean") for miss-typed queries.
- The documentation contains information about the query syntax.
- Front end:
- Clickable tags, correspondents and types allow quick filtering for related documents.
- Saved views are now editable.
- Preview documents directly in the browser.
- Navigation from the dashboard to saved views.
- Fixes:
- A severe error when trying to use post consume scripts.
- An error in the consumer that cause invalid messages of missing files to show up in the log.
- The documentation now contains information about bare metal installs and a section about how to setup the development environment.

### paperless-ng 0.9.3

- Setting `PAPERLESS_AUTO_LOGIN_USERNAME` replaces `PAPERLESS_DISABLE_LOGIN`. You have to specify your username.
- Added a simple sanity checker that checks your documents for missing or orphaned files, files with wrong checksums, inaccessible files, and documents with empty content.
- It is no longer possible to encrypt your documents. For the time being, paperless will continue to operate with already encrypted documents.
- Fixes:
- Paperless now uses inotify again, since the watchdog was causing issues which I was not aware of.
- Issue with the automatic classifier not working with only one tag.
- A couple issues with the search index being opened to eagerly.
- Added lots of tests for various parts of the application.

### paperless-ng 0.9.2

- Major changes to the front end (colors, logo, shadows, layout of the cards, better mobile support)
- Paperless now uses mime types and libmagic detection to determine if a file type is supported and which parser to use. Removes all file type checks that where present in MANY different places in paperless.
- Mail consumer now correctly consumes documents even when their content type was not set correctly. (i.e. PDF documents with content type `application/octet-stream`)
- Basic sorting of mail rules added
- Much better admin for mail rule editing.
- Docker entrypoint script awaits the database server if it is configured.
- Disabled editing of logs.
- New setting `PAPERLESS_OCR_PAGES` limits the tesseract parser to the first n pages of scanned documents.
- Fixed a bug where tasks with too long task names would not show up in the admin.

### paperless-ng 0.9.1

- Moved documentation of the settings to the actual documentation.
- Updated release script to force the user to choose between SQLite and PostgreSQL. This avoids confusion when upgrading from paperless.

### paperless-ng 0.9.0

- Deprecated: GnuPG. See this note on the state of GnuPG in paperless-ng. This features will most likely be removed in future versions.
- Added: New frontend. Features:
- Single page application: It's much more responsive than the django admin pages.
- Dashboard. Shows recently scanned documents, or todo notes, or other documents at wish. Allows uploading of documents. Shows basic statistics.
- Better document list with multiple display options.
- Full text search with result highlighting, auto completion and scoring based on the query. It uses a document search index in the background.
- Saveable filters.
- Better log viewer.
- Added: Document types. Assign these to documents just as correspondents. They may be used in the future to perform automatic operations on documents depending on the type.
- Added: Inbox tags. Define an inbox tag and it will automatically be assigned to any new document scanned into the system.
- Added: Automatic matching. A new matching algorithm that automatically assigns tags, document types and correspondents to your documents. It uses a neural network trained on your data.
- Added: Archive serial numbers. Assign these to quickly find documents stored in physical binders.
- Added: Enabled the internal user management of django. This isn't really a multi user solution, however, it allows more than one user to access the website and set some basic permissions / renew passwords.
- Modified [breaking]: All new mail consumer with customizable filters, actions and multiple account support. Replaces the old mail consumer. The new mail consumer needs different configuration but can be configured to act exactly like the old consumer.
- Modified: Changes to the consumer:
- Now uses the excellent watchdog library that should make sure files are discovered no matter what the platform is.
- The consumer now uses a task scheduler to run consumption processes in parallel. This means that consuming many documents should be much faster on systems with many cores.
- Concurrency is controlled with the new settings `PAPERLESS_TASK_WORKERS` and `PAPERLESS_THREADS_PER_WORKER`. See TODO for details on concurrency.
- The consumer no longer blocks the database for extended periods of time.
- An issue with tesseract running multiple threads per page and slowing down the consumer was fixed.
- Modified [breaking]: REST Api changes:
- New filters added, other filters removed (case sensitive filters, slug filters)
- Endpoints for thumbnails, previews and downloads replace the old `/fetch/` urls. Redirects are in place.
- Endpoint for document uploads replaces the old `/push` url. Redirects are in place.
- Foreign key relationships are now served as IDs, not as urls.
- Modified [breaking]: PostgreSQL:
- If `PAPERLESS_DBHOST` is specified in the settings, paperless uses PostgreSQL instead of SQLite. Username, database and password all default to `paperless` if not specified.
- Modified [breaking]: document_retagger management command rework. See Document retagger for details. Replaces `document_correspondents` management command.
- Removed [breaking]: Reminders.
- Removed: All customizations made to the django admin pages.
- Removed [breaking]: The docker image no longer supports SSL. If you want to expose paperless to the internet, hide paperless behind a proxy server that handles SSL requests.
- Internal changes: Mostly code cleanup, including:
- Rework of the code of the tesseract parser. This is now a lot cleaner.
- Rework of the filename handling code. It was a mess.
- Fixed some issues with the document exporter not exporting all documents when encountering duplicate filenames.
- Added a task scheduler that takes care of checking mail, training the classifier, maintaining the document search index and consuming documents.
- Updated dependencies. Now uses Pipenv all around.
- Updated Dockerfile and docker-compose. Now uses `supervisord` to run everything paperless-related in a single container.
- Settings:
- `PAPERLESS_FORGIVING_OCR` is now default and gone. Reason: Even if `langdetect` fails to detect a language, tesseract still does a very good job at ocr'ing a document with the default language. Certain language specifics such as umlauts may not get picked up properly.
- The presence of `PAPERLESS_DBHOST` now determines whether to use PostgreSQL or SQLite.
- `PAPERLESS_OCR_THREADS` is gone and replaced with `PAPERLESS_TASK_WORKERS` and `PAPERLESS_THREADS_PER_WORKER`. Refer to the config example for details.
- `PAPERLESS_OPTIMIZE_THUMBNAILS` allows you to disable or enable thumbnail optimization. This is useful on less powerful devices.
- Many more small changes here and there. The usual stuff.

## Paperless

### 2.7.0

- syntonym submitted a pull request to catch IMAP connection errors #475.
- Stéphane Brunner added `psycopg2` to the Pipfile #489. He also fixed a syntax error in `docker-compose.yml.example` #488 and added DjangoQL, which allows a litany of handy search functionality #492.
- CkuT and JOKer hacked out a simple, but super-helpful optimisation to how the thumbnails are served up, improving performance considerably #481.
- tsia added a few fields to the tags REST API. #483.
- Brian Cribbs improved the documentation to help people using Paperless over NFS #484.
- Brendan M. Sleight updated the documentation to include a note for setting the `DEBUG` value. The `paperless.conf.example` file was also updated to mirror the project defaults.

### 2.6.1

- We now have a logo, complete with a favicon :-)
- Removed some problematic tests.
- Fix the docker-compose example config to include a shared consume volume so that using the push API will work for users of the Docker install. Thanks to Colin Frei for fixing this in #466.
- khrise submitted a pull request to include the `added` property to the REST API #471.

### 2.6.0

- Allow an infinite number of logs to be deleted. Thanks to Ulli for noting the problem in #433.
- Fix the `RecentCorrespondentsFilter` correspondents filter that was added in 2.4 to play nice with the defaults. Thanks to tsia and Sblop who pointed this out. #423.
- Updated dependencies to include (among other things) a security patch to requests.
- Fix text in sample data for tests so that the language guesser stops thinking that everything is in Catalan because we had Lorem ipsum in there.
- Tweaked the gunicorn sample command to use filesystem paths instead of Python paths. #441
- Added pretty colour boxes next to the hex values in the Tags section, thanks to a pull request from Joshua Taillon #442.
- Added a `.editorconfig` file to better specify coding style.
- Joshua Taillon also added some logic to tie Paperless' date guessing logic into how it parses file names on import. #440

### 2.5.0

- New dependency: Paperless now optimises thumbnail generation with optipng, so you'll need to install that somewhere in your PATH or declare its location in `PAPERLESS_OPTIPNG_BINARY`. The Docker image has already been updated on the Docker Hub, so you just need to pull the latest one from there if you're a Docker user.
- "Login free" instances of Paperless were breaking whenever you tried to edit objects in the admin: adding/deleting tags or correspondents, or even fixing spelling. This was due to the "user hack" we were applying to sessions that weren't using a login, as that hack user didn't have a valid id. The fix was to attribute the first user id in the system to this hack user. #394
- A problem in how we handle slug values on Tags and Correspondents required a few changes to how we handle this field #393:
- Slugs are no longer editable. They're derived from the name of the tag or correspondent at save time, so if you wanna change the slug, you have to change the name, and even then you're restricted to the rules of the `slugify()` function. The slug value is still visible in the admin though.
- I've added a migration to go over all existing tags & correspondents and rewrite the `.slug` values to ones conforming to the `slugify()` rules.
- The consumption process now uses the same rules as `.save()` in determining a slug and using that to check for an existing tag/correspondent.
- An annoying bug in the date capture code was causing some bogus dates to be attached to documents, which in turn busted the UI. Thanks to Andrew Peng for reporting this. #414.
- A bug in the Dockerfile meant that Tesseract language files weren't being installed correctly. euri10 was quick to provide a fix: #406, #413.
- Document consumption is now wrapped in a transaction as per an old ticket #262.
- The `get_date()` functionality of the parsers has been consolidated onto the `DocumentParser` class since much of that code was redundant anyway.

### 2.4.0

- A new set of actions are now available thanks to jonaswinkler's very first pull request! You can now do nifty things like tag documents in bulk, or set correspondents in bulk. #405
- The import/export system is now a little smarter. By default, documents are tagged as `unencrypted`, since exports are by their nature unencrypted. It's now in the import step that we decide the storage type. This allows you to export from an encrypted system and import into an unencrypted one, or vice-versa.
- The migration history has been slightly modified to accommodate PostgreSQL users. Additionally, you can now tell paperless to use PostgreSQL simply by declaring `PAPERLESS_DBUSER` in your environment. This will attempt to connect to your Postgres database without a password unless you also set `PAPERLESS_DBPASS`.
- A bug was found in the REST API filter system that was the result of an update of django-filter some time ago. This has now been patched in #412. Thanks to thepill for spotting it!

### 2.3.0

- Support for consuming plain text & markdown documents was added by Joshua Taillon! This was a long-requested feature, and it's addition is likely to be greatly appreciated by the community: #395 Thanks also to David Martin for his assistance on the issue.
- dubit0 found & fixed a bug that prevented management commands from running before we had an operational database: #396
- Joshua also added a simple update to the thumbnail generation process to improve performance: #399
- As his last bit of effort on this release, Joshua also added some code to allow you to view the documents inline rather than download them as an attachment. #400
- Finally, ahyear found a slip in the Docker documentation and patched it. #401

### 2.2.1

- Kyle Lucy reported a bug quickly after the release of 2.2.0 where we broke the `DISABLE_LOGIN` feature: #392.

### 2.2.0

- Thanks to dadosch, Wolfgang Mader, and Tim Brooks this is the first version of Paperless that supports Django 2.0! As a result of their hard work, you can now also run Paperless on Python 3.7 as well: #386 & #390.
- Stéphane Brunner added a few lines of code that made tagging interface a lot easier on those of us with lots of different tags: #391.
- Kilian Koeltzsch noticed a bug in how we capture & automatically create tags, so that's fixed now too: #384.
- erikarvstedt tweaked the behaviour of the test suite to be better behaved for packaging environments: #383.
- Lukasz Soluch added CORS support to make building a new Javascript-based front-end cleaner & easier: #387.

### 2.1.0

- Enno Lohmeier added three simple features that make Paperless a lot more user (and developer) friendly:
- There's a new search box on the front page: #374.
- The correspondents & tags pages now have a column showing the number of relevant documents: #375.
- The Dockerfile has been tweaked to build faster for those of us who are doing active development on Paperless using the Docker environment: #376.
- You now also have the ability to customise the interface to your heart's content by creating a file called `overrides.css` and/or `overrides.js` in the root of your media directory. Thanks to Mark McFate for this idea: #371 (Not supported by Paperless-ngx)

### 2.0.0

This is a big release as we've changed a core-functionality of Paperless: we no longer encrypt files with GPG by default.

The reasons for this are many, but it boils down to that the encryption wasn't really all that useful, as files on-disk were still accessible so long as you had the key, and the key was most typically stored in the config file. In other words, your files are only as safe as the `paperless` user is. In addition to that, the contents of the documents were never encrypted, so important numbers etc. were always accessible simply by querying the database. Still, it was better than nothing, but the consensus from users appears to be that it was more an annoyance than anything else, so this feature is now turned off unless you explicitly set a passphrase in your config file.

### Migrating from 1.x

Encryption isn't gone, it's just off for new users. So long as you have `PAPERLESS_PASSPHRASE` set in your config or your environment, Paperless should continue to operate as it always has. If however, you want to drop encryption too, you only need to do two things:

1. Run `./manage.py migrate && ./manage.py change_storage_type gpg unencrypted`. This will go through your entire database and Decrypt All The Things.
2. Remove `PAPERLESS_PASSPHRASE` from your `paperless.conf` file, or simply stop declaring it in your environment.

Special thanks to erikarvstedt, matthewmoto, and mcronce who did the bulk of the work on this big change.

### 1.4.0

- Quentin Dawans has refactored the document consumer to allow for some command-line options. Notably, you can now direct it to consume from a particular `--directory`, limit the `--loop-time`, set the time between mail server checks with `--mail-delta` or just run it as a one-off with `--one-shot`. See #305 & #313 for more information.
- Refactor the use of travis/tox/pytest/coverage into two files: `.travis.yml` and `setup.cfg`.
- Start generating requirements.txt from a Pipfile. I'll probably switch over to just using pipenv in the future.
- All for a alternative FreeBSD-friendly location for `paperless.conf`. Thanks to Martin Arendtsen who provided this (#322).
- Document consumption events are now logged in the Django admin events log. Thanks to CkuT for doing the legwork on this one and to Quentin Dawans & David Martin for helping to coordinate & work out how the feature would be developed.
- erikarvstedt contributed a pull request (#328) to add `--noreload` to the default server start process. This helps reduce the load imposed by the running webservice.
- Through some discussion on #253 and #323, we've removed a few of the hardcoded URL values to make it easier for people to host Paperless on a subdirectory. Thanks to Quentin Dawans and Kyle Lucy for helping to work this out.
- The clickable area for documents on the listing page has been increased to a more predictable space thanks to a glorious hack from erikarvstedt in #344.
- Strubbl noticed an annoying bug in the bash script wrapping the Docker entrypoint and fixed it with some very creating Bash skills: #352.
- You can now use the search field to find documents by tag thanks to thinkjk's first ever issue: #354.
- Inotify is now being used to detect additions to the consume directory thanks to some excellent work from erikarvstedt on #351

### 1.3.0

- You can now run Paperless without a login, though you'll still have to create at least one user. This is thanks to a pull-request from matthewmoto: #295. Note that logins are still required by default, and that you need to disable them by setting `PAPERLESS_DISABLE_LOGIN="true"` in your environment or in `/etc/paperless.conf`.
- Fix for #303 where sketchily-formatted documents could cause the consumer to break and insert half-records into the database breaking all sorts of things. We now capture the return codes of both `convert` and `unpaper` and fail-out nicely.
- Fix for additional date types thanks to input from Isaac and code from BastianPoe (#301).
- Fix for running migrations in the Docker container (#299). Thanks to Georgi Todorov for the fix (#300) and to Pit for the review.
- Fix for Docker cases where the issuing user is not UID 1000. This was a collaborative fix between Jeffrey Portman and Pit in #311 and #312 to fix #306.
- Patch the historical migrations to support MySQL's um, interesting way of handing indexes (#308). Thanks to Simon Taddiken for reporting the problem and helping me find where to fix it.

### 1.2.0

- New Docker image, now based on Alpine, thanks to the efforts of addadi and Pit. This new image is dramatically smaller than the Debian-based one, and it also has a new home on Docker Hub. A proper thank-you to Pit for hosting the image on his Docker account all this time, but after some discussion, we decided the image needed a more official-looking home.
- BastianPoe has added the long-awaited feature to automatically skip the OCR step when the PDF already contains text. This can be overridden by setting `PAPERLESS_OCR_ALWAYS=YES` either in your `paperless.conf` or in the environment. Note that this also means that Paperless now requires `libpoppler-cpp-dev` to be installed. Important: You'll need to run `pip install -r requirements.txt` after the usual `git pull` to properly update.
- BastianPoe has also contributed a monumental amount of work (#291) to solving #158: setting the document creation date based on finding a date in the document text.

### 1.1.0

- Fix for #283, a redirect bug which broke interactions with paperless-desktop. Thanks to chris-aeviator for reporting it.
- Addition of an optional new financial year filter, courtesy of David Martin #256
- Fixed a typo in how thumbnails were named in exports #285, courtesy of Dan Panzarella

### 1.0.0

- Upgrade to Django 1.11. You'll need to run ``pip install -r requirements.txt`` after the usual ``git pull`` to properly update.
- Replace the templatetag-based hack we had for document listing in favour of a slightly less ugly solution in the form of another template tag with less copypasta.
- Support for multi-word-matches for auto-tagging thanks to an excellent patch from ishirav #277.
- Fixed a CSS bug reported by Stefan Hagen that caused an overlapping of the text and checkboxes under some resolutions #272.
- Patched the Docker config to force the serving of static files. Credit for this one goes to dev-rke via #248.
- Fix file permissions during Docker start up thanks to Pit on #268.
- Date fields in the admin are now expressed as HTML5 date fields thanks to Lukas Winkler's issue #278

### 0.8.0

- Paperless can now run in a subdirectory on a host (`/paperless`), rather than always running in the root (`/`) thanks to maphy-psd's work on #255.

### 0.7.0

- Potentially breaking change: As per #235, Paperless will no longer automatically delete documents attached to correspondents when those correspondents are themselves deleted. This was Django's default behaviour, but didn't make much sense in Paperless' case. Thanks to Thomas Brueggemann and David Martin for their input on this one.
- Fix for #232 wherein Paperless wasn't recognising `.tif` files properly. Thanks to ayounggun for reporting this one and to Kusti Skytén for posting the correct solution in the GitHub issue.

### 0.6.0

- Abandon the shared-secret trick we were using for the POST API in favour of BasicAuth or Django session.
- Fix the POST API so it actually works. #236
- Breaking change: We've dropped the use of `PAPERLESS_SHARED_SECRET` as it was being used both for the API (now replaced with a normal auth) and form email polling. Now that we're only using it for email, this variable has been renamed to `PAPERLESS_EMAIL_SECRET`. The old value will still work for a while, but you should change your config if you've been using the email polling feature. Thanks to Joshua Gilman for all the help with this feature.

### 0.5.0

- Support for fuzzy matching in the auto-tagger & auto-correspondent systems thanks to Jake Gysland's patch #220.
- Modified the Dockerfile to prepare an export directory (#212). Thanks to combined efforts from Pit and Strubbl in working out the kinks on this one.
- Updated the import/export scripts to include support for thumbnails. Big thanks to CkuT for finding this shortcoming and doing the work to get it fixed in #224.
- All of the following changes are thanks to David Martin: * Bumped the dependency on pyocr to 0.4.7 so new users can make use of Tesseract 4 if they so prefer (#226).
- Fixed a number of issues with the automated mail handler (#227, #228)
- Amended the documentation for better handling of systemd service files (#229)
- Amended the Django Admin configuration to have nice headers (#230)

### 0.4.1

- Fix for #206 wherein the pluggable parser didn't recognise files with all-caps suffixes like `.PDF`

### 0.4.0

- Introducing reminders. See #199 for more information, but the short explanation is that you can now attach simple notes & times to documents which are made available via the API. Currently, the default API (basically just the Django admin) doesn't really make use of this, but Thomas Brueggemann over at Paperless Desktop has said that he would like to make use of this feature in his project.

### 0.3.6

- Fix for #200 (!!) where the API wasn't configured to allow updating the correspondent or the tags for a document.
- The `content` field is now optional, to allow for the edge case of a purely graphical document.
- You can no longer add documents via the admin. This never worked in the first place, so all I've done here is remove the link to the broken form.
- The consumer code has been heavily refactored to support a pluggable interface. Install a paperless consumer via pip and tell paperless about it with an environment variable, and you're good to go. Proper documentation is on its way.

### 0.3.5

- A serious facelift for the documents listing page wherein we drop the tabular layout in favour of a tiled interface.
- Users can now configure the number of items per page.
- Fix for #171: Allow users to specify their own `SECRET_KEY` value.
- Moved the dotenv loading to the top of settings.py
- Fix for #112: Added checks for binaries required for document consumption.

### 0.3.4

- Removal of django-suit due to a licensing conflict I bumped into in 0.3.3. Note that you can use Django Suit with Paperless, but only in a non-profit situation as their free license prohibits for-profit use. As a result, I can't bundle Suit with Paperless without conflicting with the GPL. Further development will be done against the stock Django admin.
- I shrunk the thumbnails a little 'cause they were too big for me, even on my high-DPI monitor.
- BasicAuth support for document and thumbnail downloads, as well as the Push API thanks to \@thomasbrueggemann. See #179.

### 0.3.3

- Thumbnails in the UI and a Django-suit -based face-lift courtesy of \@ekw!
- Timezone, items per page, and default language are now all configurable, also thanks to \@ekw.

### 0.3.2

- Fix for #172: defaulting ALLOWED_HOSTS to `["*"]` and allowing the user to set her own value via `PAPERLESS_ALLOWED_HOSTS` should the need arise.

### 0.3.1

- Added a default value for `CONVERT_BINARY`

### 0.3.0

- Updated to using django-filter 1.x
- Added some system checks so new users aren't confused by misconfigurations.
- Consumer loop time is now configurable for systems with slow writes. Just set `PAPERLESS_CONSUMER_LOOP_TIME` to a number of seconds. The default is 10.
- As per #44, we've removed support for `PAPERLESS_CONVERT`, `PAPERLESS_CONSUME`, and `PAPERLESS_SECRET`. Please use `PAPERLESS_CONVERT_BINARY`, `PAPERLESS_CONSUMPTION_DIR`, and `PAPERLESS_SHARED_SECRET` respectively instead.

### 0.2.0

- #150: The media root is now a variable you can set in `paperless.conf`.
- #148: The database location (sqlite) is now a variable you can set in `paperless.conf`.
- #146: Fixed a bug that allowed unauthorised access to the `/fetch` URL.
- #131: Document files are now automatically removed from disk when they're deleted in Paperless.
- #121: Fixed a bug where Paperless wasn't setting document creation time based on the file naming scheme.
- #81: Added a hook to run an arbitrary script after every document is consumed.
- #98: Added optional environment variables for ImageMagick so that it doesn't explode when handling Very Large Documents or when it's just running on a low-memory system. Thanks to Florian Harr for his help on this one.
- #89 Ported the auto-tagging code to correspondents as well. Thanks to Justin Snyman for the pointers in the issue queue.
- Added support for guessing the date from the file name along with the correspondent, title, and tags. Thanks to Tikitu de Jager for his pull request that I took forever to merge and to Pit for his efforts on the regex front.
- #94: Restored support for changing the created date in the UI. Thanks to Martin Honermeyer and Tim White for working with me on this.

### 0.1.1

- Potentially Breaking Change: All references to "sender" in the code have been renamed to "correspondent" to better reflect the nature of the property (one could quite reasonably scan a document before sending it to someone.)
- #67: Rewrote the document exporter and added a new importer that allows for full metadata retention without depending on the file name and modification time. A big thanks to Tikitu de Jager, Pit, Florian Jung, and Christopher Luu for their code snippets and contributing conversation that lead to this change.
- #20: Added unpaper support to help in cleaning up the scanned image before it's OCR'd. Thanks to Pit for this one.
- #71 Added (encrypted) thumbnails in anticipation of a proper UI.
- #68: Added support for using a proper config file at `/etc/paperless.conf` and modified the systemd unit files to use it.
- Refactored the Vagrant installation process to use environment variables rather than asking the user to modify `settings.py`.
- #44: Harmonise environment variable names with constant names.
- #60: Setup logging to actually use the Python native logging framework.
- #53: Fixed an annoying bug that caused `.jpeg` and `.JPG` images to be imported but made unavailable.

### 0.1.0

- Docker support! Big thanks to Wayne Werner, Brian Conn, and Tikitu de Jager for this one, and especially to Pit who spearheadded this effort.
- A simple REST API is in place, but it should be considered unstable.
- Cleaned up the consumer to use temporary directories instead of a single scratch space. (Thanks Pit)
- Improved the efficiency of the consumer by parsing pages more intelligently and introducing a threaded OCR process (thanks again Pit).
- #45: Cleaned up the logic for tag matching. Reported by darkmatter.
- #47: Auto-rotate landscape documents. Reported by Paul and fixed by Pit.
- #48: Matching algorithms should do so on a word boundary (darkmatter)
- #54: Documented the re-tagger (zedster)
- #57: Make sure file is preserved on import failure (darkmatter)
- Added tox with pep8 checking

### 0.0.6

- Added support for parallel OCR (significant work from Pit)
- Sped up the language detection (significant work from Pit)
- Added simple logging

### 0.0.5

- Added support for image files as documents (png, jpg, gif, tiff)
- Added a crude means of HTTP POST for document imports
- Added IMAP mail support
- Added a re-tagging utility
- Documentation for the above as well as data migration

### 0.0.4

- Added automated tagging basted on keyword matching
- Cleaned up the document listing page
- Removed `User` and `Group` from the admin
- Added `pytz` to the list of requirements

### 0.0.3

- Added basic tagging

### 0.0.2

- Added language detection
- Added datestamps to `document_exporter`.
- Changed `settings.TESSERACT_LANGUAGE` to `settings.OCR_LANGUAGE`.

### 0.0.1

- Initial release