Skip to content
Gruntend v0.5.0 beta

Changes

See what is queued for the next SDK release and what changed in every published version.

Next release

Upcoming

0 pending

There are no changes queued for the next release.

Published

Released

v0.5.0

Git tag

Minor Changes

  • Add first-class generated UI renderers so applications explicitly choose how a compiled generated-UI frame is committed to its target.c43e31e
  • Export renderer and session contracts from gruntend-sdk/renderer.
  • Add the built-in DOMPurify renderer at gruntend-sdk/renderer/dom-purify with an exact markup policy and direct DocumentFragment commits.
  • Route Svelte, React, Vue, and Solid adapters through the selected renderer and add shared render and action lifecycle callbacks.
  • Add renderer conformance, sanitization, event delegation, and lifecycle coverage. Framework adapters now require a renderer prop. Create a renderer once for the mounted component lifetime and pass it alongside the GeneratedUi value. DOMPurify is the only built-in browser renderer; applications can implement the renderer interface for other targets or commit strategies.

v0.4.0

Git tag

Minor Changes

  • Make code-plan execution an explicit, first-class application choice.b36be82

Migration

  • Pass an object-based CodePlanExecutor to every direct runCodePlan() call and every createGruntendClient() call.
  • Preserve current behavior by importing createJailJsCodePlanExecutor() from gruntend-sdk/executor/jailjs and passing its result as executor.
  • Override the client executor for an individual plan with the existing per-run executor option.

First-class browser executors

  • Add stable executor profiles with an ID, a controlled or isolated trust label, and a generated-UI capability declaration.
  • Export the executor contract from gruntend-sdk/executor.
  • Export explicit JailJS and QuickJS strategies from gruntend-sdk/executor/jailjs and gruntend-sdk/executor/quickjs-browser.
  • Keep JailJS as the lightweight controlled executor with its ES5 transformation, dotted tools, generated UI, and maxOps operation budget. JailJS is not presented as a hostile-code isolation boundary.
  • Add an asynchronously initialized quickjs-browser executor backed by the original QuickJS engine compiled to WebAssembly. It creates a fresh runtime and context for every plan, copies supported values rather than exposing host objects, bridges asynchronous tools through guest-owned promises, forwards console events, and enforces memory, stack, and deadline limits.

Strict selection and failure behavior

  • Pin the initial plan, Promise continuations, render closure, and event closures to exactly one selected executor.
  • Normalize initialization, unsupported-UI, abort, and execution failures.
  • Never automatically fall back, downgrade, or replay a complete plan through a second executor. This prevents completed effects from being repeated after a later failure.

Generated UI lifecycle

  • Represent QuickJS templates and retained closures as guest-owned values behind the existing synchronous generated-UI contract.
  • Add idempotent generated-UI cleanup so replacement and unmount release retained QuickJS functions, context handles, and runtime memory.

Demo and verification

  • Add shared JailJS and QuickJS conformance coverage for data, asynchronous tools, Promise.all, dotted tools, validation, expected failures, unexpected faults, console events, aborts, templates, closure state, cleanup, and limits.
  • Add strict executor-selection, no-replay, lifecycle, and host-isolation tests.
  • Let the SvelteKit restaurant demo choose JailJS or lazily initialized QuickJS/WASM for each complete plan.

v0.3.1

Git tag

Patch Changes

  • safely escaped values can be combined inside quoted attributes while event handlers and tage675749

v0.3.0

Git tag

Minor Changes

  • Add restricted native SVG chart markup to generated UI. SVG markup is reconstructed through explicit element and attribute allowlists, with external resources, executable capabilities, malformed tags, and forged delegated-handler targets rejected.8549f18

v0.2.0

Git tag

Minor Changes

  • Make application-owned code-plan prompts first-class by allowing generateCodePlan() to receive exact system and user prompt text.1cfd775
  • Prompt is first class citizen now1cfd775

v0.1.0

Git tag

Release notes

  • Initial public beta release.
  • Define typed application tools with runtime input and output validation.
  • Run generated or handwritten JavaScript code plans through app-owned handlers.
  • Render task-specific generated UI with the html tagged-template runtime.
  • Mount generated UI through DOM, React, Svelte, Vue, and Solid adapters.
  • Generate code-plan prompts and parse model responses without coupling execution to one LLM provider.