Skip to content

v0.4.128

@uladzimir-klyshevich-epam uladzimir-klyshevich-epam tagged this 29 Sep 09:16
Widget JS can photograph itself at the exact moment of its logic:

    jsr.capture({name: 'city'}).then(function (shot) {
      console.log('SELFIE ' + shot.path);
    });

Core bridge channel (__jsr_capture) with an optional
JsRuntimeConfig.captureHandler; hosts without one reject the promise
(voxel.attach-style graceful degradation). The channel is
fire-and-forget ON PURPOSE: an awaited capture would starve
__jsr_event_done and wedge every subsequent callEvent, and resolving
from the tester zone re-enters the QuickJS runtime from a
native-callback context (isolate-wide deadlock). The CLI therefore
resolves immediately with the future path (voxel.mesh sync pattern)
and rasterizes the tree snapshot in its testWidgets phase — PNGs land
under --capture-dir, listed in the --json report captures[].

This closes the loop for agent widget-authors whose only tool is
jsr_widget test: it now produces both logic evidence and visual
evidence. Also: parseJsrToolArgs/defaultQuickjsLibEnv/loadWidgetSource
and JsVoxelChunk.fromDynamic decomposed under the CRAP-12 ratchet, with
tests for the cache walk, usage errors and manifest fallbacks.

Documented in the authoring skill (jsr API + §8.3) and AGENTS.md.
Assets 2
Loading