Matt
0ca9b2c3b5
Build & Push Docker Images / lint (push) Successful in 2m48s
Build & Push Docker Images / build-and-push (push) Successful in 8m34s
feat(eoi): toggleable local-fill pathway — clean detail render + address wrapping
...
EOI detail fields (address, name, yacht, berth) rendered oversized and
top-clipped because Documenso auto-sizes AcroForm text when *it* fills the
template (ignores the PDF's 12pt font; a taller box → bigger font → more clip,
and a 2-line address box renders huge). Proven: filling the same source PDF
locally at 12pt renders cleanly and wraps long addresses to a 2nd line.
Add a per-port `eoi_fill_method` setting (default `local`), toggleable in
admin → Documenso → Templates & signing pathway:
- local: CRM fills + flattens the source PDF (pdf-lib, fixed 12pt +
multiline address wrap), uploads the flattened PDF to Documenso,
and places ONLY the 6 page-3 signature fields. Documenso never
re-renders the body text → no clipping.
- documenso: legacy template AcroForm fill (auto-sizes/clips) — fallback only.
Both still flow through Documenso for signing, so branded invites, embedded
signing, webhooks, signer rows, and the EOI milestone are unchanged.
- computeEoiSignatureLayout(): 6 page-3 fields at template-8 coords (unit-tested)
- createDocument (v1): PUT bytes to Documenso's presigned uploadUrl (2.x v1-compat
ignores the base64 field) so the uploaded document actually has content
- placeFields (v1): pass fieldMeta through so the Place-of-Signing TEXT field
keeps its label/required
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 02:48:11 +02:00
..
2026-06-04 11:23:42 +02:00
2026-06-02 12:52:28 +02:00
2026-05-23 00:52:59 +02:00
2026-06-02 12:59:16 +02:00
2026-05-04 22:57:01 +02:00
2026-06-17 17:49:22 +02:00
2026-06-17 17:53:12 +02:00
2026-06-03 18:27:56 +02:00
2026-05-07 20:58:34 +02:00
2026-05-23 00:52:59 +02:00
2026-06-04 11:23:42 +02:00
2026-06-04 11:23:42 +02:00
2026-06-04 11:23:42 +02:00
2026-05-23 00:52:59 +02:00
2026-05-05 04:07:03 +02:00
2026-06-19 10:30:12 +02:00
2026-05-23 00:52:59 +02:00
2026-06-19 10:33:40 +02:00
2026-06-02 12:59:12 +02:00
2026-06-02 20:10:04 +02:00
2026-06-02 13:18:28 +02:00
2026-06-02 20:10:04 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-25 15:09:35 +02:00
2026-06-02 12:24:46 +02:00
2026-06-18 22:28:20 +02:00
2026-06-02 13:07:21 +02:00
2026-06-02 13:07:21 +02:00
2026-06-02 12:59:12 +02:00
2026-05-27 22:42:37 +02:00
2026-05-27 22:42:37 +02:00
2026-05-23 00:52:59 +02:00
2026-05-18 13:28:50 +02:00
2026-06-02 12:52:28 +02:00
2026-05-26 21:09:50 +02:00
2026-05-18 13:28:50 +02:00
2026-06-02 12:03:35 +02:00
2026-05-23 00:52:59 +02:00
2026-05-25 15:09:35 +02:00
2026-05-23 00:52:59 +02:00
2026-06-25 02:48:11 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-06-24 21:38:22 +02:00
2026-05-12 21:11:23 +02:00
2026-06-25 02:48:11 +02:00
2026-06-24 21:38:22 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-04 22:57:01 +02:00
2026-05-23 00:52:59 +02:00
2026-05-05 20:18:05 +02:00
2026-05-23 00:52:59 +02:00
2026-05-04 22:57:01 +02:00
2026-06-19 10:41:42 +02:00
2026-05-23 00:52:59 +02:00
2026-05-27 22:42:37 +02:00
2026-05-06 14:57:24 +02:00
2026-06-02 12:18:07 +02:00
2026-05-04 22:57:01 +02:00
2026-05-23 00:52:59 +02:00
2026-05-27 22:42:37 +02:00
2026-05-23 00:52:59 +02:00
2026-06-01 21:28:04 +02:00
2026-05-23 00:52:59 +02:00
2026-06-02 13:18:24 +02:00
2026-05-05 20:48:13 +02:00
2026-06-02 13:07:21 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-06-17 18:09:59 +02:00
2026-06-02 17:22:08 +02:00
2026-06-19 10:40:17 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-06-18 21:42:36 +02:00
2026-05-27 22:42:37 +02:00
2026-06-02 12:52:28 +02:00
2026-05-23 00:52:59 +02:00
2026-05-12 20:51:49 +02:00
2026-06-18 22:28:20 +02:00
2026-06-03 19:15:04 +02:00
2026-06-01 21:55:04 +02:00
2026-06-02 12:52:28 +02:00
2026-05-23 00:52:59 +02:00
2026-06-02 17:28:48 +02:00
2026-05-23 00:52:59 +02:00
2026-06-18 21:42:36 +02:00
2026-05-23 00:52:59 +02:00
2026-05-25 03:40:37 +02:00
2026-06-02 12:52:24 +02:00
2026-06-25 02:48:11 +02:00
2026-05-23 00:52:59 +02:00
2026-05-25 15:09:35 +02:00
2026-06-03 00:51:12 +02:00
2026-06-18 23:54:47 +02:00
2026-06-02 20:10:04 +02:00
2026-06-02 12:59:12 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-04 22:57:01 +02:00
2026-05-13 12:07:57 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-06-02 13:07:30 +02:00
2026-06-02 12:18:11 +02:00
2026-05-25 14:26:18 +02:00
2026-05-23 00:52:59 +02:00
2026-06-02 13:07:30 +02:00
2026-05-25 15:09:35 +02:00
2026-05-31 18:49:16 +02:00
2026-06-02 13:18:28 +02:00
2026-06-02 13:18:28 +02:00
2026-04-29 01:58:42 +02:00
2026-05-23 00:52:59 +02:00
2026-05-11 13:01:47 +02:00
2026-06-01 16:39:51 +02:00
2026-05-31 18:49:16 +02:00
2026-05-23 00:52:59 +02:00
2026-05-26 21:29:05 +02:00
2026-05-13 12:58:58 +02:00
2026-05-27 22:42:37 +02:00
2026-05-23 00:52:59 +02:00
2026-04-29 01:58:42 +02:00
2026-06-02 13:18:28 +02:00
2026-05-25 15:34:43 +02:00
2026-05-23 00:52:59 +02:00
2026-05-23 00:52:59 +02:00
2026-06-22 12:40:55 +02:00
2026-05-23 00:52:59 +02:00
2026-05-25 15:09:35 +02:00
2026-06-02 12:40:41 +02:00
2026-06-02 17:28:48 +02:00
2026-06-02 17:22:08 +02:00
2026-06-02 20:10:04 +02:00
2026-06-02 12:24:46 +02:00