openpencil/crates
Kayshen-X ac63c701e6 fix(figma): codex review round 1 — hardening + ZIP entrypoint
Addresses the first codex review of the binary `.fig` parser.

BLOCKs:
- kiwi: 64-bit varint now uses Kiwi's terminal-byte rule (eight
  7-bit groups then a final full-8-bit byte) — the old `& 127` mask
  on every byte corrupted u64 values above 2^56.
- kiwi: an invalid schema definition kind (> 2) is now rejected
  instead of silently treated as a message.
- kiwi: array decode rejects a length exceeding the buffer size —
  guards against a hostile zero-byte-element array spinning the
  decode loop billions of times.
- zip_reader: aggregate 2 GiB decompression budget + 10k entry cap
  on top of the existing per-entry limit (zip-bomb defence).

CONCERNs:
- detect_kind now recognises the `PK\x03\x04` ZIP magic as Binary —
  the common Figma export form (`canvas.fig` + `images/` in a ZIP)
  was being rejected before container.rs could unwrap it.
- resolve_style_references now also resolves style refs inside
  instance `symbolData.symbolOverrides` entries.
- kiwi: enum field type codes are no longer resolved (unused; kiwi
  writes 0) so a stray code can't reject a valid schema.

Plus a zip-wrapped end-to-end test + the misleading zstd test rename.
op-figma 84 tests green (+1); clean build.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-17 16:37:31 +08:00
..
op-ai feat: close six TS-parity gaps in the Rust shell 2026-05-17 13:03:11 +08:00
op-app refactor(rust): add op-app composition-root crate 2026-05-16 23:57:03 +08:00
op-cli feat: close six TS-parity gaps in the Rust shell 2026-05-17 13:03:11 +08:00
op-codegen fix: clear clippy -D warnings across the workspace 2026-05-17 01:26:29 +08:00
op-editor-core feat(panels): shadow/blur parameter steppers in the Effects section 2026-05-17 14:38:26 +08:00
op-editor-ui refactor(panels): split effects paint into property_panel_effects.rs 2026-05-17 14:45:43 +08:00
op-figma fix(figma): codex review round 1 — hardening + ZIP entrypoint 2026-05-17 16:37:31 +08:00
op-host-desktop feat(editor): add node-effect add/remove commands + MCP tools 2026-05-17 13:48:31 +08:00
op-host-native feat(panels): shadow/blur parameter steppers in the Effects section 2026-05-17 14:38:26 +08:00
op-host-web feat(panels): shadow/blur parameter steppers in the Effects section 2026-05-17 14:38:26 +08:00
op-i18n style: apply cargo fmt across the workspace 2026-05-17 00:26:15 +08:00
op-mcp feat(editor): add node-effect add/remove commands + MCP tools 2026-05-17 13:48:31 +08:00
op-pen-loader feat: close six TS-parity gaps in the Rust shell 2026-05-17 13:03:11 +08:00
wasm-libc-shim fix: clear clippy -D warnings across the workspace 2026-05-17 01:26:29 +08:00
CLAUDE.md docs: fix stale i18n + renderer paths flagged by Codex review 2026-05-16 15:45:54 +08:00