station-e2e-qa

Validates the Station canvas dashboard end to end via a Node and CDP test harness.

14|Updated Mar 2, 2026
One-click install
npx skills add https://github.com/intendant-dev/Intendant --skill station-e2e-qa-intendant-dev
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: station-e2e-qa
Source: https://github.com/intendant-dev/Intendant/tree/main/skills/station-e2e-qa
Command: npx skills add https://github.com/intendant-dev/Intendant --skill station-e2e-qa-intendant-dev

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Verifying a WASM-canvas dashboard is hard because there is no DOM to query, and renderer regressions (WebGPU failures, frame pacing stalls, broken interactions) slip through ordinary unit tests. This Skill provides a repeatable end-to-end QA workflow for the Station dashboard using a zero-dependency Node + Chrome DevTools Protocol harness. ## Core Features & Use Cases - Renderer health probes: Run named probes (status, rendered, fps, webgpu, smooth, debug-json) against a launched dashboard on headless CI boxes or headed GPU hosts, with configurable fps and frame-gap thresholds. - Agentic canvas interaction: Drive the canvas through station.debug_json() and station.activate(name), or use pointer-path interaction probes that click hotspot zones and verify status text. - Perf regression gate: Run --station-perf-eval before and after renderer changes and diff the JSON reports (fps, p95 frame gaps, interaction latencies) to catch regressions. - Use Case: Before merging a renderer change, run the headed GPU acceptance command on the dual-GPU host with Vulkan flags, capture the perf report, and diff it against the baseline to confirm no frame pacing or activation regressions. ## Quick Start Run the Station dashboard validator with the headless gate probes on a throwaway port and show me the JSON pass/fail result.

Frequently Asked Questions about station-e2e-qa

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run end-to-end tests on a WASM canvas dashboard?▼

Use the validate-dashboard.cjs harness, which launches Chromium via CDP, opens the Station tab, and runs named probes like rendered, fps, and webgpu. Since the canvas has no DOM, interaction goes through the page-global station.debug_json() and station.activate() APIs.

How do I test WebGPU rendering on a headless CI box?▼

Run the headless gate with --station-probe status,rendered,fps,debug-json, which works over plain SSH without a GPU. Hardware WebGPU confirmation requires a headed run on a GPU host with --enable-unsafe-webgpu and Vulkan flags.

How do I detect frame pacing regressions in a canvas renderer?▼

Use the smooth probe, which samples requestAnimationFrame deltas and fails when p95 frame gap exceeds the threshold or any gap exceeds 250ms. The --station-perf-eval flag produces a before/after JSON report you can diff across renderer changes.

Why does Chromium fail with Missing X server or DISPLAY on a GPU host?▼

Non-login SSH shells lack the graphical session environment. The validator auto-imports DISPLAY, XAUTHORITY, and related variables from systemctl --user show-environment, but the user session must be live and XAUTHORITY must be set for ozone-x11.

Can I test display streams without a Wayland portal grant?▼

Yes, the QA run remains valid without a grant; it simply measures the no-stream Station. Real WebRTC display streams require an XDG Desktop Portal grant, which needs the GNOME Remote Desktop approval flow and cannot be approved from a bare SSH shell.