Skip to content

v0.7.0 — Generative UI Protocol

Choose a tag to compare

@gustavoignis gustavoignis released this 10 Aug 06:04
· 352 commits to main since this release

What's new in 0.7.0

Public release of @ggui-ai/*@0.7.0 — install via npm install @ggui-ai/cli@0.7.0.

A MINOR wave: the headline is re-mintable renders — a ui://ggui/render/… locator now
survives eviction. On any server that keeps durable records, re-reading an evicted locator
re-mints it into a live mount; every failure that is not a live mount is a typed JSON-RPC
error.

Re-mintable render snapshots (#430, all three slices)

  • Durable render-identity records — one per render commit, so a render can be
    re-created after its row ages out.
  • Durable blueprint registry — write-through at registration (rows + content-addressed
    code bodies), with a purge contract (takedown by hash, retire by app, orphan collection).
  • The read path — evicted locators re-mint from the durable record: blueprint resolved,
    component body restored, props restored exactly, event ledger resumed via an explicit
    seqFloor. Refused and missing reads are byte-identical (deny ≡ miss).
  • Typed resource-read failures: closed ResourceReadErrorCode enum — NOT_FOUND
    (-32002) and the new canonical -32006 MOUNT_UNAVAILABLE
    (BLUEPRINT_UNRESOLVABLE / NOT_SUPPORTED / NOT_MOUNTABLE). -32004 is retired.
  • Conformance: the kit's first MCP-binding driver, with 12 resources/read cases —
    vendor-neutral, caller-supplied reader, no SDK dependency. Conformance-kit verdict for
    the wave: MINOR (hence 0.6.3 → 0.7.0).

Gadgets

  • Catalog foundations with a strict posture: write-boundary gates, per-element salvage,
    provenance-split storage, and the web write path (install / remove / pin).
  • Gadget CLI hardening: identity-token forwarding, gadget uninstall, truthful 403s, one
    registry-resolution chain.

Accessibility

  • Toasts and the relay cue now have an assistive-technology surface (role="alert"
    live regions that persist while hidden, so announcements are never dropped) — in both
    the design system and the iframe runtime.

Retention & identity (post-draft additions on the same tag)

  • Declared durability (#457): the three durable-substrate store ports carry a required
    durability: 'durable' | 'ephemeral', and the substrate gate grades the declaration —
    a server whose stores would forget everything on restart now answers NOT_SUPPORTED
    instead of promising restorability. SPEC §7.10.4 defines "durable" as declared; the
    conformance kit gains the all-ephemeral fusion arm, and the render-identity store
    port gets its first conformance suite.
  • Bounded resurrection (#457): opt-in maxRenderLifetimeMs caps how long an
    evicted-but-in-grace render can be kept alive by polling; defaults unchanged.
  • Blueprint id at commit (#460): cold generation resolves the blueprint id BEFORE its
    success commit — identity records are written complete once, the backfill (and its two
    round trips, and a seq-regression race) is gone. null blueprintId is now a terminal
    state, never a pending one.

Honesty & hardening

  • ggui_ops_delete_app no longer claims a cascade it doesn't perform: it names the row
    classes it orphans in a structured event, and gained the same default-app delete lock
    as the console path.
  • Lost-codeUrl failures are named instead of swallowed.
  • Registry: visibility ↔ signature-algorithm pairing enforced server-side.
  • Conformance suites can grade a store's declared-out-of-scope delete (loud refusal)
    instead of skipping it.

Host support

Re-mintable renders change what works in MCP-Apps hosts, including Claude: an evicted
ggui card no longer dies with its session — a host that re-reads the render resource gets
a live mount again (on deployments that keep durable records; servers that keep none now
say so with a typed -32006).

Install

npm install @ggui-ai/cli@0.7.0

Verify provenance: every tarball is signed via npm Trusted Publishing (OIDC); see
https://www.npmjs.com/package/@ggui-ai/cli for the public attestation.