From 400f1436956eaa0e54b3c1ab5f814e28fb4936f2 Mon Sep 17 00:00:00 2001 From: abrichr Date: Sun, 26 Jul 2026 08:05:06 -0400 Subject: [PATCH] Ship exact Frappe governed demo --- components/EvidenceMediaPlayer.js | 22 +- components/ReferenceDemoShowcase.js | 1 + cypress/e2e/basic.cy.js | 20 +- cypress/e2e/reference-demo.cy.js | 83 +- data/referenceDemos.js | 58 +- data/referencePresentationAssets.mjs | 45 + lib/executionOverlayTimeline.js | 2 +- lib/publicJsonArtifacts.mjs | 54 + .../inventory.json | 60 + .../manifest.json | 313 ++++ .../frappe-source-recording.poster.png | Bin 0 -> 194461 bytes .../frappe-source-recording.unbound.mp4 | Bin 0 -> 554703 bytes .../replay/frappe-replay.contexts.json | 448 +++++ .../frappe-replay.control-overlay.v2.json | 1496 +++++++++++++++++ .../replay/frappe-replay.frame-pts-us.json | 57 + .../replay/frappe-replay.media-binding.json | 65 + .../replay/frappe-replay.mp4 | Bin 0 -> 137925 bytes .../replay/frappe-replay.poster.png | Bin 0 -> 123507 bytes 18 files changed, 2676 insertions(+), 48 deletions(-) create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/inventory.json create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/manifest.json create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/recording/frappe-source-recording.poster.png create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/recording/frappe-source-recording.unbound.mp4 create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/replay/frappe-replay.contexts.json create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/replay/frappe-replay.control-overlay.v2.json create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/replay/frappe-replay.frame-pts-us.json create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/replay/frappe-replay.media-binding.json create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/replay/frappe-replay.mp4 create mode 100644 public/reference/frappe-lending-loan-application-standard-synthetic-v1/replay/frappe-replay.poster.png diff --git a/components/EvidenceMediaPlayer.js b/components/EvidenceMediaPlayer.js index fe4cab0..46cc64d 100644 --- a/components/EvidenceMediaPlayer.js +++ b/components/EvidenceMediaPlayer.js @@ -20,6 +20,7 @@ export default function EvidenceMediaPlayer({ media, application, phase, + modeLabel, exactPresentation = null, evidenceHref = null, }) { @@ -148,12 +149,13 @@ export default function EvidenceMediaPlayer({ setDuration(Number.isFinite(video.duration) ? video.duration : 0) } - const phaseLabel = - phase === 'recording' + const accessibleModeLabel = + modeLabel ?? + (phase === 'recording' ? 'Demonstration' : phase === 'halt' ? 'Fail-safe halt' - : 'Compiled replay' + : 'Compiled replay') const frame = exactPresentation ? executionOverlayFrameAt( exactPresentation.timeline, @@ -197,6 +199,7 @@ export default function EvidenceMediaPlayer({ exactPresentation.networkObservation ) : null + const overlayEvidenceHref = presentation?.evidenceHref ?? evidenceHref useEffect(() => { const stage = stageRef.current @@ -228,6 +231,9 @@ export default function EvidenceMediaPlayer({ data-testid="reference-evidence-player" data-media-kind={media.kind} data-media-src={media.src} + data-decoded-frame-index={ + decodedFrameIndex === null ? 'unbound' : decodedFrameIndex + } data-target-tracking={ exactPresentation ? 'exact-decoded-frame-bound' @@ -298,9 +304,9 @@ export default function EvidenceMediaPlayer({
@@ -345,8 +351,8 @@ export default function EvidenceMediaPlayer({ {presentation.explanation} )} - {(evidenceHref ?? presentation.evidenceHref) && ( - + {overlayEvidenceHref && ( + View execution evidence )} @@ -357,7 +363,7 @@ export default function EvidenceMediaPlayer({