Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

NUIF Editor 0.1.0-alpha.3

This research preview adds a bounded Penpot package path, a more focused native workspace and a single-source publication pipeline. It remains a development and conformance tool. The application version does not assign maturity to the pre-draft specification or claim general interchange with any vendor product.

Developer installation

Clone the exact tag and retain the checkout as the lifecycle control plane:

git clone --branch v0.1.0-alpha.3 --depth 1 https://github.com/refpath/nuif.git
cd nuif
git rev-parse HEAD
cargo xtask editor-install --user --channel alpha

Existing alpha.2 installations can request the update explicitly:

cargo xtask editor-update --user --channel alpha --check
cargo xtask editor-update --user --channel alpha
cargo xtask editor-doctor --user

The source updater verifies the release-manifest attestation, exact tag and source revision before building with the pinned toolchain and lockfile. It does not perform silent updates or modify operating-system trust policy.

Changes since alpha.2

  • Added nuif-penpot-v3-0, a bounded Penpot v3 ZIP package adapter covering one file, page and board with direct rectangle, ellipse and text children. The foreign fixture is generated by the official @penpot/library package.
  • Added Penpot import/export to the CLI and native File menu. Unchanged imported packages synchronize byte-for-byte; mapped edits retain unknown members and unmapped JSON, and unsupported structure fails atomically.
  • Reduced small native package writer allocation by about 93% using a measured 4 KiB compression threshold while retaining foreign compression methods.
  • Focused the native editor chrome on document actions and moved secondary controls to the command surface. Pixel units, the background grid and rulers remain enabled by default; the File menu exposes all seventeen supported native and adapter routes.
  • Added captured canvas movement for freeform children with a local outline preview, one semantic transaction on release, default whole-pixel snapping and Control-suspended snapping. Managed-layout children are rejected instead of receiving ineffective position edits, and the native trial drives the real pointer path before replaying undo and redo.
  • Added bounded eight-handle resize for freeform children and the three semantically effective trailing handles for managed-layout children. Leading freeform handles preserve the opposite edges through an atomic position and fixed-size transaction; Shift preserves corner aspect ratio and Control suspends snapping. The native trial locates the north-west handle from resolved layout, drives its real pointer path, and proves deterministic undo, redo and operation replay.
  • Added same-parent Stack/Flex canvas reorder using resolved sibling geometry, so responsive direction overrides follow the displayed axis. Reorder emits one protocol Move, avoids no-op history, asserts the resulting child order in the native trial, and fails closed for Grid, Constraint, cross-parent and instance-child semantics.
  • Added allocation-aware smoke coverage and Criterion surfaces for every integrated adapter, including official-foreign Penpot import, exact no-op synchronization and edited package synchronization.
  • Corrected raster conformance to gate scene and raw-RGBA bytes instead of lossless PNG-compressor output. Detached old/current trials proved identical pixels while Cargo feature unification changed only compressed PNG bytes.
  • Added a frontmatter-validated documentation compiler, GitHub Pages workflow and PDF manuscript composer. Repository Markdown remains the only editable documentation source.
  • Added explicit maturity, security-reporting and standards-development gates; the project remains pre-standard and has not published a conformance profile.
  • Added the byte-oriented browser WebAssembly developer binding and a static React JSX retentive adapter, each checked against canonical native output.
  • Added nuif-svelte-static-0 to the core, CLI and native File menu, with byte-local synchronization, hostile-input limits, performance coverage and exact official svelte/compiler 5.57.0 parse/compile evidence.
  • Added a strict workflow metadata audit to the complete harness. It rejects duplicate YAML keys, mutable external action references and repeated paths inside one artifact upload before GitHub interprets the workflow.
  • Removed the unmaintained ttf-parser dependency after RUSTSEC-2026-0192. Static package-font metadata now uses the already pinned Skrifa stack behind NUIF-owned sfnt/checksum/OS/2 checks, with a digest-bound HarfBuzz 14.4.0 metadata capture as the external conformance oracle and no advisory waiver.
  • Added nuif-mcp-tools-0, a stateless MCP 2026-07-28 stdio adapter with four pure tools, bounded frames and no filesystem, network or host-document authority. The live subprocess gate checks metadata, schemas, annotations, native byte parity and hostile frames.

Verification and distribution

The complete harness covers 10,000 seeded protocol iterations, hostile-input and allocation budgets, browser layout differential trials, text/paint pins, headless and real native GUI authoring, sandboxed install/update lifecycle, eight executable adapter profiles, an independent Python reproduction and 5,040 collaboration delivery orders.

The release workflow builds editor and MCP binaries on Linux x86-64 and Arm64, Windows x86-64, macOS Apple Silicon and macOS Intel, plus a direct-browser WASM package. It publishes per-artifact manifests, SHA-256 checksums, separate editor/MCP CycloneDX SBOMs, a combined release manifest and GitHub artifact attestations.

Remaining external boundaries

  • Native archives are not Developer ID-notarized or Windows publisher-signed. Source-built user installation remains the primary path.
  • Penpot coverage is the declared bounded profile, not arbitrary .penpot compatibility. At publication, Figma and Adobe remained researched host- specific adapters rather than implemented vendor plug-ins. ADR 0012 later replaced Adobe in the active delivery queue with an Affinity interchange profile and a Canva Apps SDK adoption profile; this historical release does not claim either live integration.
  • Structural collaboration, Grid schema, general vector paint, automatic text wrapping, an externally maintained implementation and external interoperability review remain future gates.

Canonical source.