Releases: documenso/documenso
Releases Β· documenso/documenso
Release list
v2.14.0
What's Changed
- fix: improve team member removal ux by @dguyen in #3001
- fix: only send S3 checksums when required to support S3-compatible storage by @yashs33244 in #2984
- fix: render unicode characters in typed signatures by @AbdelrhmanAbdelhamed in #2728
- fix: signing request email renders blank when organisation/team branding is enabled by @NandiniDhanrale in #2968
- fix: remove old dialogs by @dguyen in #3006
- feat: add custom brand colours to emails by @Mythie in #3005
- feat: allow additional envelope duplicate settings by @dguyen in #3008
- fix: respect branding enabled for recipient routes by @Mythie in #3009
- chore: extract translations by @github-actions[bot] in #2987
- fix: correctly use default distribute envelope tab by @dguyen in #3010
- fix: set send status on resend by @dguyen in #3011
- feat: add API endpoint to reject documents on behalf of recipients by @Mythie in #3007
- feat: cap automated reminders before resend by @Mythie in #3016
- fix: show warning on overlapping fields by @Mythie in #3017
- chore: add translations by @Mythie in #3012
- chore(i18n): update Polish translation by @mKoonrad in #3020
- fix: migrate emails to jobs by @dguyen in #3024
- chore: general repo maintenance and docs cleanup by @Mythie in #3030
- feat: add API endpoints for downloading certificate and audit log PDFs by @Mythie in #3025
- fix: resolve permission issues by @dguyen in #3029
- chore: add tests for cert and audit log download via api by @Mythie in #3043
New Contributors
- @yashs33244 made their first contribution in #2984
- @AbdelrhmanAbdelhamed made their first contribution in #2728
- @NandiniDhanrale made their first contribution in #2968
Full Changelog: v2.13.0...v2.14.0
v2.13.0
v2.12.0
What's Changed
- fix: convert DOCX template uploads to PDF by @ephraimduncan in #2807
- docs: remove leftover Next.js commands and update to Remix-compatible syntax by @mirtafon in #2695
- chore: update docs for self hosters by @dguyen in #2816
- docs: require English for PRs and issues by @ephraimduncan in #2819
- fix: improve api logging by @dguyen in #2820
- chore: deps upgrade by @Mythie in #2831
- refactor(ui): replace hardcoded colors with semantic tokens by @ephraimduncan in #2749
- fix: use captcha imperatively by @Mythie in #2832
- chore: add translations by @Mythie in #2833
- feat: add admin organisation creation with user by @ephraimduncan in #2082
- fix(docs): correct API example URLs from /documents to /document by @roshboi in #2836
- chore: updated certification status by @roshboi in #2850
- fix: correct reversed comparison in admin organisations table pagination by @Abzaek in #2842
- fix: remove duplicate loadingSpinnerGroup.destroy() in DROPDOWN sign by @Abzaek in #2841
- fix: move document complete email to a job by @dguyen in #2835
- fix: handleInitialsFieldClick now returns initialsToInsert instead of initials by @Abzaek in #2838
- fix: prevent crash when removing last dropdown option in removeValue by @Abzaek in #2843
- chore: extract translations by @github-actions[bot] in #2806
- fix: always show captcha by @Mythie in #2860
- fix: prevent React state mutation by spreading envelope.recipients before sort by @Abzaek in #2839
- fix: prevent prop array mutation by spreading allRecipients before sort by @Abzaek in #2840
- fix(prisma): stop large-team-seed running on import by @ephraimduncan in #2852
- fix: prevent division by zero in progress bar when requiredRecipientFields is empty by @durgeshhhhhhh in #2855
- docs: implement global error handling and troubleshooting matrix by @redouanegrib in #2784
- fix(web): handle duplicate organization URL update errors gracefully by @anish1204 in #2808
- fix: add missing doc page ref by @dguyen in #2865
- fix: add constraint on name schema by @dguyen in #2866
- chore: add translations by @Mythie in #2854
- fix: email dictated direct template signer by @zahedshareef in #2810
- fix(docs): correct broken internal docs links by @nikhil-shukl in #2869
- feat(storage): add native Azure Blob transport by @kengru-digito in #2871
- fix: add temp email rate limit by @dguyen in #2879
- feat: block disposable email signups by @Mythie in #2883
- chore: disabled account enforcement by @Mythie in #2882
- feat: admin-configurable email blocklist by @Mythie in #2884
- fix: add dynamic rate limits by @dguyen in #2892
- fix: track monthly usage for unlimited quotas by @dguyen in #2894
- feat: add admin org stats by @dguyen in #2904
- chore: add translations by @Mythie in #2885
- feat: add stripe sync by @dguyen in #2877
- fix: improve field signing by @dguyen in #2830
- fix: correctly log cc emails by @dguyen in #2913
- fix: filter ccers from delete email by @dguyen in #2914
- fix: prevent sending emails for free organisation claims by @roshboi in #2917
- chore: extract translations by @github-actions[bot] in #2867
- fix(ui): direct signing templates window layout by @mKoonrad in #2909
- fix(i18n): mark Bio string for translation by @mKoonrad in #2910
- fix: add email reporting by @dguyen in #2918
- chore: extract translations by @github-actions[bot] in #2919
- fix: add org insight document complete stat by @dguyen in #2920
- chore: add translations by @Mythie in #2922
- fix: update org stats table ui by @dguyen in #2924
- docs(embedding): document iframe URL fragment options by @catalinpit in #2915
- feat: add header metadata to emails by @dguyen in #2927
- fix: add email disable flag by @dguyen in #2931
- fix: add multi email transport system by @dguyen in #2942
- chore(i18n): fix typo in Polish translation by @mKoonrad in #2948
- docs: add registration form screenshot to create account page by @Arunkoo in #2908
- fix: update link-only notification settings by @ephraimduncan in #2821
- fix: update new quota and rates UX by @dguyen in #2954
- docs: clarify email verification instructions for free and paid plans by @roshboi in #2959
- fix(auth): guard missing password reset token and fix broken reset link URL by @Arunkoo in #2928
- fix: point Railway deploy button at the working template URL by @ephraimduncan in #2962
- fix: ensures new expire on setSessionCookie by @claytonchew in #2708
- fix: mark rejected documents as unread for inbox by @novoice-rana in #2893
- chore: update docs trusted emails by @dguyen in #2964
- chore: extract translations by @github-actions[bot] in #2923
- feat: allow changing field types by @dguyen in #2873
- fix: load typed signature font on profile page by @Romone6 in #2963
- feat: enhance document signing page with field canvas style integration by @catalinpit in #2876
- fix: correctly strip background job values by @dguyen in #2965
- chore: add translations by @Mythie in #2929
- fix: link signing brand logos by @ephraimduncan in #2881
- fix: correctly orphan envelopes and stripe cancel on delete by @dguyen in #2967
- chore: update verify email docs by @dguyen in #2970
- fix(i18n): add space between tag and text by @mKoonrad in #2972
- fix: rework stripe webhooks into idempotent subscription sync by @Mythie in #2977
- fix: use correct property for embed edit editor config by @Mythie in #2985
- chore: add translations by @Mythie in #2975
- fix: reconcile billing when stripe subscription is missing by @Mythie in #2988
- fix: add early quota warning by @dguyen in #2986
New Contributors
- @mirtafon made their first contribution in #2695
- @roshboi made their first contribution in #2836
- @Abzaek made their first contribution in #2842
- @durgeshhhhhhh made their first contribution in #2855
- @redouanegrib made their first contribution in #2784
- @zahedshareef made their first contribution in #2810
- @nikhil-shukl made their first contribution in #2869
- @kengru-digito made their first contribution in #2871
- @Arunkoo made their first contribution in https://github.com/documenso/documenso/pull/...
v2.11.0
What's Changed
- fix: prevent 2fa users from being flagged as bots by @Mythie in #2748
- feat: allow add myself feature for embeds by @dguyen in #2754
- feat: remove default personal orgs from custom sso by @dguyen in #2741
- feat: add pending signed PDF downloads by @ephraimduncan in #2730
- feat: add DD-MM-YYYY date format variants by @catalinpit in #2767
- chore: extract translations by @github-actions[bot] in #2737
- fix: paginate and search member/group pickers by @Mythie in #2768
- chore: add translations by @Mythie in #2771
- feat: add new field overflow methods by @dguyen in #2715
- fix: replace linter with biome by @dguyen in #2645
- fix: lint project by @dguyen in #2693
- chore: extract translations by @github-actions[bot] in #2772
- chore: add translations by @Mythie in #2774
- feat: add granular signup disable flags by @ephraimduncan in #2765
- feat: add custom branding for signing pages by @Mythie in #2785
- perf: dynamically import posthog by @ephraimduncan in #2622
- feat: protect signing URLs from indexing, caching, and embedding by @ephraimduncan in #2469
- chore: extract translations by @github-actions[bot] in #2786
- chore: add translations by @Mythie in #2788
- chore: add section on personal organisations for SSO users by @dguyen in #2793
- chore: update French translations by @abdhenni in #2717
- chore: update fair use policy by @ElTimuro in #2798
- refactor: remove unnecessary DateRange type assertion by @anish1204 in #2790
- chore: remove github action caches by @dguyen in #2802
- feat: support DOCX uploads via Gotenberg by @Mythie in #2801
- fix: remove translation tag from css textarea placeholder by @Mythie in #2803
- chore: update docs to use editor instead of authoring by @dguyen in #2800
- chore: extract translations by @github-actions[bot] in #2796
- feat: add admin org deletion by @dguyen in #2795
- perf: compress signing-celebration.png from 20MB to 4MB by @ggoswami777 in #2781
- chore: extract translations by @github-actions[bot] in #2804
- chore: add translations by @Mythie in #2805
New Contributors
- @abdhenni made their first contribution in #2717
- @anish1204 made their first contribution in #2790
- @ggoswami777 made their first contribution in #2781
Full Changelog: v2.10.0...v2.11.0
v2.10.0
What's Changed
- chore: add translations by @Mythie in #2689
- docs: add signing reminders guide by @Mythie in #2716
- chore: extract translations by @github-actions[bot] in #2734
- feat: add envelope ids to certs by @dguyen in #2733
- chore: add translations by @Mythie in #2735
- fix: remove envelope title cropping by @dguyen in #2739
- fix: security improvements by @catalinpit in #2593
- feat: render signatures on pending envelopes by @dguyen in #2743
- fix: improve signature rendering quality with high-resolution caching by @dguyen in #2745
- fix: allow users to download templates by @dguyen in #2746
- fix: improve embed error messages by @dguyen in #2752
- fix: assistant signing auth by @Mythie in #2753
Full Changelog: v2.9.1...v2.10.0
v2.9.0
What's Changed
- fix(i18n): mark billing messages for translation by @mKoonrad in #2525
- fix: folder view all page nested navigation and search filtering by @catalinpit in #2450
- fix(recipient): filter invalid emails in suggestions by @abdulalim110 in #2510
- feat: support language in embedding by @tedliang in #2364
- feat: add envelope pdf replacement by @dguyen in #2602
- feat: allow editing pending envelope titles by @dguyen in #2604
- chore: extract translations by @github-actions[bot] in #2613
- fix: resolve envelope editor settings ccer logic by @dguyen in #2628
- fix(ui): add scroll to date format dropdown by @nielskaspers in #2626
- feat: add page title translations by @dguyen in #2629
- chore: add translations by @Mythie in #2630
- chore: add translations by @Mythie in #2632
- fix: stale envelope editor query by @dguyen in #2633
- fix: prevent managers from deleting admin invitations by @dguyen in #2636
- feat: add option to disable Document created from template by @catalinpit in #2609
- fix: missing embed direct template email validation by @dguyen in #2635
- fix: require billing address on checkout by @Mythie in #2647
- fix: replace z.string().email() with RFC 5322 compliant ZEmail/zEmail by @Mythie in #2655
- fix: replace z.string().email() with RFC 5322 compliant zEmail() by @Mythie in #2656
- feat: display the field id in dev mode by @catalinpit in #2658
- feat: admin panel org improvements by @catalinpit in #2548
- docs: add user-facing documentation for recipient expiration by @Mythie in #2659
- feat: add BullMQ background job provider with Bull Board dashboard by @Mythie in #2657
- feat: webhook allow private hosts by @jpsimonsen in #2654
- chore: Update labeler.yml by @ElTimuro in #2653
- feat: add ability to save documents as template by @dguyen in #2661
- fix: resolve incorrect recipient comparision check by @dguyen in #2646
- fix: labeler typo by @dguyen in #2670
- fix: handle malformed pdf cropbox/mediabox entries by @Mythie in #2668
- feat: add document rename feature (#2542) by @swalihkolakkadan in #2595
- fix: validate Resend API key before creating mail transport by @lawrence3699 in #2672
- fix: documents table team email recipient lookup by @ephraimduncan in #2578
- feat: auto insert email and date fields by @dguyen in #2639
- chore: extract translations by @github-actions[bot] in #2631
- fix: allow nullable document audit logs by @Mythie in #2682
- chore: add translations by @Mythie in #2683
- fix: update team member invitation ux by @dguyen in #2687
- fix: clean up duplicate dialogs by @dguyen in #2686
- feat: signing reminders by @ephraimduncan in #1749
- fix: admin org sorting by @dguyen in #2694
- fix: brand logo caching by @dguyen in #2699
- feat: add turnstile captcha to auth flow by @Mythie in #2703
- fix: prevent TooltipTrigger from submitting parent forms (fixes #2684) by @armorbreak001 in #2701
New Contributors
- @abdulalim110 made their first contribution in #2510
- @nielskaspers made their first contribution in #2626
- @jpsimonsen made their first contribution in #2654
- @swalihkolakkadan made their first contribution in #2595
- @lawrence3699 made their first contribution in #2672
- @armorbreak001 made their first contribution in #2701
Full Changelog: v2.8.1...v2.9.0
v2.8.0
What's Changed
- fix: upgrade @libpdf/core by @Mythie in #2569
- chore: add translations by @Mythie in #2570
- fix: upgrade @libpdf/core by @Mythie in #2572
- refactor: find envelopes by @Mythie in #2557
- feat: add pdf image renderer by @dguyen in #2554
- fix(i18n): mark dropdown and radio placeholder for translation by @mKoonrad in #2537
- fix: show current month data and add caching by @ephraimduncan in #2573
- feat: add embedded envelopes by @dguyen in #2564
- chore: extract translations by @github-actions[bot] in #2566
- chore: add translations by @Mythie in #2575
- fix: performance improvements by @dguyen in #2581
- feat: implement template search functionality by @catalinpit in #2376
- feat: auto-disable telemetry when license key is configured by @ephraimduncan in #2562
- chore: extract translations by @github-actions[bot] in #2577
- fix: make signing page left-hand sidebar collapsible by @catalinpit in #2541
- chore: add embed envelope docs by @dguyen in #2576
- chore: add translations by @Mythie in #2582
- fix: dropdown fields by @dguyen in #2584
- fix: opt findDocumentsInternal query out of batch fetching by @Mythie in #2585
- fix: only use embed hash name/email as fallback when recipient values are blank by @Mythie in #2586
- fix: add cmaps by @Mythie in #2588
- fix: security CVE-2026-29045 by @tedliang in #2589
- fix: move window.ENV script before client bundle to prevent stale fallback by @Mythie in #2592
- fix: include extra recipient info in missing fields error msg by @catalinpit in #2590
- feat: add recipient role editing and audit log PDF download in admin by @Mythie in #2594
Full Changelog: v2.7.1...v2.8.0
v2.7.0
What's Changed
- feat: per-recipient envelope expiration by @Mythie in #2519
- feat: better ratelimiting by @Mythie in #2520
- chore: upgrade libpdf by @Mythie in #2522
- fix: omit fieldId from embed create endpoints by @Mythie in #2523
- fix: update button width to fit content in public profile page by @KarloDerEchte in #2506
- chore: extract translations by @github-actions[bot] in #2505
- feat: add admin email domain management and sync job by @Mythie in #2538
- feat: support optional read replicas by @Mythie in #2540
- chore: add translations by @Mythie in #2533
- fix(i18n): mark supported languages for translation by @mKoonrad in #2377
- fix: handle cjk and special chars when slugifying by @Mythie in #2544
- fix: return all documents from V1 API regardless of folder by @ephraimduncan in #2471
- deps: 2026-02-26 upgrades by @Mythie in #2545
- feat: docs v2 by @Mythie in #2460
- fix(docs): rewrite mermaid component to avoid async client component error by @Mythie in #2549
- chore: remove old docs by @Mythie in #2550
Full Changelog: v2.6.1...v2.7.0
v2.6.0
What's Changed
- chore: update fair policy with support by @ElTimuro in #2422
- fix: exclude soft-deleted documents from folder count by @misha366 in #2410
- chore: add v1 deprecated docs by @dguyen in #2423
- fix: send organisation member removal email to correct user by @catalinpit in #2405
- feat: add bulk document selection and move functionality by @catalinpit in #2387
- chore: extract translations by @github-actions[bot] in #2418
- fix: correct webhook event name in documentation by @Lahirudahampath03 in #2424
- fix(i18n): mark missing strings for translation in card components by @mKoonrad in #2308
- feat: autoplace fields from placeholders by @catalinpit in #2111
- feat: add license integration by @dguyen in #2346
- feat: allow non-team members as default recipients by @catalinpit in #2404
- fix: resolve safari cert download issues by @dguyen in #2430
- fix: add license logging by @dguyen in #2431
- fix: license banner not correctly showing by @dguyen in #2432
- feat: update team member creation dialog with invite functionality by @catalinpit in #2366
- fix: correct path prefix check for static assets caching by @Mythie in #2433
New Contributors
- @misha366 made their first contribution in #2410
- @Lahirudahampath03 made their first contribution in #2424
Full Changelog: v2.5.1...v2.6.0
v2.5.0
What's Changed
- fix: mark document auth types for translation by @mKoonrad in #2331
- fix: mark document visibility options for translation by @mKoonrad in #2330
- refactor: simplify field dialog component by @catalinpit in #2369
- chore: extract translations by @github-actions[bot] in #2363
- feat: add audit logs to document details page by @Mythie in #2379
- chore: add translations by @Mythie in #2373
- chore: npm audit fix by @Mythie in #2367
- feat: add default recipients for teams and orgs by @catalinpit in #2248
- fix: downgrade pdfjs-dist to version 5.4.296 and update react-pdf to version 10.3.0 by @KarloDerEchte in #2383
- docs: add OpenCode AI-assisted development guide by @Mythie in #2384
- fix: dont flatten forms for templates by @Mythie in #2386
- build: upgrade simplewebauthn packages from v9 to v13 by @Mythie in #2389
- fix: security CVE-2026-22817 CVE-2026-22818 by @tedliang in #2390
- fix: sync envelope state after direct link changes by @ephraimduncan in #2257
- refactor: replace pdf-sign with libpdf/core for PDF operations by @Mythie in #2403
- docs: add default recipients section by @catalinpit in #2400
- chore: extract translations by @github-actions[bot] in #2380
- feat: validate signers have signature fields before distribution by @Mythie in #2411
Full Changelog: v2.4.0...v2.5.0