Skip to content

docs: reconcile desktop/Citrix hosting matrix with real built state#52

Merged
abrichr merged 2 commits into
mainfrom
docs/desktop-hosting-matrix-accuracy
Jul 21, 2026
Merged

docs: reconcile desktop/Citrix hosting matrix with real built state#52
abrichr merged 2 commits into
mainfrom
docs/desktop-hosting-matrix-accuracy

Conversation

@abrichr

@abrichr abrichr commented Jul 21, 2026

Copy link
Copy Markdown
Member

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)

Lane State Evidence
Self-hosted / on-prem desktop, RDP, Citrix Real today (the wedge) openadapt-flow/deploy/on-prem/ dir-queue + run-queue.sh drives WindowsBackend/FreeRDPBackend/RemoteDisplayBackend locally; docs/desktop/CITRIX_PIXEL.md runs the Citrix driver inside the customer boundary
Public $500/mo managed subscription Browser-only openadapt-cloud runner routes target_kind web to Modal; postdeploy audit asserts no Windows/BYOC/sandbox promotion
In-our-cloud Windows runner Built but internal-only, licensing-gated runner/windows_runner.py exists; gated fail-closed by src/lib/windowsLane.ts (flag + org allowlist)
Control-plane-managed BYOC Experimental / disabled src/lib/byoc.ts + connector/agent.py built but runner.ts throws "BYOC is Experimental and disabled on the live hosted launch path"; engine-side runner/ is a library with no transport/daemon/CLI
Multi-tenant hosting of desktop PHI in our cloud Deferred per DESIGN_hosted_matrix (only when a contract funds the compliance program)
Citrix / VDI maturity Exploratory (no validated ICA/HDX env yet) matches canonical status.json ladder; the pixel-first mechanism exists but no real Citrix environment has been qualified

Changes (old -> new)

  • concepts/deployment-matrix.md: OpenAdapt Hosted desktop cells Managed, 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 row Supported / 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 from Supported / scoped deployment to Exploratory (evidence column already cited no completed Citrix run); Windows/macOS/RDP scoped-evidence pins unchanged.

Guardrails honored

🤖 Generated with Claude Code

https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM

abrichr and others added 2 commits July 21, 2026 00:19
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
@abrichr
abrichr merged commit 4b00fad into main Jul 21, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant