Skip to content

Infrastructure: Live-qualify the desktop driver and MCP foundation on macOS, Windows, and Win32 #4441

Open

Description

@JasonVMo

Current status - 2026-11-09

Partial qualification; not globally blocked. Continue the available cases now. Evidence is committed in the harness ledger, driver ledger and MCP ledger as of main 138aed4cd. Each probe records the source it tested; none of this requalifies the latest main-merge SHA. F1-F5 (#4436, #4442, #4444, #4437, #4443) and F16 #4467 are closed as implemented. Their remaining macOS, Windows/Win32 and strict-clear native evidence is consolidated here.

Endpoint Latest recorded row outcomes Important remaining gaps
Windows Fabric 22 Pass, 1 Partial, 1 Fail (2026-11-08, disconnected console). The physical-input Fail has since passed in a connected session; the matrix was not re-tallied. Separately registered secondary window
Win32 Paper 22 Pass, 2 Partial Separately registered secondary window, fresh-preview lost-context fencing
macOS Fabric at a19fd3e1 4 Pass, 5 Partial, 15 Not run Descriptor failure injection, same-port rediscovery, survivor/context/physical-input qualification
macOS Paper at a19fd3e1 2 Pass, 2 Partial, 20 Not run Descriptor lifecycle/fault/ingress and physical-input qualification

Completed since 2026-11-07:

  • Windows physical foreground/input. At fec94cec4, with the console connected, physical smokes passed with no failures, skips or retries, and with physical-click receipts: Checkbox and Callout, Windows Fabric 203/203 (ef1ed966-3be3-4cc1-b940-ac0afbb02155, 1e521138-f529-45a1-974e-74f90edd42ac), Win32 Paper 177/177 (54e6a815-21a4-418c-bfda-848e28549ffe, 44d9dd17-7132-4ebd-8b1e-18fa923ee355). The real MCP descriptor path also passed physical checkbox transitions and target capture on both endpoints. The earlier failing runs 9506772a-d3f9-4f53-966e-b6c75799b463 and 7a737861-c31b-4eeb-ac6d-b21b8a96739d stay recorded.
  • Launch-capable discovery: Pass on both endpoints (runs 0876d93b-f689-47e5-8379-4c09d95d6cc9 and 101c5916-027d-40cf-a26a-163535df4c03), through a temporary installed host on Windows and REX FluentTester on Win32. Committed Storybook targets remain attach-only.
  • Windows Fabric and Win32 Paper MCP measurements (runs caba9e12-d9da-42a0-8b06-7300940e8318 and 5f75aac2-d74c-4969-aba3-bd8c925d5725). Six-tool discovery is 4,691 tokens and 20,277 bytes. Checkbox activate + check + default observe is 1,923 tokens / 2,288 ms on Windows and 1,645 tokens / 2,302 ms on Win32.

Remaining acceptance and explicit limitations:

  • Secondary windows and fencing: separately registered secondary windows on both Windows endpoints, and Win32 fresh-preview fencing after lost context. These need a connected, unlocked session. Callout popup interaction does not establish F4's secondary-window identity.

  • Interrupts: physical console Ctrl+C. After a console Ctrl+C, serve --agent settled every owned resource, but its claim stayed active, run.json stayed incomplete, and the CLI stayed idle without exiting (runs 411c5218, 5f75aac2, caba9e12).

  • Broader subcases remain Not run/unqualified, even though neither Windows endpoint has an entirely Not run row in the 24-case matrix:

    • Authoritative interactive keyboard/wheel and capture contracts
    • 200%/mixed DPI and minimized/negative-origin windows
    • Live lock/RDP/elevation transitions
    • Popup surfaces other than Callout
    • Capture cancellation

    Coordinate capture with Infrastructure: Qualify Windows/Win32 capture fidelity and provenance #4348 and native ownership/containment with Infrastructure: Implement neutral Windows desktop application ownership and containment #4447.

  • Strict native clear (from F16 Infrastructure: Enforce session input policy and attribute delivered input mechanisms #4467): run the matching-OS strict-clear contracts on Windows, Win32 and macOS with stable signing. They were Not run for Desktop testing: enforce session input policy #4468's head.

  • macOS requalification: requalify macOS Fabric and Paper separately through real descriptors, inheriting the F1-F5 macOS items: revocation, dispose-during-open, failed delete, ambiguous create, quarantine/restart recovery, and failed-cleanup claims; supervisor, Metro, channel and helper survivor handling; cancellation, readiness/render-fault, lost-context and secondary-window cases; and protected-ingress/manifest-lifetime cases. Keep earlier macOS failed/inconclusive probes and their missing-evidence explanations.

  • Remaining MCP measurements: record macOS Paper, and measure click (not measured on Windows because the console was disconnected) and cancellation cost. Historical macOS numbers are not present-day or cross-platform claims.

  • MCP clients: independently qualify supported clients' image, resource and cancellation behavior. SDK stdio qualification is not universal client qualification.

Unsupported: Windows/Win32 doctor --permissions; Win32 production-bundle Metro reload. Observed limitations: on Win32, the exact REX process outlived its closed window after MCP session close. It was stopped only after identity verification (runs 665e6e85-f0ce-4612-a34d-f140d2bab433 and fc71d8fd-ffa4-464e-96ea-616d88d49e0e report failed cleanup). Packaged Windows launches are uncontained and fenced (#4447). Conservative by design: failed-cleanup claims stay fenced and require exact-resource/operator reconciliation; there is no automatic reclaim or mutation replay. Protected story args remain refused.

Historical final non-agent smokes: Windows 1825d9aa-2c25-4a2c-8524-ceadcf52ad68 (234 passed/78 skipped), Win32 8c6f58e1-3591-4f1b-b008-c52a718d3ca2 (214 passed/52 skipped). Reports are apps/storybook/artifacts/desktop/<run-id>/run.json. These hosted-style lanes disabled keyboard, physicalClick and wheel, so they prove neither physical input nor protected ingress.

The report-sharing failure is repaired with bounded Windows-only atomic-rename recovery and explicit warning/failure retention. The exact conflicting handle owner in the original smoke remains unknown; it is not attributed to a reader or antivirus.

Goal

The #4434 foundation (MCP lifetime handling, story-change settlement and quarantine, protected args refusal, failed-cleanup claim retention, and launch-mode discovery) was validated by deterministic fake-host tests and hosted CI. Requalify it through real descriptors and native helpers on each endpoint, and record the measurements that exist only for macOS Fabric today.

Part of #4435 (plan item F15).

Scope

  • Through the real descriptor path on macOS Fabric, macOS Paper, Windows Fabric, and Win32 Paper, qualify:
    • same-port service replacement, grant revocation, dispose during open, failed delete, ambiguous create, and resource invalidation;
    • unknown-effect story quarantine and its recovery, and story-args-unsupported on protected services;
    • failed-cleanup workload-claim retention and launch-mode discovery.
  • Windows and Win32: physical console Ctrl+C; an interactive rerun of the current input and capture native contracts; 200% and mixed DPI; minimized and negative-origin windows; lock, RDP, and elevation transitions; popups; capture cancellation; and process-tree containment and ownership checks.
  • macOS: live failed-cleanup and service-restart cases, Paper separately from Fabric, and exact attached-app preservation.
  • Record Windows Fabric and Win32 Paper MCP discovery cost, operation text cost, and latency in the status ledgers using the documented method.
  • Serialize physical-input runs per interactive desktop. Separate machines can run endpoints in parallel.

Dependencies

Acceptance

  • Each endpoint row in the driver, harness, and MCP status references records the date, exact commit, app, OS, renderer, command, selection, passed/failed/skipped counts, cleanup outcome, and artifact locator.
  • Hosted physical-input or capture skips are recorded as skipped, not passed. A successful semantic activate is not evidence that a physical click works.
  • Each failure is fixed or filed as a sub-issue of Infrastructure: Desktop driver improvements for workload hosting, lifecycle, and agent orchestration #4435 with reproduction evidence.
  • Windows and Paper measurements are added to the ledgers, or explicitly recorded as not run.

Validation

  • Use the supported workflows (yarn storybook test, yarn storybook driver --agent, desktop-test serve --agent) and the helper contracts documented in each package. Report each check as passed, failed, skipped, not run, or unsupported.
  • Code changes made to fix failures follow the package validation and changeset rules, ending with yarn clean-lage-cache then yarn lage buildci.

Evidence

  • Gates: "Native evidence and full-submission gates" in packages/agentic/desktop-driver/references/current-status.md, "Full-submission checklist" in packages/agentic/desktop-test/references/current-status.md, and "Before full submission" in packages/agentic/desktop-driver-mcp/references/current-status.md.
  • Retired plan: driver-next.md at 0569e1b86, sections 7 and 11.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions