mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-25 10:17:02 -06:00
hayro-syntax's Dict::entries still unwraps each value it reads, so a dictionary cut short (or with a stray token) aborts the import. The craft-libs ArrayIter now stops at the first unreadable item instead of panicking, which also means a hostile item after a self-referencing function or colour space is silently dropped from nests_without_end. - import_color: `readable(array)` checks every item parses; `items()` yields nothing for an unreadable array; `entries()` reads a dictionary key by key through get_raw, skipping values that don't parse. - pages/editing/import_scan: use the helpers instead of raw_iter() and Dict::entries(). - nests_without_end refuses a file with an unreadable array. - Tests: two refusal cases in pdf tests and an .ai cut inside an array or dictionary in engine/tests/import_fuzz.rs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KcHisW1vt6pkVPYbzL6Cpg