Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 25 additions & 23 deletions components/DesktopPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,40 +17,40 @@ const COCKPIT_LEAD = [
{
src: '/desktop-preview/cockpit/10_dashboard_workflows.png',
width: 1600,
height: 1085,
height: 1100,
label: 'The workflow library',
alt: 'OpenAdapt Desktop workflow library listing two real replayed demo workflows: MockMed refill triage (halted, needs attention) and Patient intake insurance verify (verified), with an engine-ready and synced status rail.',
alt: 'Synthetic OpenAdapt Desktop workflow library with one halted and one verified workflow, rendered from Desktop PR #93.',
testid: 'desktop-preview-cockpit-dashboard',
caption:
'Two compiled workflows in one library: one needs attention and one completed with verified evidence.',
'Two compiled workflows: one needs attention and one has verified evidence.',
},
{
src: '/desktop-preview/cockpit/40_watchrun_halted.png',
width: 1600,
height: 1085,
height: 1100,
label: 'Halt evidence: this run stopped safely',
alt: 'OpenAdapt Desktop run detail for MockMed refill triage: a replay timeline with 9 of 11 steps verified and one halted, and a "This run stopped safely" card explaining that the typed value could not be verified for step_009.',
alt: 'Synthetic Desktop run detail with a halted step and the evidence reason for the safe stop.',
testid: 'desktop-preview-cockpit-halt',
caption:
'A replay stops safely at step 9 of 11 because the typed value cannot be verified. The run preserves the evidence instead of retyping blindly.',
'A run stops safely when identity and postcondition evidence are not sufficient. The evidence remains available for review.',
},
]

const COCKPIT_GRID = [
{
src: '/desktop-preview/cockpit/45_watchrun_verified.png',
width: 1600,
height: 1085,
height: 1100,
label: 'A verified run',
alt: 'OpenAdapt Desktop run detail for Patient intake insurance verify: all 11 of 11 steps verified, with a run report showing 11 steps, 8.2s duration, and $0.000 model cost.',
alt: 'Synthetic Desktop run detail showing a verified six-step workflow and its evidence contract.',
testid: 'desktop-preview-cockpit-verified',
caption:
'A clean replay: 11 of 11 steps verified, 8.2 seconds, and $0.000 model cost.',
'A clean replay: six of six steps verified with zero model calls.',
},
{
src: '/desktop-preview/cockpit/50_teach.png',
width: 1600,
height: 1085,
height: 1100,
label: 'Teach the fix',
alt: 'OpenAdapt Desktop "Teach the fix" surface: the halted type-note step with its verification-failure reason, and options to re-record the step or describe the correct target.',
testid: 'desktop-preview-cockpit-teach',
Expand All @@ -60,27 +60,27 @@ const COCKPIT_GRID = [
{
src: '/desktop-preview/cockpit/20_settings.png',
width: 1600,
height: 1348,
height: 1100,
label: 'Settings and policy',
alt: 'OpenAdapt Desktop settings: deployment lane (Cloud non-PHI vs BYOC self-hosted PHI), PHI mode, and a hosted-organization connection to https://app.openadapt.ai with a signed-in ingest-token session.',
alt: 'Synthetic Desktop settings showing the local and Cloud connection controls.',
testid: 'desktop-preview-cockpit-settings',
caption:
'Choose the deployment boundary, PHI mode, and connected OpenAdapt Cloud organization.',
'Configure the local execution boundary and an optional OpenAdapt Cloud connection.',
},
{
src: '/desktop-preview/cockpit/05_onboarding.png',
width: 1600,
height: 1085,
height: 1100,
label: 'First-run onboarding',
alt: 'OpenAdapt Desktop first-run onboarding "Record your first workflow", with screen and input permission checks granted and macOS first-launch guidance.',
alt: 'Synthetic Desktop first-run onboarding for recording a workflow.',
testid: 'desktop-preview-cockpit-onboarding',
caption:
'First launch walks through the screen and input permissions capture needs before you record.',
},
{
src: '/desktop-preview/cockpit/30_record.png',
width: 1600,
height: 1085,
height: 1100,
label: 'Record and review',
alt: 'OpenAdapt Desktop record surface in its idle state, ready to capture a demonstration, with a Start recording button.',
testid: 'desktop-preview-cockpit-record',
Expand All @@ -90,9 +90,9 @@ const COCKPIT_GRID = [
{
src: '/desktop-preview/cockpit/01_login.png',
width: 1600,
height: 1085,
height: 1100,
label: 'Sign in',
alt: 'OpenAdapt Desktop sign-in surface with a host field, a browser sign-in option, and an ingest-token paste option.',
alt: 'Synthetic Desktop connection surface with local cockpit and Cloud sign-in options.',
testid: 'desktop-preview-cockpit-login',
caption:
'Connect to OpenAdapt Cloud through browser sign-in or an ingest token.',
Expand Down Expand Up @@ -333,12 +333,12 @@ export default function DesktopPreview() {
<p className="mt-3 max-w-2xl text-sm leading-relaxed text-ink-2">
Follow the desktop workflow from capture and replay through a
verified result, a safe halt, teaching, settings, and sign-in.
The gallery uses synthetic workflows captured from the native
app and wired engine. Exact capture provenance is published
below.
The gallery uses headless synthetic fixtures from Desktop PR #93.
It does not show a live engine or customer run. Exact capture
provenance is published below.
</p>

<div className="mt-8 grid grid-cols-1 gap-8 lg:grid-cols-2">
<div className="mt-8 grid grid-cols-1 gap-8 md:grid-cols-2">
{COCKPIT_LEAD.map((item) => (
<figure key={item.src}>
<WindowFrame title="OpenAdapt Desktop">
Expand All @@ -358,12 +358,13 @@ export default function DesktopPreview() {
{item.label}.
</span>{' '}
{item.caption}
{' '}<a className="underline" href={item.src}>Open full-size image</a>
</figcaption>
</figure>
))}
</div>

<div className="mt-8 grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3">
<div className="mt-8 grid grid-cols-1 gap-8 md:grid-cols-2">
{COCKPIT_GRID.map((item) => (
<figure key={item.src}>
<WindowFrame title="OpenAdapt Desktop">
Expand All @@ -383,6 +384,7 @@ export default function DesktopPreview() {
{item.label}.
</span>{' '}
{item.caption}
{' '}<a className="underline" href={item.src}>Open full-size image</a>
</figcaption>
</figure>
))}
Expand Down
2 changes: 1 addition & 1 deletion lib/publicJsonArtifacts.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export const PUBLIC_JSON_ARTIFACTS = Object.freeze({
title: 'Desktop preview media manifest',
description:
'Capture provenance and content hashes for the public Desktop screenshots.',
sha256: '8c0c67b7af7d4cedbf93175e4a74d1a7ac7f19b799e309dbeb044cf8dced30ee',
sha256: '9619be09731ba16813ce23883521bf15e095581a67ccf0d64b27dd610aa01d43',
}),
'/lending-demo/provenance.json': Object.freeze({
source: '/lending-demo/provenance.json',
Expand Down
Loading
Loading