Add prepared build artifacts, browser host and the build and
purge commands for the CLJS renderer benchmarks.
Each preparation attempt gets a build ID and a retained directory with
its manifest, log, Node case catalog, browser bundle, renderer files
and host page. Ready builds load their matching catalog in process and
serve only their own directory through an owned loopback host.
Own Chromium through a bounded process group, verify the compiled build
identity before execution and retain failed preparations for diagnosis.
Wire the diagnostic pilot to the same build, catalog, server and
browser APIs.
Add real boundary tests for artifacts, processes, servers, browsers and
CLI parsing, and register them with the performance test runner. Rename
the benchmark lint and test scripts to match the suite.
AI-assisted-by: deepseek-flash
./build and pnpm run build:wasm produced no artifacts, dropped extra
Cargo arguments, and watch compiled outside the lock without copying.
Build now runs cargo build and copy_target_artifacts under the
existing lock. Cargo arguments survive as an array, and watch re-entry
no longer duplicates profile flags.
Destinations accept environment overrides so callers can stage
artifacts outside the public paths.
AI-assisted-by: deepseek-flash
mountScenario now assigns the mounted renderer to
globalThis.playgroundAdapter and removes it on dispose, so the
wasm module is reachable from the browser console on every
playground page (for example playgroundAdapter.module._render_stats()).
The benchmark verify-pages diagnostic already used this name by
patching the served lib.js. The source is now the canonical
writer, so the wrapper's assignment is redundant.
AI-assisted-by: deepseek-flash
The playground called _init and _set_render_options with the DPR,
which sets the ratio but leaves the Skia target, backbuffer and
UI surfaces at CSS resolution. The canvas drawing buffer is
physical (CSS x DPR), so at DPR > 1 the smaller surface anchored
to the bottom-left of the framebuffer and left the top and right
edges unpainted.
Call _resize_viewbox after setting the DPR, the same sequence the
application uses in resize-canvas!, so the renderer surfaces
match the physical drawing buffer.
Cover DPR 1, 1.25 and 2 in the adapter test.
AI-assisted-by: deepseek-flash
Apply at most one _set_view + _render_from_cache per animation
frame in the wasm playground, accumulating the wheel zoom factor
and the last cursor point instead of rendering synchronously on
every wheel event.
This mirrors schedule-zoom! in
app.main.ui.workspace.viewport.actions so playground
interactions match the application. A comment records that the
playground should call the real function once it migrates to
ClojureScript.
Extend the adapter tests with the coalesced flush, factor reset
across frames, scale clamps, and per-move pointer pan.
AI-assisted-by: deepseek-flash
Compare every on/off combination of requested Cargo features over the
Boolean-lattice edges, in Gray-code build order, with a matrix index of
configs, edge comparisons and provenance.
Single runs record explicit feature sets as schemaVersion 2 with resolved
defaults and build environments. Edge comparisons stay diagnostic; edges
clean apart from the intended toggle are marked controlled.
Validate with 68 focused tests, CLI fault checks, dry runs, and container
smoke matrices for branch-b pan cases.
AI-assisted-by: muse-spark-1.3-contributor-free