docs(lab): freeze M4.8 viewer and regression canon

This commit is contained in:
DCCONSTRUCTIONS
2026-08-24 22:38:54 +03:00
parent 4fa1669ab7
commit eb416ff80a
4 changed files with 293 additions and 15 deletions
@@ -175,6 +175,36 @@ receives a concise typed projection.
DOM or CSS classes. The product UI test discovers every `ENNResult.tsx`
automatically and rejects such a fork.
`components/laboratory/LaboratoryRecordedClipPlayer.tsx` exclusively owns the
versioned `missioncore.laboratory-recorded-clip-viewer/v1` camera transport and
clock. Feature renderers may add typed overlays or a synchronized spatial scene
through its slots. Source-paced spatial evidence follows exact media sequences
through a bounded reusable look-ahead cache; frame-step remains an explicit
capability only when the source cannot keep pace. Experiment-named players must not fetch a JPEG
per playback frame, instantiate MediaSource, schedule frame timers, or declare a
new Rerun receiver/blueprint. Forward buffered progression and backward
loop/seek are separate shared-player transitions; a backward target cannot be
treated as an ordinary rolling-buffer advance.
The shared player owns the admitted `primary` camera and `companion` camera +
spatial presentations. A feature mode may not disable playback, unmount the
camera, or create a second viewer configuration merely to show 3D/PLAN.
`LaboratoryEvidenceViewer` owns the reusable `stacked` chrome layout: one header,
one visual stage and one transport/timeline rail joined into a seamless surface.
`LaboratoryRecordedClipPlayer` reuses the canonical `SplitPane` for resizable
spatial + companion-camera evidence while keeping the recorded camera owner
mounted across CAMERA/3D/PLAN transitions. Feature code supplies typed actions
and modes; it does not declare a feature-local splitter. M4.8 reuses one
`M48EvidenceModeRail` projection in the report, candidate-assisted correction,
independent review and adjudication surfaces. The rail is the admitted
viewport overlay: a canonical `GlassSurface` containing three default-size
`IconButton` controls and no local control geometry. CAMERA/3D/PLAN therefore
do not return to the stacked header or fork per workflow:
CAMERA visibility is independent from the nullable 3D/PLAN spatial mode, and
their state transition cannot hide both channels. Candidate seed data belongs
to the correction contract only; it cannot enter the blind source decoder or
upgrade assisted evidence to independent truth.
Legacy/integrated diagnostic viewers may keep a result interaction inside the
evidence slot only where that viewer is already the admitted result instrument.
This exception does not apply automatically to a new LAB.