- runtime.mjs gives every runtime file a unique served name (wai-ui-<name>,
wai-ui-room-<name>.js, wai_ui_room_moq, wai_ui_room_live): the WAI site fingerprints
assets keyed by basename, and an export's vendor/ carries the same layout;
- a room widget takes the room service for its kind (data-service-live, -watch,
-show) when the page names one;
- WAI's value rules (a poll's options and seconds, a show's audience, a watch room's
source) wait for a pending statement to complete, as the line language's own errors
do: a poll's `seconds` reads 2 before 20, and the poll no longer leaves the page for
that chunk (found by the end-to-end run; a unit test now streams every recording a
character at a time and requires that no widget, once shown, goes);
- .github/workflows/wai-ui.yml: tests, clippy and the wasm32 surface, the line
language's verifier and its mutations, the page modules (linux); Create in the
browser (macos);
- the e2e drives a WAI site build with --site;
- wai-ui cites joule-ui's spec by its file (joule-ui/SPEC.md §N).
Co-Authored-By: Claude Opus 5.5 <[email protected]>