bench(citrix): comprehensive deterministic ICA/HDX stand-in qualification (Section 10)#258
Merged
Merged
Conversation
…tion (Section 10) Extend the Citrix ICA/HDX stand-in from a thin smoke test into a comprehensive, fixture-based campaign covering the roadmap Section 10 condition matrix. This is the license-free alternative to owning a real Citrix environment: a DETERMINISTIC synthetic fixture that reproduces ICA/HDX conditions in-process and qualifies the pixel/no-DOM actuation contract of the unmodified CitrixWorkspaceBackend against them. DETERMINISTIC STAND-IN, NOT real ICA/HDX. No HDX codecs, no ICA compression, no real Workspace-client transport. Real-protocol evidence remains pending the customer-environment (Accuro) lane. - benchmark/citrix_ica_hdx/fixture.py: deterministic synthetic ICA/HDX frame renderer + SyntheticIcaWindowClient (real WindowClient seam) + out-of-band FaultDB effect oracle + reviewable VolatileMaskSpec / check_masks_reviewable. - benchmark/citrix_ica_hdx/run_ica_hdx_qualification.py: 29-scenario campaign over the Section 10 matrix (each a reproducible pass/halt scenario), emitting results.json + a separate status_manifest.json of the six status dimensions. - tests/test_ica_hdx_qualification.py: in-process, CI-green campaign + mask tests. Headline counts (29 scenarios): 29/29 passed, 0 silent-incorrect-successes, 0 healthy over-halts, 0 silent writes, 0 model calls. deterministic_standin accepted; ica_hdx_accepted=false. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a DETERMINISTIC STAND-IN, NOT real Citrix ICA/HDX
This PR extends the Citrix ICA/HDX stand-in from a thin smoke test into the comprehensive, fixture-based campaign roadmap Section 10 asks for. It is the license-free alternative to owning a real Citrix environment: a deterministic synthetic fixture that reproduces ICA/HDX conditions in-process and qualifies the pixel/no-DOM actuation contract of the unmodified
CitrixWorkspaceBackendagainst them.Honesty (brand moat): this is a deterministic stand-in reproducing ICA/HDX conditions. It is NOT real Citrix ICA/HDX — no HDX codecs, no ICA compression, no real Workspace-client transport. No result here is real-protocol acceptance. Real ICA/HDX evidence remains pending the customer-environment (Accuro) lane. Every degradation produces either a correct out-of-band-verified actuation or a safe halt — never a silent incorrect success.
Runs fully in-process (no Docker, no network, no Playwright), so the whole matrix stays green in CI via
tests/test_ica_hdx_qualification.py(~2s).Condition matrix covered (29 scenarios, each a reproducible pass/halt scenario)
session_launch_ready(pass) /application_not_ready(halt)reconnect_roaming_identity_change(halt)session_unlock_recovery(pass) /session_lock(halt)window_minimize,window_occlusion,window_move_after_acquire,window_resize_after_acquire(halt)dpi_scale_consistent(pass) /dpi_anisotropic_uncalibrated(halt)single_monitor_geometry,multimonitor_secondary_offset(pass) /multimonitor_ambiguous_window(halt)codec_artifacts_mild_legible(pass) /codec_artifacts_severe_illegible(halt)delayed_frame_settles(pass) /stale_frame_latency,frame_never_settles(halt)keyboard_named_key_ok(pass) /ime_unmapped_key(halt)clipboard_restricted_paste(halt)focus_theft_after_acquire(halt)unexpected_dialog_overlay(halt)unverifiable_application_identity(halt)stale_frame_latency(halt)uncertain_submission_no_blind_retry(halt)duplicate_write_prevention_one_shot(halt; exactly one legit write)persisted_state_readback(pass) /optimistic_banner_effect_refused(effect refused)Enforcement verified on every scenario
Fresh-frame lease; actuation bound to the authorized window/session; target re-resolved immediately before acting; one-shot actuation lease consumed exactly once; DPI/scale refused when anisotropic; focus/occlusion enforced before every input edge; readiness + identity gated on the fresh frame; effect verified out of band (independent record, never the on-screen banner); zero model calls on every path. Reviewable
VolatileMaskSpec+check_masks_reviewableprove no volatile mask covers a target/actionability/identity/workflow-state/effect region (with tests for the safe default and a rejected bad spec).Headline counts
29/29 scenarios passed · 0 silent-incorrect-successes · 0 healthy over-halts · 0 silent writes · 0 model calls.
deterministic_standin_accepted: true;ica_hdx_accepted: false(pending_real_environment_customer_lane).Separate status dimensions (never collapsed into one "Available")
status_manifest.json:backend_shipped= shipped ·installed_driver_available= shipped host clients ·real_protocol_environment_evidence= pending ·managed_execution_available= pending ·customer_controlled_execution_available= pending ·exact_application_qualification_available= pending ·deterministic_standin_qualification= qualified (stand-in, not real ICA/HDX).Files
benchmark/citrix_ica_hdx/fixture.py,run_ica_hdx_qualification.py,README.md,results.json,status_manifest.jsontests/test_ica_hdx_qualification.pyDO NOT MERGE pending review.
🤖 Generated with Claude Code
https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM