Lucas Smith
0d3bd59ec6
fix: handle cjk and special chars when slugifying ( #2544 )
2026-02-26 13:54:35 +11:00
Konrad
92d82c0423
fix(i18n): mark supported languages for translation ( #2377 )
2026-02-26 12:06:18 +11:00
Lucas Smith
484e1c20d0
chore: add translations ( #2533 )
2026-02-26 11:50:08 +11:00
Lucas Smith
6f5014a561
feat: support optional read replicas ( #2540 )
2026-02-25 19:07:02 +11:00
Lucas Smith
c112392da9
feat: add admin email domain management and sync job ( #2538 )
2026-02-25 15:14:18 +11:00
github-actions[bot]
bc72d9cb17
chore: extract translations ( #2505 )
2026-02-24 22:07:03 +11:00
Karlo
3ad3216c4c
fix: update button width to fit content in public profile page ( #2506 )
...
Co-authored-by: Catalin Pit <catalinpit@gmail.com >
2026-02-23 12:46:58 +02:00
Lucas Smith
36eef79b1a
fix: omit fieldId from embed create endpoints ( #2523 )
2026-02-21 21:14:51 +11:00
Lucas Smith
6fb88fede5
chore: upgrade libpdf ( #2522 )
2026-02-21 20:54:33 +11:00
Lucas Smith
653ab3678a
feat: better ratelimiting ( #2520 )
...
Replace hono-rate-limiter with a Prisma/PostgreSQL bucketed counter
approach that works correctly across multiple instances without sticky
sessions.
- Add RateLimit model with composite PK (key, action, bucket) and atomic
upsert
- Create rate limit factory with window parsing, bucket computation, and
fail-open
- Define auth-tier and API-tier rate limit instances
- Add Hono middleware, rateLimitResponse helper, and tRPC
assertRateLimit helper
- Wire rate limit headers through AppError constructor (was declared but
never assigned)
- Apply rate limits to auth routes (email-password, passkey), tRPC
routes
(2FA email, link org account), API routes, and file upload endpoints
- Add cleanup cron job for expired rate limit rows (batched delete every
15 min)
- Remove hono-rate-limiter dependency
2026-02-20 12:23:02 +11:00
Lucas Smith
006b1d0a57
feat: per-recipient envelope expiration ( #2519 )
2026-02-20 11:36:20 +11:00
Lucas Smith
f3ec8ddc57
v2.6.1
v2.6.1
2026-02-18 21:57:10 +11:00
Lucas Smith
9a66d0ebf6
fix: simplify openapi field schemas to fix SDK generation ( #2503 )
2026-02-18 17:07:46 +11:00
Konrad
29622d3151
fix(i18n): mark strings inside div for translation ( #2514 )
2026-02-18 13:50:42 +11:00
Lucas Smith
5de2527e54
fix: v2 embed direct templates not reading email/lockEmail from hash params ( #2509 )
2026-02-18 13:35:04 +11:00
Lucas Smith
6fcf0a638c
chore: add translations ( #2507 )
2026-02-17 11:31:37 +11:00
Louis Liu
ff9e6acb7a
fix(ui): clarify email settings labels ( #2448 )
2026-02-16 17:00:24 +11:00
Lucas Smith
a60c6a90ab
chore: add translations ( #2504 )
2026-02-16 16:10:43 +11:00
github-actions[bot]
f35c19d098
chore: extract translations ( #2458 )
2026-02-16 14:34:33 +11:00
McMek590
cf8e21bf35
fix: create full sentences for document-signing-auth files ( #2451 )
2026-02-16 13:30:36 +11:00
Jahangir Babar
3f7c4df1b1
fix: strip diacritics from team URL slug generation ( #2489 )
2026-02-16 12:36:14 +11:00
Konrad
ca199e7885
fix(i18n): mark span strings for translation ( #2494 )
2026-02-16 12:07:53 +11:00
Konrad
435d61ea57
fix(i18n): mark badge string for translation ( #2495 )
2026-02-16 11:58:03 +11:00
Konrad
34f14ba69a
fix(i18n): mark tabs trigger strings for translation ( #2496 )
2026-02-16 11:57:44 +11:00
Konrad
51916cd3f0
fix(i18n): mark DialogTitle string for translation ( #2497 )
2026-02-16 11:57:23 +11:00
Konrad
f158305499
fix(i18n): mark paragraph strings for translation ( #2498 )
2026-02-16 11:57:03 +11:00
Lucas Smith
2e3d22c856
fix: use instance-specific emails for service accounts ( #2502 )
2026-02-16 11:52:19 +11:00
Ephraim Duncan
d66c330d46
fix: match cert and audit log page dimensions to source document ( #2473 )
2026-02-12 18:25:11 +11:00
David Nguyen
9bcb240895
fix: revert canceled individual subscriptions to free claim ( #2483 )
...
## Description
Resolves an issue where individual plan customers who cancel are not
correctly put down to the free plan.
To resolve this, we delete the subscription on the stripe subscription
delete webhook. Since the customerId is stored on the organisation they
can still access their old invoices.
2026-02-12 17:44:33 +11:00
David Nguyen
066e6bc847
fix: envelope editor flush race condition ( #2482 )
...
## Description
Fixes a race condition in the envelope editor when opening "Send
Document" immediately after moving/resizing a selected field
Replication
1. Move or resize a field (do not blur the selector/quickbar that
appears when a field is selected)
2. Directly click the "Send Document" dialog
3. Error appears
Note: Step 2 needs to happen relatively fast after step 1 since this is
a race against the flush debouncer
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-12 16:32:26 +11:00
David Nguyen
0d65693d55
fix: highlight rejected certificate text ( #2478 )
...
## Description
- Update the rejected certificate so that is it more clear on who
rejected the document.
- Updated the audit log generation so that the completed audit log is
included
### Before
<img width="681" height="597" alt="image"
src="https://github.com/user-attachments/assets/3dab41c1-c86f-4555-8d50-3d9245be65d5 "
/>
### After
Note that the order of the recipient is different in this case
<img width="818" height="769" alt="image"
src="https://github.com/user-attachments/assets/71f0ac12-5859-47b4-8980-2420ef949d18 "
/>
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Lucas Smith <me@lucasjamessmith.me >
2026-02-12 16:06:43 +11:00
Lucas Smith
e3dee5e565
fix: auto placement field meta ( #2480 )
2026-02-12 14:20:52 +11:00
Catalin Pit
f1c91c4951
fix: bulk actions improvements ( #2440 )
2026-02-10 20:13:03 +11:00
Lucas Smith
a5ef1d23e6
feat: add team memberships section to admin user detail page ( #2457 )
2026-02-09 17:35:22 +11:00
github-actions[bot]
d91414697d
chore: extract translations ( #2429 )
2026-02-09 17:30:46 +11:00
Konrad
e222a872d2
fix(i18n): rewrite audit log messages to support correct grammar ( #2455 )
2026-02-09 13:20:12 +11:00
Ephraim Duncan
e3b0087be6
feat: create plain customer ( #2442 )
...
Co-authored-by: Catalin Pit <catalinpit@gmail.com >
2026-02-09 11:24:45 +11:00
Konrad
da89ce7c9a
fix(i18n): add localization context to dialog messages ( #2452 )
2026-02-09 10:52:50 +11:00
Konrad
b762561f11
chore(i18n): add context to ambiguous message ( #2454 )
2026-02-09 10:52:00 +11:00
Catalin Pit
9b190ef582
docs: add info callout for enterprise-only embedded authoring ( #2443 )
2026-02-04 12:41:46 +11:00
Lucas Smith
1669216a91
fix: flatten pdf-lib form fields before sealing document ( #2441 )
...
- Fixes checkbox fields not displaying correctly in sealed documents by
calling `flatten()` on the pdf-lib form before saving
2026-02-03 14:24:23 +11:00
Lucas Smith
594a0f0c3f
fix: store formValues in database when creating document from template ( #2437 )
2026-02-02 11:36:06 +11:00
Konrad
39ebc8184a
fix(i18n): add pluralization to envelopes-bulk-delete-dialog.tsx ( #2428 )
2026-01-30 12:43:27 +11:00
Konrad
2df41b9f01
feat(ui): rename sign up button for better clarity ( #2427 )
2026-01-30 12:30:33 +11:00
Lucas Smith
8704c731c0
chore: upgrade libpdf ( #2435 )
2026-01-29 23:34:46 +11:00
Lucas Smith
eaee0d4bc6
v2.6.0
v2.6.0
2026-01-29 18:44:58 +11:00
Lucas Smith
0f8b7670f4
fix: correct path prefix check for static assets caching ( #2433 )
2026-01-29 16:05:08 +11:00
Catalin Pit
25e148d459
feat: update team member creation dialog with invite functionality ( #2366 )
2026-01-29 15:15:06 +11:00
David Nguyen
97ceb317a8
fix: license banner not correctly showing ( #2432 )
2026-01-29 15:09:23 +11:00
David Nguyen
c83109628d
fix: add license logging ( #2431 )
2026-01-29 14:08:36 +11:00