Restore the human-facing results viewer lost in the component-webcrypto migration (polymorph-components/polymorph-webcrypto#274 replaced the incumbent harness's browser viewer/report with committed markdown matrices + results-JSONL). Beyond triage, a good viewer page is a public face for suites built on this stack — worth doing well for generating human interest, not just as tooling.
Since the results wire format and the aggregate are the contract now, the viewer belongs here, not downstream: a static page (no server round-trips; GitHub Pages-friendly) that consumes one or more results-JSONL streams and/or the aggregate's output and renders:
- the target × case-group matrix (what
aggregate -o matrix.md prints, interactive: filter by status/target/tag, expand groups to cases);
- per-case detail: status, provenance, detail line, and the diagnostics sideband;
- validation surface: warnings/errors from the aggregate (coverage, artifact binding, manifest cross-checks) — the viewer must not look greener than the gate;
- diffing two runs would be a natural follow-on (regression triage across targets).
Prior art: the incumbent webcrypto harness's conformance/web/ viewer (see the pre-#274 tree) — live "test this browser" runs plus a results browser. The live-run half is #5's territory; per #5's lesson, the viewer page and any gating browser adapter must share one harness module or they drift. This issue is the presentation half and is useful standalone (render a JSONL file produced by any runner, no browser-runner required).
Restore the human-facing results viewer lost in the component-webcrypto migration (polymorph-components/polymorph-webcrypto#274 replaced the incumbent harness's browser viewer/report with committed markdown matrices + results-JSONL). Beyond triage, a good viewer page is a public face for suites built on this stack — worth doing well for generating human interest, not just as tooling.
Since the results wire format and the aggregate are the contract now, the viewer belongs here, not downstream: a static page (no server round-trips; GitHub Pages-friendly) that consumes one or more results-JSONL streams and/or the aggregate's output and renders:
aggregate -o matrix.mdprints, interactive: filter by status/target/tag, expand groups to cases);Prior art: the incumbent webcrypto harness's
conformance/web/viewer (see the pre-#274 tree) — live "test this browser" runs plus a results browser. The live-run half is #5's territory; per #5's lesson, the viewer page and any gating browser adapter must share one harness module or they drift. This issue is the presentation half and is useful standalone (render a JSONL file produced by any runner, no browser-runner required).