OVERSCANUI KIT
no button at all a worn bezel with weight channels do not converge zero depth instrumented, full of smoke a field of real characters a camera looking out additive, so no shadow hairlines, no new shader no raster, so no scanlines

A stage it has not seen is never shown as passed. The page plays a new command every 7 seconds; the buttons send one now. Each command is a row, each stage a column with its own window. The verdict names the furthest stage a report actually passed, in that stage's word: SENT reads SENT, never "executed". A stage whose window closes unanswered reads T/O, which is neither a pass nor a fail, and the next window still opens; an answer after its window is drawn LATE. A stage verified only because a telemetry parameter reached its expected value is hollow and marked TM, and a verdict resting on one says NOT CREDITED (Armitage, Terma/ESA: "can we be completely certain that it changed because of our command?"). A newer command to the same target supersedes the older one's open stages. ACCEPTED is declared ACCEPTED:5:fail: there, and only there, a timeout fails the command, and the head marks it before it happens. The scenes below are snapshots in attributes alone, on the element's default stages; the feed and the buttons act on the theme rows under them.

demo/verifier.html, from this page
import 'overscan'
import 'overscan/overscan.css'

<ov-verifier
  label="SADA"
  timeout="900"
  commands="C7 SADA STEP +5 @SADA"
  reports="C7 TO-RANGE=pass, C7 FROM-RANGE=pass"
></ov-verifier>
the station has it; the spacecraft has not answered
RECEIVED acknowledgement lost, the rest reported
complete by telemetry alone: not credited
rejected on board at ACCEPTED
a newer command to the same valve
declared stages; a silent ACK fails it
variation: label="THERMAL" commands="C8 HTR-2 ON @HTR2" reports (128 characters)
import 'overscan'
import 'overscan/overscan.css'

<ov-verifier
  label="THERMAL"
  commands="C8 HTR-2 ON @HTR2"
></ov-verifier>

const reports = await fetch('./data/verifier-1-reports.json').then(r => r.json())
document.querySelector('ov-verifier').setAttribute('reports', reports)
terminal
variation: label="PROPULSION" commands="C9 PUMP-1 START @PUMP1" reports (123 characters)
import 'overscan'
import 'overscan/overscan.css'

<ov-verifier
  label="PROPULSION"
  commands="C9 PUMP-1 START @PUMP1"
></ov-verifier>

const reports = await fetch('./data/verifier-2-reports.json').then(r => r.json())
document.querySelector('ov-verifier').setAttribute('reports', reports)
industrial
variation: label="MECHANISMS" commands="C10 BOOM DEPLOY @BOOM" reports="C10 TO-RANGE=pass, C10 FROM-RANGE=pass, C10 RECEIVED=pass, C10 ACCEPTED=fail"
import 'overscan'
import 'overscan/overscan.css'

<ov-verifier
  label="MECHANISMS"
  commands="C10 BOOM DEPLOY @BOOM"
  reports="C10 TO-RANGE=pass, C10 FROM-RANGE=pass, C10 RECEIVED=pass, C10 ACCEPTED=fail"
></ov-verifier>
cyber
antiseptic
esper
neo
machina
holo
aegis
vector
226px cell