Guide validation and limits

These guides describe the repository checkout, including unreleased fixes. Published package versions can lag the checkout.

Area Evidence Limits
SDK connection / password handling Regression tests and live alpha/local VDO.Ninja video/data interop Chrome and @roamhq/wrtc; not every browser/network
SDK file, agent RPC, custom control examples node demos/sdk-workflows.cjs: real peer connections, byte comparison, RPC result, rejected invalid command In-memory local example; no device actuation or durable job store
Status dashboard Exact guide snippet in two real Chrome peers; repeated snapshots verified in both directions, then cleanup Synthetic status; no sensor hardware or offline persistence
Native VDO.Ninja file transfer Existing browser interop harness and SDK live suite Historical file-transfer flakiness is documented in the interop notes
Remote VDO.Ninja commands Checked against local lib.js / iframe.html; exact iframe mute example and page API details/mute tested against alpha A page control ID grants control, not read-only access
Tally / VRCTally Real isolated OBS Browser Sources, alpha publishers, labels, UDP packets, heartbeat and loss handling Avatar rendering and OSCQuery discovery not tested
MCP examples Checked against local ninjamcp 0.4.2 tool contract MCP is separately versioned; no new live MCP run in this documentation pass
Recording Corrected track-readiness flow and checked recorder sample code Browser recorder check uses synthetic media; no long-duration or every-codec coverage
WHIP/WHEP Client signatures and bundled examples inspected No external ingest service exercised in this pass
Website guides Static HTML built from Markdown, link/anchor checks, browser layout inspection External links and services can change

Reproduce

Discovery review reproduced a throwing autoConnect filter allowing a peer through. A regression test failed before the fix and now confirms that the peer is skipped while discovery continues. This is SDK-side selection logic; VDO.Ninja signaling message shapes are unchanged.

npm run build
npm run test:docs
npm run test:reliability
npm run test:types
node --test tests/tally-osc.test.cjs tests/social-stream-compatibility.test.js
node demos/sdk-workflows.cjs

node tests/interop/guides-live.cjs runs the dashboard snippet in two peers, the recording-guide snippet with real incoming synthetic audio/video, the iframe and page-control examples against alpha, and guide layout checks. Start node tests/interop/serve.js first. Supply PLAYWRIGHT_MODULE if Playwright is installed elsewhere and BROWSER_CHANNEL=chrome to use installed Chrome.

Reviewing the diagnostic examples also exposed an SDK bug: getStats() traversed the previous connection layout and returned empty results. It now returns reports from both current peer directions, with connectionType identifying their source; a regression test covers all-peer and single-UUID queries.

Live SDK tests (npm test) require a native WebRTC dependency and network access. Browser/OBS tests are opt-in; see the interop instructions and tally validation. Never run the OBS harness against an on-air instance.