mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-25 18:56:50 -06:00
skylartaylor's review: a PDF can list readable layers yet fail the visibility rewrite. On a synthetic 33-section xref history, object.layerOptions with useDefaults:false and an empty hidden list was accepted (only hidden names triggered #1670's rewrite check), the canvas could not draw the choice and PDF export then failed. Every explicit choice now runs one actual pdf_hide_layers rewrite per distinct source before any item is edited or undo is recorded; this subsumes the separate layerless check. Resetting to file defaults (useDefaults:true or the legacy empty list) needs no variant and bypasses the check. #1670's fail-closed canvas handling is kept alongside the explicit-override state: a stored explicit choice (including all-on) whose source can no longer be rewritten draws nothing rather than the unmodified source, and export errors. The new regression test fails before this change (the all-on request is accepted) and covers both selection orders, atomicity, undo depth, reset bypass and the stale all-on fail-closed path. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>