fix(e2e): improve test stability and developer experience (#337)

* fix(e2e): add masks for dynamic content and increase timeouts for slow servers

- Add HOST_MASKS for Tool Input/Result panels with dynamic timestamps
- Add say-server to SLOW_SERVERS (10s) for TTS model download
- Add say-server to EXTRA_WAIT_MS (30s) in generate-grid-screenshots

* feat: add update-lock:docker script to regenerate lockfile with public registry

* pin package versions for dev compatibility

* feat(basic-host): add ?theme=hide query param to hide theme toggle in screenshots

- Add hideThemeToggle param to getQueryParams()
- Conditionally render ThemeToggle based on ?theme=hide
- Update e2e tests to use ?theme=hide for consistent screenshots

* update screenshots

* update screenshots

* fix(husky): load Node.js environment for GUI apps like GitHub Desktop

* fix(e2e): increase map-server wait time to 15s for tile loading

* fix(e2e): increase waitForAppLoad timeout to 30s for nested iframe loading

* ci: add workflow to update e2e snapshots

* ci: trigger snapshot update on push to this branch

* chore: update e2e snapshots [skip ci]

* ci: trigger CI after snapshot update

* style: fix prettier formatting in update-snapshots workflow

* fix: pin seroval, seroval-plugins, and solid-js for artifactory compatibility

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Olivier Chafik 2026-01-25 20:18:38 +00:00 • committed by GitHub
commit e479497371
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -55,13 +55,14 @@ interface HostProps {
type ToolCallEntry = ToolCallInfo & { id: number };
let nextToolCallId = 0;
// Parse URL query params for debugging: ?server=name&tool=name&call=true
// Parse URL query params for debugging: ?server=name&tool=name&call=true&theme=hide
function getQueryParams() {
const params = new URLSearchParams(window.location.search);
return {
server: params.get("server"),
tool: params.get("tool"),
call: params.get("call") === "true",
hideThemeToggle: params.get("theme") === "hide",
};
}
@ -107,7 +108,7 @@ function Host({ serversPromise }: HostProps) {
return (
<>
<ThemeToggle />
{!queryParams.hideThemeToggle && <ThemeToggle />}
{toolCalls.map((info) => (
<ToolCallInfoPanel
key={info.id}