mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 14:00:37 +00:00
Three gates, each a measured cost divided into a 30 s budget and halved: 50,000 shapes (a merge on 21,169 shapes costs about 6 s), 500 pages (a whole-file comparison of 48 pages costs 402 ms), and 100,000 op-log changes (one value-derived squash already emits about 19,000). Each refusal is a :restriction naming the limit, the actual value and what to do instead, and none of them truncates anything. The listing never refuses: it renders the branch panel, and its cost is bounded by the summary cache instead. Every branch operation also attaches its duration and outcome to its own audit event, because duration is the number the first enterprise trial will be asked about and the generic RPC event does not carry it.