You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(tools): add --json output and expand invariant coverage in gauntlet.py (#17)
gauntlet.py verified a running bundle over raw CDP but only checked a
small set of surfaces and emitted human-readable text, so it could not be
consumed by CI or a dashboard. Keep the zero-deps, raw-CDP design and add:
- A --json flag that emits {surfaces, invariants, ok} on stdout and sets
the exit code accordingly. Without it the text report is unchanged.
- Seven new invariants, all already spoofed by the default persona the
bundle launcher injects:
- navigator.hardwareConcurrency present and plausible (1-128)
- navigator.deviceMemory present
- navigator.languages well-formed (a real list, length >= 2)
- Intl.DateTimeFormat().resolvedOptions().timeZone is an IANA zone
- canvas 2D noise present (a flat grey fill reads back perturbed)
- navigator.gpu adapter present (WebGPU, via the swiftshader adapter)
- navigator.plugins non-empty
The surface-collection expression becomes an async IIFE so it can await
navigator.gpu.requestAdapter(); ws_eval already awaits the promise.
Document --json in --help and the module header, and commit a reference
docs/gauntlet-sample.json showing a passing report.
Closes#12
0 commit comments