docs(lab): freeze M4.8 viewer and regression canon
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user