Skip to content

v0.8.1-enhance

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Jul 14:35

OpenPencil v0.8.1

v0.8.1 is a pre-release update for the Rust OpenPencil stack. It expands native agent and MCP integrations, makes the AI-assisted design loop more reliable, adds richer preview and export workflows, improves editor responsiveness and web rendering clarity, hardens web credential handling and host-local configuration isolation, and centralizes product-version management.

Highlights

  • Antigravity and Grok Build are now first-class native CLI providers, with executable and authentication probes, model discovery, branded settings and model-picker entries, subprocess chat routing, and MCP configuration support.
  • The design agent now uses transactional batch updates, four bundled design systems, bounded geometry-aware repair, stronger image-slot handling, and progress-ring preservation to produce more reliable layouts without unbounded retries.
  • Desktop Preview adds Phone, Desktop, and Canvas presentation modes, scrolling inside fixed device frames, phone-only pinning for detected bottom navigation, and geometry-accurate painting and pointer mapping.
  • Desktop and web SVG export can tightly crop one selected node, while CLI and MCP export pages, arbitrary nodes, or the live selection as PNG, JPEG, WebP, or PDF.
  • CanvasKit caches, on-demand SDK animation frames, cached transcript and layer layouts, structurally shared undo history, and fewer document clones improve active and idle performance.
  • CanvasKit uses the browser's full display scale with a 2x quality floor, keeping small text and one-pixel UI details sharper when an embedded browser reports DPR 1.
  • Browser deployments keep web-entered credentials in same-origin storage by default, while trusted private deployments can explicitly opt into a server-persisted shared copy.
  • The web host no longer imports local ~/.zode provider configuration; native desktop startup retains Zode discovery for local workflows.
  • Rust crates, SDK packages, installers, bundled CLI metadata, and release publishing now derive from or are checked against the root Cargo workspace version.

Native Agents and MCP

Antigravity and Grok Build

  • Native Agent settings and the chat model picker now include Google Antigravity and xAI Grok Build with dedicated branding and provider identities.
  • OpenPencil resolves the agy and grok executables across supported platforms, probes installation and authentication state, and provides actionable setup guidance when a provider is unavailable.
  • Model discovery queries agy models and grok models with bounded execution, parses their supported text and JSON catalog shapes, and falls back to a provider default when an installed CLI does not expose a usable catalog.
  • Chat sessions route through hardened subprocess parsing and safety rules. Canvas-agent chat turns and tool-free orchestrator, subtask, and code-generation turns use separate subprocess policies, preventing canvas MCP permissions and automation guards from leaking into structured generation.
  • The MCP integration grid now includes Antigravity and Grok Build alongside Claude Code, Codex, Gemini, OpenCode, Kiro, and GitHub Copilot. Enabling or disabling OpenPencil updates the relevant client configuration while preserving unrelated servers and settings.

Generation Experience

  • Design-loop narration, thinking, and tool activity now appear chronologically in the transcript instead of being grouped out of order.
  • Streamed Markdown, clearer tool chips, stable agent identity, and unified generation feedback make native and CLI-backed runs easier to follow.
  • Canvas generation uses sequential placeholders, animated agent presence, and five selectable Pencil-style cursors to show which area is being produced without obscuring completed content.

Design Agent Quality

  • Transactional batch updates keep a failed design operation from leaving a partially applied document.
  • Four built-in shadcn-vocabulary design systems—Halo, Lunaris, Nitro, and shadcn—can install complete Light and Dark variable tables in one undoable step.
  • Repair is explicit and bounded. Geometry-aware passes handle overlaps, undersized content, radial stacks, image slots, and common scaffold defects without entering an unbounded retry loop.
  • Image repair keeps one image per intended slot, reconnects stray photos to their containers, and avoids stretching controls or treating oversized decorative plates as image intent.
  • Progress rings and other radial compositions retain their arc semantics and are recentered against final resolved geometry across platforms.

Preview, Canvas, and Editing

  • Desktop Preview provides Phone, Desktop, and Canvas modes with device-frame clipping, vertical scrolling, accurate hit mapping, and phone-only pinning for recognized bottom navigation.
  • Desktop clipboard paste accepts image data directly into the document.
  • Multiple fills can be reordered without rebuilding unrelated paint layers.
  • Component-instance child property edits are stored as overrides with undo-safe history.
  • Web text rasterization accounts for display scale, and the CanvasKit backing store now has a 2x minimum render scale for sharper text and chrome in browsers or webviews that report DPR 1.
  • Web startup no longer reads local Zode provider settings, preventing native-only model configuration from appearing as partially synchronized browser state.
  • Jian updates normalize text line-height semantics and treat designMd and conversion as known top-level schema fields.

Export and Automation

  • Desktop and web SVG export tightly crop exactly one selected node and otherwise export the full active page. SVG is also available in the property-panel export controls.
  • CLI and MCP export pages, arbitrary node IDs, or the live selection as PNG, JPEG, WebP, or PDF.
  • Headless MCP startup validates the target .op document before serving, so malformed or unsupported input fails early instead of creating a broken automation session.

Performance and Web SDK

  • CanvasKit paint objects and fonts are cached instead of being recreated across frames.
  • The web SDK requests animation frames only while work is pending, reducing idle CPU use.
  • Transcript and layer-panel layout caches avoid repeating text measurement and tree layout for unchanged content.
  • Undo snapshots share unchanged document structure, and editor mutation paths avoid several whole-document clones.
  • The React and Vue adapters ship with the base @zseven-w/op-web-sdk package family; the public SDK remains a read-only viewer surface.

Web Credential Persistence

Browser-entered built-in provider, image-generation, and Openverse credentials are stored separately from ordinary preferences in same-origin localStorage. By default, built-in provider credentials are attached only to AI requests that need them, and the daemon does not persist the browser credential snapshot to settings.json. At startup, browser-only mode removes browser-owned credentials left there by an earlier configuration.

Browser POSTs to credential and AI endpoints must pass an origin check, provider targets are validated, and upstream error bodies are not returned directly to browser clients. Public reverse proxies must list exact browser origins in the comma-delimited OPENPENCIL_WEB_ALLOWED_ORIGINS setting.

Trusted private deployments can enable server persistence with:

OPENPENCIL_PERSIST_WEB_CREDENTIALS_SERVER=true

This creates a deployment-wide shared credential copy and is intended for an access-controlled deployment with one active administrator profile. It does not permit unrestricted outbound requests. Internal provider origins must be listed separately in OPENPENCIL_WEB_AI_ENDPOINT_ALLOWLIST. Because same-origin scripts can read localStorage, deployments must also protect the web origin from untrusted scripts and XSS.

The web host continues to expose built-in API-key agents only. CLI and ACP agents, including Antigravity and Grok Build, remain native-only and are not exposed through web connect routes.

Web startup also does not import provider credentials or model entries from the host user's ~/.zode configuration. Zode discovery remains available to the native desktop host, where the configuration is local to the running application. This keeps browser and native provider catalogs intentionally separate instead of presenting unsynchronized local entries in the web model picker.

Release Engineering

  • Root Cargo.toml is the canonical product version source. Rust crates inherit it through workspace metadata, and release/installer paths consume the same value.
  • scripts/sync-version.sh refreshes managed version copies and runs the guard; tools/check-version-sync.sh rejects drift across Rust metadata, the bundled CLI, SDK packages, installers, and release publishing.
  • The explicit .op formatVersion and stable test-fixture versions remain independent of product releases and are intentionally excluded from product-version synchronization.
  • CI now runs native builds and tests on Linux, macOS, and Windows; cross-architecture compile checks for macOS and Windows; Android and iOS compile checks; plus wasm32 compile and real CanvasKit bundle guards.

Release Artifacts

  • Native desktop installers and standalone op CLI archives for macOS, Windows, and Linux.
  • ghcr.io/zseven-w/openpencil-web:v0.8.1 for the Rust web host.
  • @zseven-w/op-web-sdk, @zseven-w/op-web-sdk-react, and @zseven-w/op-web-sdk-vue under the npm next tag, with package tarballs attached to the GitHub prerelease.
  • Updated Homebrew and Scoop manifests after the prerelease is published.

Compatibility

  • The supported .op formatVersion remains 1.1, unchanged from v0.8.0.
  • The public web SDK remains a read-only viewer surface.
  • The retired TypeScript application workspace is not part of this release.

Web Docker Image

  • Image: ghcr.io/zseven-w/openpencil-web:v0.8.1
  • Digest: sha256:80eb447edc616a6d2f40f4ebf8fa23baecd044db46f7bf5d5d121eb533345c70

New Contributor

@Danny-Devs