qa-inspect-host 0.1.8

Host a Blitz document and serve it over the inspection socket
docs.rs failed to build qa-inspect-host-0.1.8
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

qa-inspect-host

Host a Blitz document over the inspection socket, with no window.

QA_INSPECT_PAGE=/path/to/one/built/page qa-inspect-host

It prints its descriptor path on stdout once it is serving, then serves until killed. ps-qa sweep-components launches one per component and waits for that line.

The input is a bundler-generated component shell, not a general-purpose web page loader. The host reads the page's first double-quoted script src, first double-quoted stylesheet href, and data-theme, then mounts that bundle into an empty #root. Authored body markup is intentionally not copied. Component fixtures must therefore create their content from the referenced bundle; use a browser integration test for a static or multi-script document.

Why

A component sweep asks what happens when a control is pressed. Answering that needs a live document behind a socket: a screenshot says only that something painted, and a semantic tree written to a file says only what was on screen at one instant, so every check involving a click is undecidable against either.

Hosting the socket used to require opening a window, because AgentControlServer::start was private to the runtime. A sweep of 71 components meant 71 windows over whatever the person at the machine was doing. Nothing about that server needs a window, and this crate is what that buys: a process that owns a document, serves inspection, and paints nothing.

Why not part of ps-qa

ps-qa may not depend on blitz, tauri, winit or wgpu, so that driving a control does not build a browser engine. A host has to link a renderer. Two crates, one socket between them.

What it answers

Inspect, Focus, Hover, Click, DoubleClick, SetValue and Key. ScrollIntoView is an acknowledged no-op because a single component page is already in view. Anything else returns unsupported rather than a plausible Ack, because a check that silently did nothing reports a working component as broken.

Coordinate pointer and wheel streams are not implemented: those carry window position and button state on the runtime itself, which a windowless host has nothing to attach to. Semantic hover targets an exact inspected node and is fully supported.

WindowComposition is answered as explicitly unsupported because a headless document has no native window. That keeps composition checks testable without inventing a plausible native result.

The current packaged host is validated on macOS. The protocol and driver run on Linux, but Linux renderer-host packaging is not yet claimed by this crate.