openpencil/RELEASE_NOTES/v0.8.2.md

3.6 KiB

OpenPencil v0.8.2

v0.8.2 is a prerelease focused on higher-fidelity imports, lower transient memory use, smoother large-document workflows, and safer .op persistence.

Highlights

  • Figma imports more closely preserve component instances and swaps, masks, blend modes, page backgrounds, tiled images, vectors, text, child order, and absolute positioning.
  • Desktop Figma conversion runs outside the UI thread and writes a sibling .op file. An existing target is never silently overwritten: replace it, keep both with a numbered copy, or cancel the import.
  • Large documents use a focused active-page render scene. Switching pages releases the previous scene, then fits and centers the newly active page.
  • Desktop Save and Save As run as serialized background jobs, reducing UI stalls and avoiding unnecessary full-document clones for clean files.
  • Older .op files open through the compatibility loader and can be upgraded in place, saved as a numbered copy, or opened without conversion.
  • HTML import now accepts complete pages, multi-file projects, and ZIP packages with local CSS, images, nested imports, and common text encodings.

Figma and Editing Fidelity

  • Component properties, instance overrides, swap targets, authored geometry, and style references survive conversion more reliably.
  • Alpha, vector, and luminance masks, layer and fill blend modes, image tile scale, and page background color render on native and web surfaces and are configurable in the property inspector.
  • Boolean geometry, vector bounds, image fills, text measurement, layout positioning, and paint order more closely match the source design.

Performance and Reliability

  • Figma conversion reuses prepared values, text measurements, image lookups, and component data instead of recomputing them for every node.
  • Desktop .op loading uses memory-mapped input and a fast path for safe Preserve-mode documents.
  • Web Figma conversion runs in a short-lived worker with IndexedDB staging, so conversion memory can be released before the document is installed in the editor.
  • Native publication is atomic, web saves are queued and coalesced, and an externally changed target is preserved by falling back to a numbered copy.
  • Windows desktop startup recovers when the preferred native OpenGL path is unavailable.

Compatibility

  • The current .op format marker is 1.2.
  • Legacy upgrades preserve unknown top-level and nested fields; new optional schema fields and generated TypeScript bindings remain backward compatible.
  • A current-format document does not trigger migration merely because optional editor metadata is absent.
  • Active-page rendering reduces renderer memory, but the canonical document still retains all page data while it is open.
  • Future incompatible format majors are rejected instead of being rewritten.
  • OpenPencil account sign-in is temporarily hidden in this prerelease and is planned to return in a later version.
  • The public web SDK remains a read-only viewer surface, and the retired TypeScript application workspace is not part of this release.

Web SDK and Distribution

  • @zseven-w/op-web-sdk, @zseven-w/op-web-sdk-react, and @zseven-w/op-web-sdk-vue are synchronized at 0.8.2 and published under the npm next tag.
  • Desktop installers and standalone op CLI archives are built for macOS, Windows, and Linux.
  • Platform-specific VS Code extension packages are attached to the prerelease and published through Open VSX.
  • The Rust web host is published as ghcr.io/zseven-w/openpencil-web:v0.8.2.
  • Homebrew and Scoop manifests are updated after the GitHub prerelease is published.