One modified record with two layers, not two records

Refactorkamo-shared-library
Shipped
August 22, 2026 at 10:05 PM UTC
Author
Kamo
Commit
d488ea4

A document had up to two derived rows — CLASSIC for edited bytes, FORM_FILLABLE for fields — and something had to decide which was based on the other, repointing the form row at the classic row's bytes on every save. It is one record now, with a document layer (its bytes) and a form layer (fields over them): two ways of editing one thing. That deletes the whole rebase question rather than answering it. A save in the document layer changes the bytes the fields already sit on, so there is nothing to repoint and nothing to get wrong when a member adds fields first and edits the document later. has_form_layer is stored rather than derived. The honest answer lives in esign_templates, but asking it per row on every list request is exactly the N+1 that hasDesignVersion used to run for all 100 rows of a page.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing