papra Release Notes
Last updated: Mar 14, 2026
- Feb 18, 2026
- Date parsed from source:Feb 18, 2026
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq: Papra updates the advanced PDF viewer with empty thumbnail placeholders to prevent layout shifts and fixes a bug where the outline panel could appear empty, signaling ongoing product improvements.
Patch Changes
- #911 548608b Thanks @CorentinTh! - In the advanced PDF viewer, added empty placeholders for thumbnails to prevent layout shifts.
- #911 548608b Thanks @CorentinTh! - Fix an issue in the advanced PDF that caused the outline panel to appear empty
Important
Support Papra's development
Papra is looking for sponsors to help fund the development and ensure the sustainability of the project. If you find Papra useful and want to support its development, please consider becoming a sponsor, even a small contribution can make a big difference. Company or organization can get in touch for sponsorship opportunities, like visibility benefits or custom partnerships.
Original source Report a problem - Feb 18, 2026
- Date parsed from source:Feb 18, 2026
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq: Papra patch fixes opening the 'about Papra' dialog, improving stability.
Patch Changes
- #908 2143728 Thanks @CorentinTh! - Fixed an issue preventing the "about Papra" dialog from opening.
Important
Support Papra's development
Papra is looking for sponsors to help fund the development and ensure the sustainability of the project. If you find Papra useful and want to support its development, please consider becoming a sponsor, even a small contribution can make a big difference. Company or organization can get in touch for sponsorship opportunities, like visibility benefits or custom partnerships.
Original source Report a problem All of your release notes in one feed
Join Releasebot and get updates from papra-hq and hundreds of other software products.
- Feb 17, 2026
- Date parsed from source:Feb 17, 2026
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq releases an enhanced document experience with Open with... and a full PDF viewer, smarter tag handling (case-insensitive, unique names, creation limits), UI tweaks, URL-synced pagination, and a smaller rootless docker image. Security fixes and API changes accompany the release.
Release notes
- #894 77186da Thanks @CorentinTh! - Added a "Open with..." button for documents along with a complete PDF viewer page with standard features such as thumbnails, outline, attachments, and document properties.
- #820 3fa398c Thanks @CorentinTh! - Replaced date-fns functions with in-house implementations to avoid pulling the 30MB lib (mainly due to locale data).
- #852 71872db Thanks @CorentinTh! - Added explicit error when trying to update a tag with a name that already exists
- #827 ca2ef28 Thanks @CorentinTh! - In the search queries, tag filters are now case-insensitive, so tag:Important and tag:important will match the same tag (as tags names are case-insensitive).
- #883 63ddecf Thanks @CorentinTh! - Synchronized pagination state in the URL on the documents list page.
- #826 494aa5b Thanks @CorentinTh! - Trim tag names and descriptions on creation and update to avoid leading/trailing spaces.
- #829 393a155 Thanks @CorentinTh! - Added a button to generate a random color in the tag creation/edition modal.
- #810 1d5ada8 Thanks @What-is-water93! - Significantly reduced the size of the rootless docker image by preventing file duplications due to chown operations, gaining ~230MB, more than 30% reduction in size.
- #900 9058f9e Thanks @CorentinTh! - Added an option to limit the number of tags that can be created in an organization, defaulting to 200. Configurable via the MAX_TAGS_PER_ORGANIZATION environment variable.
- #884 4c7da4b Thanks @CorentinTh! - Excluded Synology specific files for the ingestion folder
- #896 fdd955e Thanks @CorentinTh! - Coerce MIME type of intake email attachments when declared as application/octet-stream or empty, using magic bytes detection with extension-based fallback.
- #859 afcfcf7 Thanks @CorentinTh! - Fixed a race condition that could incorrectly show the "Email verified" page after successful login, even when email verification had not been completed or was not required.
- #870 69633fb Thanks @CorentinTh! - Improved the document tag picker UI and UX, allowing tags to be managed from the document list.
- #855 3f4ca07 Thanks @CorentinTh! - Added tagging rules creation/update loading states
- #880 4f5b29b Thanks @CorentinTh! - Removed misleading "git missing" error log on app startup when git isn't available, like in Docker env.
- #822 b6951ea Thanks @CorentinTh! - Tag names uniqueness enforced with case insensitivity per organization. Migration will ensure deduplication by appending prefixes in case of existing collisions.
- #811 1eeb3df Thanks @CorentinTh! - Added small header in organization creation page to quickly access the invitations when first organization is being created
- #903 d13c74f Thanks @CorentinTh! - The command palette state no longer resets when opening it, allowing to keep the search query and results when closing and reopening it.
- #851 316a8c2 Thanks @CorentinTh! - Added tag creation/update button loading state
- #892 1c1d273 Thanks @CorentinTh! - Enforced the length of the intake email webhook secret (INTAKE_EMAILS_WEBHOOK_SECRET) to be between 16 and 128 characters to match the OwlRelay API validation requirements.
- #855 3f4ca07 Thanks @CorentinTh! - Prevented multiple tagging-rules creation attempts when clicking the create button quickly.
- #851 316a8c2 Thanks @CorentinTh! - Prevented multiple tag creation attempts when clicking the create button quickly.
- #899 d1eae05 Thanks @CorentinTh! - Api breaking change: removed the /api/organizations/:organizationId/documents/search endpoint in favor of the existing /api/organizations/:organizationId/documents with an optional searchQuery query parameter.
The new /api/organizations/:organizationId/documents endpoint now behave as the old /search endpoint, with all documents being returned when searchQuery is empty. Note that the response field totalCount of the old /search endpoint has been renamed to documentsCount in the new endpoint.
Before:
GET /api/organizations/:organizationId/documents/search?searchQuery=invoice&pageIndex=1&pageSize=20
Response: {
documents: Document[];
totalCount: number;
}
GET /api/organizations/:organizationId/documents?pageIndex=1&pageSize=20
Response: {
documents: Document[];
documentsCount: number;
}
After:
GET /api/organizations/:organizationId/documents?searchQuery=invoice&pageIndex=1&pageSize=20
Response: {
documents: Document[];
documentsCount: number;
} - #893 0c62716 Thanks @CorentinTh! - Security fix: prevented unauthorized listing to organization tags and webhooks. An authenticated user could list the tags and webhooks of an organization they are not a member of by sending requests to the corresponding endpoints by knowing the organization ID. Credit to Sergio Cabrera, security researcher, for responsibly disclosing this vulnerability.
Important
Support Papra's development
Original source Report a problem
Papra is looking for sponsors to help fund the development and ensure the sustainability of the project. If you find Papra useful and want to support its development, please consider becoming a sponsor, even a small contribution can make a big difference. Company or organization can get in touch for sponsorship opportunities, like visibility benefits or custom partnerships. - Jan 25, 2026
- Date parsed from source:Jan 25, 2026
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq highlights a release update including renaming internal dist package to papra/app with new tag format, plus UI and feature tweaks: tag list sorting, home redirect for single org, space-aware tag search fix, login registration toggle, has:tags filter, demo asset tree-shake, and new Greek and Russian language support.
Release notes
#796 aaa05a8 Thanks @CorentinTh! - Renamed the internal distribution package from @papra/docker to @papra/app. New release tags will use the format @papra/[email protected] instead of @papra/[email protected].
#784 2c078e2 Thanks @CorentinTh! - Tag list: order tags by creation date descending (newest on top)
#781 7c5e68f Thanks @CorentinTh! - When navigating to / and having only one organization, get redirected to that organization
#783 ad575bf Thanks @CorentinTh! - Fix tag automatic search link issue when tags have spaces, before tag:my tag would not work, now generate tag:"my tag" to fix it.
#795 3a41531 Thanks @CorentinTh! - Hide the "Don't have an account? Register" link on the login page when new account registration is disabled.
#785 45534a0 Thanks @CorentinTh! - Added the has:tags search filter to check for the presence or absence (-has:tags or NOT has:tags) of tags on documents.
#777 42e401c Thanks @CorentinTh! - Properly tree-shake all demo assets to reduce the size of production non-demo build. Reducing the bundle assets by 70kB (55kB on main chunk + removed demo chunk of ~15kB).
#794 0485701 Thanks @ktsourdinis! - Added Greek language support
#798 c27d85f Thanks @cergmin! - Added Russian language support
- Jan 20, 2026
- Date parsed from source:Jan 20, 2026
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq releases mobile 1.0.0, marking the debut with initial features and broad platform support.
- Jan 20, 2026
- Date parsed from source:Jan 20, 2026
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq highlights a release with an API breaking change: document search now returns full documents and totalCount, not nested results. Also adds show more results, advanced search syntax, query sync for deep links, improved search speed, 2FA, admin pages, and new API endpoint checks.
#758 a2a2061 Thanks @CorentinTh! - API Breaking Change:
Document search endpoint now returns complete documents along with total count matching the search query, and no longer nests results under searchResults.
Before:
// GET /api/organizations/:organizationId/documents/search?searchQuery=foobar { searchResults: { documents: [ { id: 'doc_1', name: 'Document 1.pdf' }, { id: 'doc_2', name: 'Document 2.pdf' }, ], }, }After:
// GET /api/organizations/:organizationId/documents/search?searchQuery=foobar { documents: [ { id: 'doc_1', name: 'Document 1.pdf', mimeType: 'application/pdf' /* ...otherProps */ }, { id: 'doc_2', name: 'Document 2.pdf', mimeType: 'application/pdf' /* ...otherProps */ }, ], totalCount: 42, }#761 2e46c08 Thanks @CorentinTh! - Added a "Show more results" option in quick search when there is more document not displayed
#733 848671b Thanks @CorentinTh! - Improved search speed by using document and organization ids in index
The first restart after updating may take up to few minutes as the search index is rebuilt
#758 a2a2061 Thanks @CorentinTh! - The documents page can now be used with advanced search queries
#723 68d848e Thanks @CorentinTh! - Auto assign admin role to the first user registering
#726 e8f6217 Thanks @CorentinTh! - Added about page and modal with version informations
#707 a213f06 Thanks @CorentinTh! - Added a dedicated increased timeout for the document upload route
#712 b8c14d0 Thanks @CorentinTh! - Added a feedback message upon request timeout
#717 f3fb5ff Thanks @CorentinTh! - Added support for two factor authentication
#702 ec34cf1 Thanks @CorentinTh! - Organizations listing and details in the admin dashboard
#746 685f03c Thanks @CorentinTh! - Added advanced search syntax support
#715 7448a17 Thanks @kirarpit! - Properly cleanup orphan file when the same document exists in trash
#758 a2a2061 Thanks @CorentinTh! - Added query params sync for the search query in the documents search page for deep linking and browser state navigation
#758 a2a2061 Thanks @CorentinTh! - Removed the possibility to filter by tag in the /api/organizations/:organizationId/documents route, use the /api/organizations/:organizationId/documents/search route instead.
# Before: GET /api/organizations/:organizationId/documents?tags=yourTagId # After: GET /api/organizations/:organizationId/documents/search?query=tag:yourTagNameOrId#707 a213f06 Thanks @CorentinTh! - Changed config key config.server.routeTimeoutMs to config.server.defaultRouteTimeoutMs (env variable remains the same)
#718 8d70a7b Thanks @CorentinTh! - Added api endpoint to check current API key (GET /api/api-keys/current)
Original source Report a problem - Dec 21, 2025
- Date parsed from source:Dec 21, 2025
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq releases a minor patch fixing a missing prepublish script.
Patch Changes
- #699 4342b31 Thanks @CorentinTh! - Fix mising prepublish script
- Dec 21, 2025
- Date parsed from source:Dec 21, 2025
- First seen by Releasebot:Mar 14, 2026
@papra/[email protected]
papra-hq Announces multiple product updates: asynchronous document search indexing boosts responsiveness, stronger authSecret security in production, new platform administration dashboard, Simplified Chinese support, and a fix for document icon loading. Solid release of usability and security improvements.
- #685 cf91515 Thanks @CorentinTh! - Document search indexing and synchronization is now asynchronous, and no longer relies on database triggers.
- #686 95662d0 Thanks @CorentinTh! - Enforcing the auth secret to be at least 32 characters long for security reasons
- #686 95662d0 Thanks @CorentinTh! - Now throw an error if AUTH_SECRET is not set in production mode
- #689 d795798 Thanks @CorentinTh! - Added a platform administration dashboard
- #675 17d6e9a Thanks @CorentinTh! - Added support for Simplified Chinese language
- #679 6f38659 Thanks @CorentinTh! - Fixed an issue where the document icon didn't load for unknown file types
This is the end. You've seen all the release notes in this feed!