Every test that needs a DOM now runs in Rstest browser mode, once in each
engine the release WebViews use: Chromium (Windows, Android, HarmonyOS) and
WebKit (iOS, macOS, Linux). happy-dom has no layout, scrolling or default
actions, and several tests patched it to assert facts it lacked. happy-dom,
fake-dom, the node:module loader hooks, the vm-based frontend runtime and
the manual acceptance pages are removed; pure Node logic stays on node:test.
Tests load code the way the product does. Bundled code (first-party UI,
app-use, the editor bundle) is bundled by Rstest. Host JavaScript, which the
WebView loads by URL, is imported natively from a test server without
bundling or mocks, and code that needs the whole application runs in an
application frame. Layout tests use component styles and real sizes.
test:ui and test:browser become test:dom, which builds once and runs both
engines. CI installs both browsers on all three platforms, and the
performance baseline imports playwright and shares the test server's files.
Validation: types, lint, guardrails, contracts, Rust tests and clippy; all 345 DOM tests pass in Chromium and in four full WebKit runs with a clean console
Tavern Studio needs the same snapshot and interaction engine inside its
preview pages. The engine, its tests and the cursor move to
packages/app-use, an independently versioned AGPL package that imports
no TT modules. The in-app assistant consumes it from the workspace, and
the old ui/ directory is removed.
TT differences arrive as options: the [data-tt-sensitive] marker, the
assistant history area, the control-shell surface and #chat scrolling.
scrollChatSurfaceTo is exposed on the page context, so interact no
longer imports /script.js and runs synchronously. The package exports
the four tool definitions; the assistant appends its own notes and
implements evaluate and read_logs. The cursor follows SmartTheme
colors, and its CSS is bundled with the assistant's styles.
Pushing an app-use-v<VERSION> tag publishes the package through npm
trusted publishing.
Validation: pnpm run check; browser iframe checks; the packed tarball
works outside the repository.
Sync secret inputs, info block animations, and remaining locale and help links.
Declare 1.19.0 compatibility and align architecture docs and localized READMEs.
Validation: pnpm run check; git diff --check.
Packaging and device tests skipped as requested.
Mount a default-enabled assistant in the existing A drawer with streaming conversation, tool details, settings and Skill import. Preserve drawer theme and navigation behavior, and persist desktop content width separately from the Agent profile.