jenkins 9204773e7d av-test: publish bounded continuity watch and recent observations
Vendor tested Lesavka observer assets and numeric receipt schema from 6b97ceb1. Verified 65 JS tests, 10 service tests, kustomize render and Kubernetes client dry-run. No media upload, capture activation or changes to the homepage and private OCR.
2026-10-22 21:47:13 -05:00

30 lines
2.6 KiB
HTML

<!doctype html>
<html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; connect-src 'self'; media-src 'self' blob:; style-src 'self'; object-src 'none'; base-uri 'none'">
<title>A/V Test</title>
<link rel="stylesheet" href="style.css">
<main><h1>A/V Test</h1>
<p>Select a camera and microphone. Quick checks report numeric metrics automatically. Watches keep metrics here for Save metrics; audio and video never upload.</p>
<div><button id="devices">Choose devices…</button>
<label>Video <select id="video-device"></select></label>
<label>Microphone <select id="audio-device"></select></label></div>
<div><label>Mode <select id="observation-mode" title="Choose a short reported check or a long local continuity watch."><option value="quick">2-minute check</option><option value="watch">10-hour continuity watch · local metrics</option></select></label>
<button id="start" disabled>Start 2-minute check</button><button id="stop" disabled>Stop</button><button id="export" disabled>Save metrics</button></div>
<p id="watch-help" hidden>Keep this page visible and the computer awake. One capture session, no recording or upload. Save metrics before closing the page. Gaps and silence alone do not prove audio loss.</p>
<label title="Recognize externally supplied coded colors and tones. Reports a diagnostic processing-time estimate, not calibrated lip sync or latency."><input id="paired-signal" type="checkbox"> Paired test signal</label>
<label title="Optional browser-only A/V replay and download. Off by default. Cleared on the next test or page close. Recording uses extra browser resources and can affect timing; it does not establish calibrated sync. Limited to 3 minutes and 128 MiB."><input id="record-review" type="checkbox"> Record for review</label>
<p id="status" role="status">Stopped</p>
<p id="report-status" role="status">Reporting starts with the test.</p>
<video id="preview" autoplay muted playsinline></video>
<p id="record-status" role="status">Not recording</p>
<section id="review" hidden aria-label="Local recording review">
<h2>Review</h2>
<video id="replay" controls playsinline></video>
<div><a id="download-recording">Download clip</a> <button id="discard-recording">Clear clip</button></div>
</section>
<pre id="metrics">No observations.</pre>
<p>Audio/video sync and end-to-end delay: <strong>not measured by this check</strong>.
Video callback gaps can include browser scheduling. Silence is not proof of audio loss.
A separate paired-signal measurement is needed to verify synchronization.</p>
</main><script type="module" src="observer.js"></script></html>