docs: reconcile desktop/Citrix hosting matrix with real built state#52
Merged
Conversation
The substrate and deployment docs framed hosted desktop/Citrix as a "Managed, workflow-qualified deployment" ordered like the browser offer, which overclaims: hosting the desktop substrate in OpenAdapt's own cloud is not a public offer today. Correct the hosting axis to state, accurately, what runs where now. Real built state (verified against openadapt-flow and openadapt-cloud): - Self-hosted / on-prem desktop, RDP, and Citrix run inside the customer boundary today (deploy/on-prem dir-queue + backends). This is the wedge and is real. - Public $500/month managed subscription runs the browser substrate only. - The in-our-cloud Windows runner is built but gated internal-only by a fail-closed flag (Windows 11 Enterprise Evaluation worker image); it is not a public or scoped commercial offer. - Control-plane-managed customer-cloud (BYOC) is implemented but disabled on the live hosted path and has no engine-side connector transport yet: Experimental, not available. - Multi-tenant hosting of the desktop substrate in OpenAdapt's cloud is deferred. Keeps the first-class target-state architecture framing and all pinned substrate-evidence copy and Supported/scoped markers intact. Does not touch PHI/BAA/HIPAA/PHIPA lines or workflows. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM
…tory
Two follow-ups on the hosting-matrix reconciliation:
1. Scrub the specific media/edition backing the internal cloud Windows runner
from the public docs. Keep the accurate, non-sensitive framing
("internal only" / "licensing-gated" / "not a public offer") without naming
the eval media or edition.
2. Reconcile the Citrix maturity label with the canonical status.json ladder.
Citrix/VDI has no validated real ICA/HDX environment, so its honest label is
Exploratory (not "Supported / scoped deployment"). Windows/macOS/RDP keep
their scoped labels because each has real 3/3 acceptance evidence. Updated
the evidence rows in what-works-today, hosted, substrate-model, and
deployment-matrix, the appendix intro, and the pinned-copy test expectation
(test_substrate_evidence_copy) to the honest Exploratory label. The
"in its real ICA/HDX environment" per-workflow honesty is preserved.
Keeps mkdocs --strict, pytest (64), and validate_docs green. No PHI/BAA lines
or workflows touched. No em dashes.
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.
Problem
The substrate and deployment docs framed hosted desktop/Citrix as a
"Managed, workflow-qualified deployment" ordered just like the browser offer,
and the deployment matrix called the difference "a commercial and onboarding
distinction, not a capability one." That overclaims: hosting the desktop
substrate in OpenAdapt's own cloud is not a public offer today. This PR makes the
docs say it precisely: desktop/Citrix is real self-hosted / on-prem (and BYOC
to the extent built); only multi-tenant hosting in our cloud is deferred; the
public managed subscription is browser-only today. It also reconciles the
Citrix maturity label with the canonical status ladder.
Real built state (verified in code, not just docs)
openadapt-flow/deploy/on-prem/dir-queue +run-queue.shdrivesWindowsBackend/FreeRDPBackend/RemoteDisplayBackendlocally;docs/desktop/CITRIX_PIXEL.mdruns the Citrix driver inside the customer boundaryopenadapt-cloudrunner routestarget_kindweb to Modal; postdeploy audit asserts no Windows/BYOC/sandbox promotionrunner/windows_runner.pyexists; gated fail-closed bysrc/lib/windowsLane.ts(flag + org allowlist)src/lib/byoc.ts+connector/agent.pybuilt butrunner.tsthrows "BYOC is Experimental and disabled on the live hosted launch path"; engine-siderunner/is a library with no transport/daemon/CLIDESIGN_hosted_matrix(only when a contract funds the compliance program)status.jsonladder; the pixel-first mechanism exists but no real Citrix environment has been qualifiedChanges (old -> new)
concepts/deployment-matrix.md: OpenAdapt Hosted desktop cellsManaged, workflow-qualified deployment->Not a public hosted offer; runs in the customer boundary; rewrote the "not a capability one" paragraph to state where each lane runs today; Citrix backend-evidence bullet marked Exploratory (no validated ICA/HDX environment yet).concepts/substrate-model.md: "How the desktop substrate is hosted" -> "Where the desktop substrate runs today"; the in-our-cloud QEMU/Guacamole path is marked an internal, licensing-gated lane; multi-tenant hosting deferred; Citrix qualification bullet marked Exploratory.get-started/what-works-today.md:BYOC / customer-controlled execution | Supported / scoped deployment->Control-plane-managed customer cloud (BYOC) | Experimental;Hosted desktop runner | Supported->Hosted desktop runner (in OpenAdapt's cloud) | Internal only(licensing-gated, no specific media named);Citrix / VDI backend | Supported / scoped deployment->| Exploratory; appendix intro updated so it no longer claims every surface is Supported.guides/hosted.md: Citrix rowSupported / scoped deployment->Exploratory.index.md: OpenAdapt Cloud desktop cells no longer imply orderable managed hosting.tests/test_substrate_evidence_copy.py: pinned Citrix expectation updated fromSupported / scoped deploymenttoExploratory(evidence column already cited no completed Citrix run); Windows/macOS/RDP scoped-evidence pins unchanged.Guardrails honored
Supported / scoped deploymentbecause each has real 3/3 acceptance evidence; only Citrix (zero validated runs) moved to Exploratory..github/workflows.origin/main(includes docs: strip reader-useless implementation-leak phrasing #47/docs: make replay/record/run substrate-aware, not --url-centric #48/docs: make healthcare-default framing industry-neutral #49). No em dashes.pytest tests/64 passed;validate_docs.py(runsmkdocs build --strict) passed.🤖 Generated with Claude Code
https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM