tag:github.com,2008:https://github.com/paperless-ngx/paperless-ngx/releases
Release notes from paperless-ngx
2026-05-05T16:06:00Z
tag:github.com,2008:Repository/458648791/v3.0.0-beta.rc1
2026-05-06T21:36:37Z
Paperless-ngx v3.0.0-beta.rc1
<h2>paperless-ngx 3.0.0-beta.rc1</h2>
<h3>Notable Changes</h3>
<ul>
<li>Feature: Paperless AI <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/10319" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/10319/hovercard">#10319</a>)</li>
<li>Feature: Remote OCR (Azure AI) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/10320" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/10320/hovercard">#10320</a>)</li>
<li>Feature: sharelink bundles <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11682" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11682/hovercard">#11682</a>)</li>
<li>Feature: document file versions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12061" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12061/hovercard">#12061</a>)</li>
<li>Feature: document parser plugin framework <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12294" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12294/hovercard">#12294</a>)</li>
<li>Feature: Replace Whoosh with tantivy search backend <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12471" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12471/hovercard">#12471</a>)</li>
</ul>
<h3>Breaking Changes</h3>
<ul>
<li>[BREAKING] Feature: Simplify and improve the consumer <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11753" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11753/hovercard">#11753</a>)</li>
<li>[BREAKING] Chore: Remove support for document and thumbnail encryption <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11850" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11850/hovercard">#11850</a>)</li>
<li>[BREAKING] Chore: Remove old migrations and re-create them fresh for v3 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11854" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11854/hovercard">#11854</a>)</li>
<li>[BREAKING] Chore: Remove pybzar as a barcode reader <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12065" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12065/hovercard">#12065</a>)</li>
<li>[BREAKING] Chore: Refactor advanced database settings to allow more user configuration <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12165" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12165/hovercard">#12165</a>)</li>
<li>[BREAKING] Chore: Remove API v1 compatibility <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12166" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12166/hovercard">#12166</a>)</li>
<li>[BREAKING] Enhancement: saved view sharing <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12142" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12142/hovercard">#12142</a>)</li>
<li>[BREAKING] Chore: Drop support for Python 3.10 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12234" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12234/hovercard">#12234</a>)</li>
<li>[BREAKING] Chore: drop support for api versions < 9 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12284" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12284/hovercard">#12284</a>)</li>
<li>Breaking: Decouple OCR control from archive file control <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12448" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12448/hovercard">#12448</a>)</li>
<li>Breaking: Remove the positional arguments from the pre/post consume scripts <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12573" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12573/hovercard">#12573</a>)</li>
</ul>
<h3>Features / Enhancements</h3>
<ul>
<li>Feature: move to trash action for workflows <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JanKleine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JanKleine">@JanKleine</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11176" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11176/hovercard">#11176</a>)</li>
<li>Feature: password removal action <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11656" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11656/hovercard">#11656</a>)</li>
<li>Feature: password removal workflow action <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11665" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11665/hovercard">#11665</a>)</li>
<li>Enhancement: Add 'any of' workflow trigger filters <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11683" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11683/hovercard">#11683</a>)</li>
<li>Fixhancement: improve ASN handling with PDF operations <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11689" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11689/hovercard">#11689</a>)</li>
<li>Tweakhancement: use anchor element for management list quick filter buttons <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11692" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11692/hovercard">#11692</a>)</li>
<li>Enhancement: Add support for app oidc <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/paulgessinger/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/paulgessinger">@paulgessinger</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11756" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11756/hovercard">#11756</a>)</li>
<li>Enhancement: allow duplicates with warnings, UI for discovery <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11815" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11815/hovercard">#11815</a>)</li>
<li>Enhancement: configurable SSO groups claim <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Gabgobie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Gabgobie">@Gabgobie</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11841" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11841/hovercard">#11841</a>)</li>
<li>Enhancement: support doc_id placeholder in workflow templates <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11847" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11847/hovercard">#11847</a>)</li>
<li>Enhancement: support select all for management lists <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11889" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11889/hovercard">#11889</a>)</li>
<li>Fixhancement: auto-queue llm index if needed <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11891" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11891/hovercard">#11891</a>)</li>
<li>Tweakhancement: display document id, with copy <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11896" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11896/hovercard">#11896</a>)</li>
<li>Enhancement: improve relative dates in date filter <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JanKleine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JanKleine">@JanKleine</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11899" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11899/hovercard">#11899</a>)</li>
<li>Enhancement: user control of doc details fields <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11906" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11906/hovercard">#11906</a>)</li>
<li>Enhancement: Add setting for default PDF Editor mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JanKleine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JanKleine">@JanKleine</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11927" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11927/hovercard">#11927</a>)</li>
<li>Feature: Enable users to customize date parsing via plugins <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11931" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11931/hovercard">#11931</a>)</li>
<li>Tweakhancement: tweak bulk delete text <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11967" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11967/hovercard">#11967</a>)</li>
<li>Enhancement: improve filter drop-down performance with virtual scrolling <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11973" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11973/hovercard">#11973</a>)</li>
<li>Enhancement: per-type object page sizing <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11977" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11977/hovercard">#11977</a>)</li>
<li>Enhancement: pngx pdf viewer <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12043" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12043/hovercard">#12043</a>)</li>
<li>Tweak: improve 2-digit year parsing <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12044" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12044/hovercard">#12044</a>)</li>
<li>Enhancement: consolidate management lists into document attributes section <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12045" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12045/hovercard">#12045</a>)</li>
<li>Enhancement: option to stop processing further mail rules <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12053" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12053/hovercard">#12053</a>)</li>
<li>Enhancment: Formatted filename for single document downloads <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JanKleine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JanKleine">@JanKleine</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12095" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12095/hovercard">#12095</a>)</li>
<li>Tweakhancement: reset to page 1 on reset filters <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12143" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12143/hovercard">#12143</a>)</li>
<li>Enhancement: prevent duplicate mail processing across rules <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12159" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12159/hovercard">#12159</a>)</li>
<li>Feature: Switch progress bar library to rich <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12169" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12169/hovercard">#12169</a>)</li>
<li>Enhancement: Transition sanity check to rich and improve output <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12182" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12182/hovercard">#12182</a>)</li>
<li>Enhancement: add version label filename placeholder <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JanKleine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JanKleine">@JanKleine</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12185" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12185/hovercard">#12185</a>)</li>
<li>Enhancement: Switch all indexing to use rich <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12193" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12193/hovercard">#12193</a>)</li>
<li>Enhancement: Improve the retagger output using rich <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12194" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12194/hovercard">#12194</a>)</li>
<li>Tweak: Ignore version documents for workflows, trigger updated on root when versions change <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12217" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12217/hovercard">#12217</a>)</li>
<li>Enhancement: version added workflow trigger <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12219" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12219/hovercard">#12219</a>)</li>
<li>Change: use explicit create instead of cloning for versions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12226" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12226/hovercard">#12226</a>)</li>
<li>Fixhancement: support version-specific edits <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12233" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12233/hovercard">#12233</a>)</li>
<li>Feature: Migrate import/export to rich progress <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12260" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12260/hovercard">#12260</a>)</li>
<li>Enhancement: Show more document details in merge dialog <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/svenstaro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/svenstaro">@svenstaro</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12271" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12271/hovercard">#12271</a>)</li>
<li>Enhancement: Make the StatusConsumer truly async <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12298" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12298/hovercard">#12298</a>)</li>
<li>Feature: Add progress information to the classifier training for a better ux <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12331" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12331/hovercard">#12331</a>)</li>
<li>Feature: Convert Tika parser to the plugin system <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12333" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12333/hovercard">#12333</a>)</li>
<li>Feature: Convert remote AI parser to plugin system <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12334" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12334/hovercard">#12334</a>)</li>
<li>Change: sort custom fields alphabetically by default <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12358" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12358/hovercard">#12358</a>)</li>
<li>Chore: Convert mail parser to plugin style <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12397" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12397/hovercard">#12397</a>)</li>
<li>Chore: Convert Tesseract parser to plugin style <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12403" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12403/hovercard">#12403</a>)</li>
<li>Enhancement: auto-hide the search bar on mobile <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12404" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12404/hovercard">#12404</a>)</li>
<li>Chore: Drop old signal and unneeded apps, transition to parser registry instead <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12405" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12405/hovercard">#12405</a>)</li>
<li>Fixhancement: default mail-created correspondent matching to exact <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12414" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12414/hovercard">#12414</a>)</li>
<li>Feature: Transition all checksums to use SHA256 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12432" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12432/hovercard">#12432</a>)</li>
<li>Tweakhancement: show file extension in StoragePath test <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12452" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12452/hovercard">#12452</a>)</li>
<li>Fixhancement: include sharelinks + bundles in export/import <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12479" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12479/hovercard">#12479</a>)</li>
<li>Enhancement: unify text search to use tantivy <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12485" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12485/hovercard">#12485</a>)</li>
<li>Security enhancement: allow opt-in blocking internal mail hosts <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12502" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12502/hovercard">#12502</a>)</li>
<li>Feature: Consumer logging correlation <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12510" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12510/hovercard">#12510</a>)</li>
<li>Enhancement: add view_global_statistics and view_system_status permissions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12530" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12530/hovercard">#12530</a>)</li>
<li>Enhancement: validate and sanitize uploaded logos <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12551" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12551/hovercard">#12551</a>)</li>
<li>Feature: Document fuzzy match improvements <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12579" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12579/hovercard">#12579</a>)</li>
<li>Feature: Tune SQLite default settings for increased speed <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12580" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12580/hovercard">#12580</a>)</li>
<li>Enhancement: add highlighting to title + content searches <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12593" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12593/hovercard">#12593</a>)</li>
<li>Tweak: remove stale index warning <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12616" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12616/hovercard">#12616</a>)</li>
<li>Feature: Allow monitoring access to tasks summary <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12624" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12624/hovercard">#12624</a>)</li>
<li>Feature: Redesign the task system <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12584" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12584/hovercard">#12584</a>)</li>
<li>Enhancement: new Tasks UI <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12614" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12614/hovercard">#12614</a>)</li>
<li>Enhancement: show small task summary in system status <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12634" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12634/hovercard">#12634</a>)</li>
<li>Tweakhancement: tweak tasks UI, make open doc an anchor <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12658" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12658/hovercard">#12658</a>)</li>
<li>Tweakhancement: make upload notification open an anchor link <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12659" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12659/hovercard">#12659</a>)</li>
<li>Enhancement: chat message document links <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12670" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12670/hovercard">#12670</a>)</li>
<li>Tweakhancement: localize some more task result messages <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12672" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12672/hovercard">#12672</a>)</li>
<li>Enhancement: Paperless-ngx v3 Logo <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12673" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12673/hovercard">#12673</a>)</li>
<li>Change: separate llm suggestions endpoint <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12675" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12675/hovercard">#12675</a>)</li>
<li>Tweakhancement: use fixed position instead of display none for printing <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12706" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12706/hovercard">#12706</a>)</li>
<li>Feature: Further reduce document importer memory usage <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12707" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12707/hovercard">#12707</a>)</li>
<li>Tweak: add icons to ai suggestion dropdown <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12708" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12708/hovercard">#12708</a>)</li>
<li>Fixhancement: include trashed documents in document exporter/importer <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JanKleine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JanKleine">@JanKleine</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12425" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12425/hovercard">#12425</a>)</li>
<li>Enhancement: Paperless-ngx v3 Logo <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12673" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12673/hovercard">#12673</a>)</li>
<li>Enhancement: saved view sharing <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12142" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12142/hovercard">#12142</a>)</li>
<li>Chore: separate actions from bulk edit endpoint <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12286" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12286/hovercard">#12286</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li>Performance: improve treenode inefficiencies <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11606" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11606/hovercard">#11606</a>)</li>
<li>Performance: pre-compress static files on ARM64 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11721" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11721/hovercard">#11721</a>)</li>
<li>Performance: faster statistics panel on dashboard <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Merinorus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Merinorus">@Merinorus</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11760" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11760/hovercard">#11760</a>)</li>
<li>Performance fix: use subqueries to improve object retrieval in large installs <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11950" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11950/hovercard">#11950</a>)</li>
<li>Performance: Improve exporter memory efficiency <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12236" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12236/hovercard">#12236</a>)</li>
<li>Performance: Further export memory improvements <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12273" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12273/hovercard">#12273</a>)</li>
<li>Lazy imports of the heavy AI modules <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12275" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12275/hovercard">#12275</a>)</li>
<li>Performance: Stream JSON during import for memory improvements <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12276" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12276/hovercard">#12276</a>)</li>
<li>Performance: support passing selection data with filtered document requests <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12300" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12300/hovercard">#12300</a>)</li>
<li>Performance: deprecate and remove usage of <code>all</code> in API results <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12309" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12309/hovercard">#12309</a>)</li>
<li>Performance: support bulk edit without id lists <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12355" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12355/hovercard">#12355</a>)</li>
<li>Performance: Increases workflow related M2M prefetching <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12618" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12618/hovercard">#12618</a>)</li>
<li>Performance: Resolves another N+1 query related to custom fields <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12617" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12617/hovercard">#12617</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: re-run ASN check after barcode detection <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11681" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11681/hovercard">#11681</a>)</li>
<li>Fix: use explicit order field for workflow actions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11781" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11781/hovercard">#11781</a>)</li>
<li>Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11811" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11811/hovercard">#11811</a>)</li>
<li>Fix: fix tag list horizontal scroll, again <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11839" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11839/hovercard">#11839</a>)</li>
<li>Fix: ensure css color-scheme for dark mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11855" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11855/hovercard">#11855</a>)</li>
<li>Fix: use correct field id for overrides <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11869" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11869/hovercard">#11869</a>)</li>
<li>Fix: Running management scripts under rootless could fail <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11870" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11870/hovercard">#11870</a>)</li>
<li>Fixhancement: change date calculation for 'this year' to include future documents <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11884" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11884/hovercard">#11884</a>)</li>
<li>Fix: extract all ids for nested tags <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11888" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11888/hovercard">#11888</a>)</li>
<li>Fix: fix broken docker create_classifier command in 2.20.6 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11965" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11965/hovercard">#11965</a>)</li>
<li>Fix: prevent infinite loading crash in mail component <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11978" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11978/hovercard">#11978</a>)</li>
<li>Fix: Handle an OOM kill of celery workers in the task handler <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12040" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12040/hovercard">#12040</a>)</li>
<li>Fix(dev): history causing infinite requests <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12059" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12059/hovercard">#12059</a>)</li>
<li>Fix: correct user dropdown button icon styling <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12092" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12092/hovercard">#12092</a>)</li>
<li>Fix: unify POSTs when toggling sidebar to prevent db lock <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12129" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12129/hovercard">#12129</a>)</li>
<li>Fix: pass api_base to OpenAIEmbedding <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12151" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12151/hovercard">#12151</a>)</li>
<li>Fix: correct page count by separating display vs collection sizes for tags <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12170" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12170/hovercard">#12170</a>)</li>
<li>Fixhancement: config option reset <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12176" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12176/hovercard">#12176</a>)</li>
<li>Fixhancement: show sequential + id version labels, fix padding <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12196" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12196/hovercard">#12196</a>)</li>
<li>Fix: correct doc version filename handling <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12223" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12223/hovercard">#12223</a>)</li>
<li>Fix: enforce path limit for db filename fields <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12235" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12235/hovercard">#12235</a>)</li>
<li>Fix: apply ordering after annotating tag document count <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12238" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12238/hovercard">#12238</a>)</li>
<li>Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cryptomilk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cryptomilk">@cryptomilk</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12239" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12239/hovercard">#12239</a>)</li>
<li>Fix: support string coercion in filepath jinja templates <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12244" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12244/hovercard">#12244</a>)</li>
<li>Fix (dev): Add saved view compatibility in API version 9 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12280" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12280/hovercard">#12280</a>)</li>
<li>Fix: prevent stale db filename during workflow actions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12289" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12289/hovercard">#12289</a>)</li>
<li>Fix: use effective content for matching and suggestion content <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12293" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12293/hovercard">#12293</a>)</li>
<li>Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12302" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12302/hovercard">#12302</a>)</li>
<li>Fix: Removes the double exec that prevented migrations from running <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12317" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12317/hovercard">#12317</a>)</li>
<li>Fixhancement: clear descendant selections in dropdown when parent toggled <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12326" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12326/hovercard">#12326</a>)</li>
<li>Fix: correct dropdown list active color in dark mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12328" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12328/hovercard">#12328</a>)</li>
<li>Fixhancement: only offer basic auth for appropriate requests <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12362" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12362/hovercard">#12362</a>)</li>
<li>Fix: Don't try to update the user when running as non-root <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12365" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12365/hovercard">#12365</a>)</li>
<li>Fix: fix file button hover color in dark mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12367" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12367/hovercard">#12367</a>)</li>
<li>Fix: remove pagination from document notes api spec <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12388" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12388/hovercard">#12388</a>)</li>
<li>Fix: avoid moving files if already moved <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12389" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12389/hovercard">#12389</a>)</li>
<li>Fix: Scope the workflow saves to prevent clobbering filename/archive_filename <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12390" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12390/hovercard">#12390</a>)</li>
<li>Fix: don't try to usermod/groupmod when non-root + update docs <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12391" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12391/hovercard">#12391</a>)</li>
<li>Fix: validate date CF value in serializer <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12410" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12410/hovercard">#12410</a>)</li>
<li>Fix: Respect workflow change_groups during consumption <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12431" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12431/hovercard">#12431</a>)</li>
<li>Fix: add fallback ordering for documents by id after created <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12440" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12440/hovercard">#12440</a>)</li>
<li>Fix: limit share link viewset actions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12461" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12461/hovercard">#12461</a>)</li>
<li>Fix: dont defer tag change application in workflows <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12478" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12478/hovercard">#12478</a>)</li>
<li>Fix: prevent duplicate parent tag IDs <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12522" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12522/hovercard">#12522</a>)</li>
<li>Fix: do not submit permissions for non-owners <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12571" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12571/hovercard">#12571</a>)</li>
<li>Fix: reject invalid requests to API notes endpoint <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ggouzi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ggouzi">@ggouzi</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12582" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12582/hovercard">#12582</a>)</li>
<li>Fixhancement: Exact custom field monetary exact searching <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12592" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12592/hovercard">#12592</a>)</li>
<li>Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ggouzi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ggouzi">@ggouzi</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12597" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12597/hovercard">#12597</a>)</li>
<li>Fix: relative added date check visibility <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12600" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12600/hovercard">#12600</a>)</li>
<li>Fix: Changes bare metal webserver to use uvloop <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12626" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12626/hovercard">#12626</a>)</li>
<li>Fix: correctly scope mail account enumeration <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12636" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12636/hovercard">#12636</a>)</li>
<li>Fix: Use FileResponse for file API responses <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12638" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12638/hovercard">#12638</a>)</li>
<li>Fix: use only allauth login/logout endpoints <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12639" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12639/hovercard">#12639</a>)</li>
<li>Fix: apply tag changes directly to document in db <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12664" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12664/hovercard">#12664</a>)</li>
<li>Fix: fix a minor pdf viewer uncaught error <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12669" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12669/hovercard">#12669</a>)</li>
<li>Fix: avoid unnecessary close_old_connections in Celery task dispatch <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12701" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12701/hovercard">#12701</a>)</li>
<li>Fix (dev): return empty list for non-positive search limit <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12703" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12703/hovercard">#12703</a>)</li>
<li>Fix (dev): resolve tantivy search-filtered documents in bulk edit <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12705" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12705/hovercard">#12705</a>)</li>
<li>Fix: Don't try to update the user when running as non-root <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12365" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12365/hovercard">#12365</a>)</li>
</ul>
<h3>Security</h3>
<ul>
<li>Chore: Manually upgrades allauth to resolve a security issue with it <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11853" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11853/hovercard">#11853</a>)</li>
<li>Security: prevent prototype pollution in frontend settings and list view <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12438" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12438/hovercard">#12438</a>)</li>
<li>Security: Sign the Celery pickled tasks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12504" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12504/hovercard">#12504</a>)</li>
<li>Security: Don't allow the example secret key as a secret key <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12630" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12630/hovercard">#12630</a>)</li>
</ul>
<h3>Maintenance</h3>
<ul>
<li>Chore: Switches to use prek in place of pre-commit <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12002" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12002/hovercard">#12002</a>)</li>
<li>Chore: Re-work CI into multiple workflows <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11719" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11719/hovercard">#11719</a>)</li>
<li>Chore: Build the ARM64 image using the native ARM64 runner <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11720" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11720/hovercard">#11720</a>)</li>
<li>Chore: upgrade to Angular v21 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11746" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11746/hovercard">#11746</a>)</li>
<li>Chore: upgrade to node v24 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11747" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11747/hovercard">#11747</a>)</li>
<li>Chore: Bulk backend updates <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11543" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11543/hovercard">#11543</a>)</li>
<li>Chore: remove deprecated Angular method @philipgullickson (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11919" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11919/hovercard">#11919</a>)</li>
<li>Chore: Http interceptors refactor @philipgullickson (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11923" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11923/hovercard">#11923</a>)</li>
<li>Chore: Fix further test flakiness <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11987" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11987/hovercard">#11987</a>)</li>
<li>Chore: Enable mypy checking in CI <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11991" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11991/hovercard">#11991</a>)</li>
<li>Chore: bump Angular to 21.1.3, ngx-ui-tour-ng-bootstrap to v18 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12015" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12015/hovercard">#12015</a>)</li>
<li>Chore: Optimizes the integer fields for choice types <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12057" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12057/hovercard">#12057</a>)</li>
<li>Chore: Pngx pdf viewer fixes <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12083" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12083/hovercard">#12083</a>)</li>
<li>Chore: Improve user migration path <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12232" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12232/hovercard">#12232</a>)</li>
<li>Chore: pytest style paperless tests <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12254" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12254/hovercard">#12254</a>)</li>
<li>Chore: update ESLint to v10 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12256" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12256/hovercard">#12256</a>)</li>
<li>Chore: Finish settings refactor <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12263" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12263/hovercard">#12263</a>)</li>
<li>Chore: Don't upload digests file as a zip <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12264" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12264/hovercard">#12264</a>)</li>
<li>Chore: mark document detail email action as deprecated <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12308" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12308/hovercard">#12308</a>)</li>
<li>Chore: Disables the system checks for management commands in tests and when unnecessary <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12332" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12332/hovercard">#12332</a>)</li>
<li>Chore: Reduce system status test times <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12354" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12354/hovercard">#12354</a>)</li>
<li>Chore: Instead of manual temporary directory management, use a context manager <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12430" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12430/hovercard">#12430</a>)</li>
<li>Chore: logger, response and template sanitization cleanup <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12439" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12439/hovercard">#12439</a>)</li>
<li>Chore: Better typed status manager messages <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12509" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12509/hovercard">#12509</a>)</li>
<li>Chore: Resolves some zizmor reported code scan findings <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12516" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12516/hovercard">#12516</a>)</li>
<li>Chore: address more zizmor flags <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12529" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12529/hovercard">#12529</a>)</li>
<li>Chore: Paginate the task listing <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12633" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12633/hovercard">#12633</a>)</li>
</ul>
<h3>Translations</h3>
<ul>
<li>New Crowdin translations by GitHub Action (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11627" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11627/hovercard">#11627</a>)</li>
<li>Feature: Indonesian translation @trismawan25 (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11641" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11641/hovercard">#11641</a>)</li>
</ul>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.15
2026-04-27T03:15:55Z
Paperless-ngx v2.20.15
<h2>paperless-ngx 2.20.15</h2>
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release addresses a security issue (<a title="GHSA-8c6x-pfjq-9gr7" href="https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-8c6x-pfjq-9gr7">GHSA-8c6x-pfjq-9gr7</a>) and is recommended for all users. Our sincere thank you to the community members who reported this.</p>
</div>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: use only allauth login/logout endpoints <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12639" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12639/hovercard">#12639</a>)</li>
<li>Fix: correctly scope mail account enumeration <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12636" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12636/hovercard">#12636</a>)</li>
<li>Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ggouzi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ggouzi">@ggouzi</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4285644672" data-permission-text="Title is private" data-url="https://github.com/paperless-ngx/paperless-ngx/issues/12597" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12597/hovercard" href="https://github.com/paperless-ngx/paperless-ngx/pull/12597">#12597</a>)</li>
<li>Fix: reject invalid requests to API notes endpoint <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ggouzi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ggouzi">@ggouzi</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4270757059" data-permission-text="Title is private" data-url="https://github.com/paperless-ngx/paperless-ngx/issues/12582" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12582/hovercard" href="https://github.com/paperless-ngx/paperless-ngx/pull/12582">#12582</a>)</li>
</ul>
<h3>All App Changes</h3>
<details>
<summary>4 changes</summary>
<ul>
<li>Fix: use only allauth login/logout endpoints <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12639" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12639/hovercard">#12639</a>)</li>
<li>Fix: correctly scope mail account enumeration <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12636" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12636/hovercard">#12636</a>)</li>
<li>Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4285644672" data-permission-text="Title is private" data-url="https://github.com/paperless-ngx/paperless-ngx/issues/12597" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12597/hovercard" href="https://github.com/paperless-ngx/paperless-ngx/pull/12597">#12597</a>)</li>
<li>Fix: reject invalid requests to API notes endpoint (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4270757059" data-permission-text="Title is private" data-url="https://github.com/paperless-ngx/paperless-ngx/issues/12582" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12582/hovercard" href="https://github.com/paperless-ngx/paperless-ngx/pull/12582">#12582</a>)</li>
</ul>
</details>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.14
2026-04-14T20:50:48Z
Paperless-ngx v2.20.14
<h2>paperless-ngx 2.20.14</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: do not submit permissions for non-owners <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12571" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12571/hovercard">#12571</a>)</li>
<li>Fix: prevent duplicate parent tag IDs <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12522" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12522/hovercard">#12522</a>)</li>
<li>Fix: dont defer tag change application in workflows <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12478" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12478/hovercard">#12478</a>)</li>
<li>Fix: limit share link viewset actions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12461" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12461/hovercard">#12461</a>)</li>
<li>Fix: add fallback ordering for documents by id after created <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12440" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12440/hovercard">#12440</a>)</li>
<li>Fixhancement: default mail-created correspondent matching to exact <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12414" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12414/hovercard">#12414</a>)</li>
<li>Fix: validate date CF value in serializer <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12410" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12410/hovercard">#12410</a>)</li>
</ul>
<h3>All App Changes</h3>
<details>
<summary>7 changes</summary>
<ul>
<li>Fix: do not submit permissions for non-owners <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12571" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12571/hovercard">#12571</a>)</li>
<li>Fix: prevent duplicate parent tag IDs <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12522" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12522/hovercard">#12522</a>)</li>
<li>Fix: dont defer tag change application in workflows <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12478" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12478/hovercard">#12478</a>)</li>
<li>Fix: limit share link viewset actions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12461" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12461/hovercard">#12461</a>)</li>
<li>Fix: add fallback ordering for documents by id after created <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12440" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12440/hovercard">#12440</a>)</li>
<li>Fixhancement: default mail-created correspondent matching to exact <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12414" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12414/hovercard">#12414</a>)</li>
<li>Fix: validate date CF value in serializer <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12410" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12410/hovercard">#12410</a>)</li>
</ul>
</details>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.13
2026-03-21T09:28:39Z
Paperless-ngx v2.20.13
<h2>paperless-ngx 2.20.13</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: suggest corrections only if visible results</li>
<li>Fix: require view permission for more-like search</li>
<li>Fix: validate document link targets</li>
<li>Fix: enforce permissions when attaching accounts to mail rules</li>
</ul>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.12
2026-03-20T23:47:00Z
Paperless-ngx v2.20.12
<h2>paperless-ngx 2.20.12</h2>
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release addresses a security issue (<a title="GHSA-96jx-fj7m-qh6x" href="https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-96jx-fj7m-qh6x">GHSA-96jx-fj7m-qh6x</a>) and is recommended for all users. Our sincere thank you to the community members who reported this.</p>
</div>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: Scope the workflow saves to prevent clobbering filename/archive_filename <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12390" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12390/hovercard">#12390</a>)</li>
<li>Fix: don't try to usermod/groupmod when non-root + update docs (#12365) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12391" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12391/hovercard">#12391</a>)</li>
<li>Fix: avoid moving files if already moved <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12389" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12389/hovercard">#12389</a>)</li>
<li>Fix: remove pagination from document notes api spec <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12388" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12388/hovercard">#12388</a>)</li>
<li>Fix: fix file button hover color in dark mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12367" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12367/hovercard">#12367</a>)</li>
<li>Fixhancement: only offer basic auth for appropriate requests <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12362" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12362/hovercard">#12362</a>)</li>
</ul>
<h3>All App Changes</h3>
<details>
<summary>5 changes</summary>
<ul>
<li>Fix: Scope the workflow saves to prevent clobbering filename/archive_filename <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stumpylog/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stumpylog">@stumpylog</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12390" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12390/hovercard">#12390</a>)</li>
<li>Fix: avoid moving files if already moved <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12389" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12389/hovercard">#12389</a>)</li>
<li>Fix: remove pagination from document notes api spec <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12388" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12388/hovercard">#12388</a>)</li>
<li>Fix: fix file button hover color in dark mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12367" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12367/hovercard">#12367</a>)</li>
<li>Fixhancement: only offer basic auth for appropriate requests <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12362" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12362/hovercard">#12362</a>)</li>
</ul>
</details>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.11
2026-03-16T01:12:04Z
Paperless-ngx v2.20.11
<h2>paperless-ngx 2.20.11</h2>
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release addresses a security issue (<a title="GHSA-59xh-5vwx-4c4q" href="https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-59xh-5vwx-4c4q">GHSA-59xh-5vwx-4c4q</a>) and is recommended for all users. Our sincere thank you to the community members who reported this.</p>
</div>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: correct dropdown list active color in dark mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12328" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12328/hovercard">#12328</a>)</li>
<li>Fixhancement: clear descendant selections in dropdown when parent toggled <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12326" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12326/hovercard">#12326</a>)</li>
<li>Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12302" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12302/hovercard">#12302</a>)</li>
<li>Fix: prevent stale db filename during workflow actions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12289" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12289/hovercard">#12289</a>)</li>
</ul>
<h3>All App Changes</h3>
<details>
<summary>4 changes</summary>
<ul>
<li>Fix: correct dropdown list active color in dark mode <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12328" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12328/hovercard">#12328</a>)</li>
<li>Fixhancement: clear descendant selections in dropdown when parent toggled <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12326" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12326/hovercard">#12326</a>)</li>
<li>Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12302" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12302/hovercard">#12302</a>)</li>
<li>Fix: prevent stale db filename during workflow actions <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12289" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12289/hovercard">#12289</a>)</li>
</ul>
</details>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.10
2026-03-04T19:28:12Z
Paperless-ngx v2.20.10
<h2>paperless-ngx 2.20.10</h2>
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release addresses a bug in v2.20.7 that affected some pre-existing storage path templates. Affected users can run the <a href="https://docs.paperless-ngx.com/administration/#renamer" rel="nofollow"><code>document_renamer</code></a> command to correct this after updating.</p>
</div>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: support string coercion in filepath jinja templates <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12244" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12244/hovercard">#12244</a>)</li>
<li>Fix: apply ordering after annotating tag document count <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12238" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12238/hovercard">#12238</a>)</li>
<li>Fix: enforce path limit for db filename fields <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12235" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12235/hovercard">#12235</a>)</li>
</ul>
<h3>All App Changes</h3>
<details>
<summary>3 changes</summary>
<ul>
<li>Fix: support string coercion in filepath jinja templates <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12244" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12244/hovercard">#12244</a>)</li>
<li>Fix: apply ordering after annotating tag document count <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12238" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12238/hovercard">#12238</a>)</li>
<li>Fix: enforce path limit for db filename fields <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12235" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12235/hovercard">#12235</a>)</li>
</ul>
</details>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.9
2026-02-28T10:18:11Z
Paperless-ngx v2.20.9
<h2>paperless-ngx 2.20.9</h2>
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release addresses a security issue (<a title="GHSA-386h-chg4-cfw9" href="https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-386h-chg4-cfw9">GHSA-386h-chg4-cfw9</a>) and is recommended for all users. Our sincere thank you to the community members who reported this.</p>
</div>
<h3>Bug Fixes</h3>
<ul>
<li>Fixhancement: config option reset <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12176" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12176/hovercard">#12176</a>)</li>
<li>Fix: correct page count by separating display vs collection sizes for tags <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12170" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12170/hovercard">#12170</a>)</li>
</ul>
<h3>All App Changes</h3>
<details>
<summary>2 changes</summary>
<ul>
<li>Fixhancement: config option reset <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12176" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12176/hovercard">#12176</a>)</li>
<li>Fix: correct page count by separating display vs collection sizes for tags <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/12170" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12170/hovercard">#12170</a>)</li>
</ul>
</details>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.8
2026-02-22T01:43:31Z
Paperless-ngx v2.20.8
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release addresses a security issue (<a title="GHSA-7qqc-wrcw-2fj9" href="https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-7qqc-wrcw-2fj9">GHSA-7qqc-wrcw-2fj9</a>) and is recommended for all users. Our sincere thank you to the community members who reported this.</p>
</div>
<h2>paperless-ngx 2.20.8</h2>
github-actions[bot]
tag:github.com,2008:Repository/458648791/v2.20.7
2026-02-16T16:59:50Z
Paperless-ngx v2.20.7
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This release addresses a security issue (<a title="GHSA-x395-6h48-wr8v" href="https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-x395-6h48-wr8v">GHSA-x395-6h48-wr8v</a>) and is recommended for all users. Our sincere thank you to the community members who reported this.</p>
</div>
<h2>paperless-ngx 2.20.7</h2>
<h3>Breaking</h3>
<ul>
<li>Filename template rendering now uses a restricted safe document context for storage paths. Templates relying on unexpected/undocumented document model properties may no longer render and will fall back to default filename formatting.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix: correct user dropdown button icon styling <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/issues/12092" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12092/hovercard">#12092</a>)</li>
<li>Fix: fix broken docker create_classifier command in 2.20.6 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/issues/11965" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11965/hovercard">#11965</a>)</li>
<li>Performance fix: use subqueries to improve object retrieval in large installs <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11950" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11950/hovercard">#11950</a>)</li>
</ul>
<h3>All App Changes</h3>
<details>
<summary>3 changes</summary>
<ul>
<li>Fix: correct user dropdown button icon styling <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/issues/12092" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/12092/hovercard">#12092</a>)</li>
<li>Fix: fix broken docker create_classifier command in 2.20.6 <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/issues/11965" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11965/hovercard">#11965</a>)</li>
<li>Performance fix: use subqueries to improve object retrieval in large installs <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shamoon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shamoon">@shamoon</a> (<a href="https://github.com/paperless-ngx/paperless-ngx/pull/11950" data-hovercard-type="pull_request" data-hovercard-url="/paperless-ngx/paperless-ngx/pull/11950/hovercard">#11950</a>)</li>
</ul>
</details>
github-actions[bot]