Commit graph

14 commits

Author SHA1 Message Date
Darkatse
d6fcd0bf9b test: run DOM tests in Chromium and WebKit
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
2026-11-07 22:29:39 -05:00
Darkatse
2bd2c30230 refactor(assistant): extract the UI engine as @tauritavern/app-use
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.
2026-10-18 18:44:16 -04:00
Darkatse
5013efde87 chore(sync): finalize SillyTavern 1.19 compatibility
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.
2026-09-27 23:17:48 -04:00
Darkatse
159e5c4dd8 feat(assistant): add conversation history and per-session drafts 2026-09-22 13:40:10 -04:00
Darkatse
2ae703aa08 feat(assistant): integrate the in-app assistant drawer
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.
2026-09-22 04:25:22 -04:00
Darkatse
00156ea7e4 feat(settings): add extensions menu shortcuts 2026-09-03 21:07:15 -04:00
Darkatse
742b7b0b9f docs(frontend): describe current first-party UI architecture 2026-08-25 19:55:35 -04:00
Darkatse
c3f8b3ee1b feat(mcp): add registration-level tool description overrides 2026-08-25 01:14:40 -04:00
Darkatse
a7744d22a6 perf(agent): enable React Compiler 2026-08-24 21:52:01 -04:00
Darkatse
e6177f4ba6 refactor(agent): migrate timelines to React 2026-08-24 21:39:24 -04:00
Darkatse
61a1abd55b refactor(dev): migrate dev logs panel to React 2026-08-23 21:51:16 -04:00
Darkatse
f74610cdd8 refactor(settings): migrate settings panel to React 2026-08-23 16:24:29 -04:00
Darkatse
7173fb1480 refactor(sync): migrate sync panel to React 2026-08-22 23:36:13 -04:00
Darkatse
94f6209c34 refactor(frontend): establish React migration foundation 2026-08-20 21:21:47 -04:00