3 / 3
+Healthy RDP runs confirmed the intended identity and saved effect.
+Real RDP execution
++ This synthetic healthcare task crosses a real RDP client and server. OpenAdapt records the remote pixels, compiles the demonstration, verifies the intended record before the write, and checks the saved result outside the remote screen. +
++ Reference qualification with synthetic data. The video uses paced presentation timing and exact retained RDP frames. A customer application and environment receive their own qualification. +
+3 / 3
+Healthy RDP runs confirmed the intended identity and saved effect.
+3 / 3
+Changed-screen trials halted before a write.
+0
+Model calls and silent incorrect successes in the accepted batch.
+
+
From request to receipt
diff --git a/public/demos/rdp/openadapt-rdp-demo.mp4 b/public/demos/rdp/openadapt-rdp-demo.mp4 new file mode 100644 index 0000000..ebd93be Binary files /dev/null and b/public/demos/rdp/openadapt-rdp-demo.mp4 differ diff --git a/public/demos/rdp/poster.jpg b/public/demos/rdp/poster.jpg new file mode 100644 index 0000000..30fe840 Binary files /dev/null and b/public/demos/rdp/poster.jpg differ diff --git a/public/demos/rdp/presentation.manifest.json b/public/demos/rdp/presentation.manifest.json new file mode 100644 index 0000000..eb55ad1 --- /dev/null +++ b/public/demos/rdp/presentation.manifest.json @@ -0,0 +1,47 @@ +{ + "fps": 12, + "frame_size": [ + 1280, + 800 + ], + "phases": [ + { + "outcome": "RECORDED", + "phase": "Demonstration", + "presented_frame_count": 5, + "source_frame_count": 5, + "summary": { + "actions": 4, + "model_calls": 0, + "surface": "real RDP round-trip" + } + }, + { + "outcome": "VERIFIED", + "phase": "Governed replay", + "presented_frame_count": 5, + "source_frame_count": 5, + "summary": { + "effect_confirmed": true, + "identity_verified": true, + "model_calls": 0, + "silent_incorrect_success": false + } + }, + { + "outcome": "HALTED", + "phase": "Changed-screen refusal", + "presented_frame_count": 1, + "source_frame_count": 1, + "summary": { + "effect_written": false, + "model_calls": 0, + "safety_halt": true + } + } + ], + "schema_version": "openadapt.rdp-presentation-render.v1", + "timing": "paced presentation timing; source frames remain exact", + "video": "openadapt-rdp-demo.mp4", + "video_sha256": "66bced89b5c0d3a5ddd5b04f7ec1181c91f26030d6f0f2c14436405ffefa3812" +} diff --git a/public/demos/rdp/qualification.json b/public/demos/rdp/qualification.json new file mode 100644 index 0000000..ee35a34 --- /dev/null +++ b/public/demos/rdp/qualification.json @@ -0,0 +1,525 @@ +{ + "accepted": true, + "base_commit": "bd4c81e7e33353d275d6f4320663e6e187f73198", + "candidate_commit": "f23f6c75d3b480b56f195717e04f903714e3b66c", + "caveat": "Synthetic Tk task over real FreeRDP-transported pixels + input, but NOT Citrix ICA/HDX, NOT the aardwolf transport, NOT a Windows application qualification, and the drift is simulated on the real protocol session (not WAN capture).", + "contract": { + "drift_false_completions": 0, + "drift_safely_halted": 3, + "drift_silent_writes": 0, + "drift_trials": 3, + "healthy_effects_confirmed": 3, + "healthy_identity_verified": 3, + "healthy_over_halts": 0, + "healthy_policy_admitted": 3, + "healthy_runtime_effects_verified": 3, + "healthy_silent_incorrect_successes": 0, + "healthy_structural_rung_used": 0, + "healthy_trials": 3, + "healthy_visual_rungs_used": { + "template": 9 + }, + "healthy_zero_model_calls": true + }, + "environment": { + "backend": "openadapt_flow FreeRDPBackend (pixel-only, use_structural off)", + "fixture_package_versions": { + "freerdp3-shadow-x11": "3.30.0+dfsg-0ubuntu0.24.04.2", + "freerdp3-x11": "3.30.0+dfsg-0ubuntu0.24.04.2", + "imagemagick": "8:6.9.12.98+dfsg1-5.2build2", + "openbox": "3.6.1-12build5", + "xdotool": "1:3.20160805.1-5build1" + }, + "governed_policy": "policy.yaml", + "note": "aardwolf (the product's Windows-RDP transport) cannot connect to Linux RDP servers; see fixture README. The aardwolf-over-Windows transport is qualified separately in benchmark/rdp (PR #142).", + "pixel_identity_verify": "enabled for this synthetic qualification only", + "rdp_client": "xfreerdp3 (FreeRDP3 client, fullscreen)", + "rdp_server": "freerdp-shadow-cli3 (FreeRDP3 server)", + "runtime_effect_verifier": "DocumentHashVerifier over bind-mounted oracle", + "surface": "Tk kiosk app served over RDP; observed on client display", + "transport": "DockerX11RdpTransport (screenshot+xdotool over the RDP client)", + "viewport": [ + 1280, + 800 + ] + }, + "failure_taxonomy": [ + "connect_or_frame_failure", + "healthy_contract_violation", + "silent_incorrect_success", + "healthy_over_halt", + "effect_not_confirmed", + "identity_not_verified", + "effect_not_runtime_verified", + "policy_not_admitted", + "drift_contract_violation", + "reset_not_acknowledged" + ], + "generated_at": "2026-07-30T18:36:11.714461+00:00", + "model_calls": 0, + "oracle": "host read of the bind-mounted kiosk document, plus the runtime DocumentHashVerifier exactly-one-new-document gate", + "run_count": 6, + "schema_version": "openadapt.rdp-ladder-qualification.v2", + "substrate": "real-rdp-freerdp3-roundtrip-linux-kiosk", + "successes": 6, + "task": "record->compile->replay a patient-note write through the vision-only resolver ladder over a real RDP round-trip, with no structural backend; confirm the write via an independent document oracle; and halt under injected DPI/theme/JPEG drift", + "total_s": 173.333, + "trials": [ + { + "condition_trial": 1, + "effect_confirmed": true, + "effect_expected": "MRN A1001\tfollowup in two weeks / healthy-1", + "effect_observed": "MRN A1001\tfollowup in two weeks / healthy-1", + "failure_class": null, + "identity_diagnostics": { + "step_000": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 347, + 192 + ], + "resolution": { + "confidence": 0.9999997615814209, + "point": [ + 347, + 192 + ], + "rung": "template" + }, + "status": "verified" + }, + "step_001": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 120, + 588 + ], + "resolution": { + "confidence": 0.999997615814209, + "point": [ + 120, + 588 + ], + "rung": "template" + }, + "status": "verified" + }, + "step_003": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 910, + 588 + ], + "resolution": { + "confidence": 0.9999989867210388, + "point": [ + 910, + 588 + ], + "rung": "template" + }, + "status": "verified" + } + }, + "identity_required": true, + "identity_statuses": { + "step_000": "verified", + "step_001": "verified", + "step_003": "verified" + }, + "identity_verified": true, + "kind": "healthy_record_compile_replay", + "model_calls": 0, + "over_halt": false, + "passed": true, + "policy_admitted": true, + "required_identity_step_ids": [ + "step_000", + "step_001", + "step_003" + ], + "rung_counts": { + "template": 3 + }, + "runtime_effect_verified": true, + "silent_incorrect_success": false, + "step_diagnostics": [ + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_000" + }, + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_001" + }, + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": true, + "ok": true, + "postconditions_ok": null, + "resolution_rung": null, + "safety_halt": false, + "step_id": "step_002" + }, + { + "effect_verified": true, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_003" + } + ], + "structural_rung_used": 0, + "success": true, + "trial": 1, + "visual_rungs_used": { + "template": 3 + } + }, + { + "condition_trial": 2, + "effect_confirmed": true, + "effect_expected": "MRN A1001\tfollowup in two weeks / healthy-2", + "effect_observed": "MRN A1001\tfollowup in two weeks / healthy-2", + "failure_class": null, + "identity_diagnostics": { + "step_000": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 347, + 192 + ], + "resolution": { + "confidence": 0.9999997615814209, + "point": [ + 347, + 192 + ], + "rung": "template" + }, + "status": "verified" + }, + "step_001": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 120, + 588 + ], + "resolution": { + "confidence": 0.999997615814209, + "point": [ + 120, + 588 + ], + "rung": "template" + }, + "status": "verified" + }, + "step_003": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 910, + 588 + ], + "resolution": { + "confidence": 0.9999989867210388, + "point": [ + 910, + 588 + ], + "rung": "template" + }, + "status": "verified" + } + }, + "identity_required": true, + "identity_statuses": { + "step_000": "verified", + "step_001": "verified", + "step_003": "verified" + }, + "identity_verified": true, + "kind": "healthy_record_compile_replay", + "model_calls": 0, + "over_halt": false, + "passed": true, + "policy_admitted": true, + "required_identity_step_ids": [ + "step_000", + "step_001", + "step_003" + ], + "rung_counts": { + "template": 3 + }, + "runtime_effect_verified": true, + "silent_incorrect_success": false, + "step_diagnostics": [ + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_000" + }, + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_001" + }, + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": true, + "ok": true, + "postconditions_ok": null, + "resolution_rung": null, + "safety_halt": false, + "step_id": "step_002" + }, + { + "effect_verified": true, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_003" + } + ], + "structural_rung_used": 0, + "success": true, + "trial": 2, + "visual_rungs_used": { + "template": 3 + } + }, + { + "condition_trial": 3, + "effect_confirmed": true, + "effect_expected": "MRN A1001\tfollowup in two weeks / healthy-3", + "effect_observed": "MRN A1001\tfollowup in two weeks / healthy-3", + "failure_class": null, + "identity_diagnostics": { + "step_000": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 347, + 192 + ], + "resolution": { + "confidence": 0.9999997615814209, + "point": [ + 347, + 192 + ], + "rung": "template" + }, + "status": "verified" + }, + "step_001": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 120, + 588 + ], + "resolution": { + "confidence": 0.999997615814209, + "point": [ + 120, + 588 + ], + "rung": "template" + }, + "status": "verified" + }, + "step_003": { + "error": null, + "mode": "pixel", + "observed": "live identifier crop matches after alignment (worst window 0.000)", + "recorded_click_point": [ + 910, + 588 + ], + "resolution": { + "confidence": 0.9999989867210388, + "point": [ + 910, + 588 + ], + "rung": "template" + }, + "status": "verified" + } + }, + "identity_required": true, + "identity_statuses": { + "step_000": "verified", + "step_001": "verified", + "step_003": "verified" + }, + "identity_verified": true, + "kind": "healthy_record_compile_replay", + "model_calls": 0, + "over_halt": false, + "passed": true, + "policy_admitted": true, + "required_identity_step_ids": [ + "step_000", + "step_001", + "step_003" + ], + "rung_counts": { + "template": 3 + }, + "runtime_effect_verified": true, + "silent_incorrect_success": false, + "step_diagnostics": [ + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_000" + }, + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_001" + }, + { + "effect_verified": null, + "error": null, + "input_retried": false, + "input_verified": true, + "ok": true, + "postconditions_ok": null, + "resolution_rung": null, + "safety_halt": false, + "step_id": "step_002" + }, + { + "effect_verified": true, + "error": null, + "input_retried": false, + "input_verified": null, + "ok": true, + "postconditions_ok": true, + "resolution_rung": "template", + "safety_halt": false, + "step_id": "step_003" + } + ], + "structural_rung_used": 0, + "success": true, + "trial": 3, + "visual_rungs_used": { + "template": 3 + } + }, + { + "condition_trial": 1, + "drift": "downscale_0.4x_blur + theme_invert + jpeg_q8 (simulated on real session)", + "effect_after_drift": null, + "failure_class": null, + "false_completion": false, + "halted": true, + "kind": "halt_under_injected_drift", + "model_calls": 0, + "passed": true, + "policy_bound": true, + "safety_halt": true, + "silent_write": false, + "trial": 4 + }, + { + "condition_trial": 2, + "drift": "downscale_0.4x_blur + theme_invert + jpeg_q8 (simulated on real session)", + "effect_after_drift": null, + "failure_class": null, + "false_completion": false, + "halted": true, + "kind": "halt_under_injected_drift", + "model_calls": 0, + "passed": true, + "policy_bound": true, + "safety_halt": true, + "silent_write": false, + "trial": 5 + }, + { + "condition_trial": 3, + "drift": "downscale_0.4x_blur + theme_invert + jpeg_q8 (simulated on real session)", + "effect_after_drift": null, + "failure_class": null, + "false_completion": false, + "halted": true, + "kind": "halt_under_injected_drift", + "model_calls": 0, + "passed": true, + "policy_bound": true, + "safety_halt": true, + "silent_write": false, + "trial": 6 + } + ] +}