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-07

Partial qualification; not globally blocked. Continue the available cases now. Evidence is committed in the harness ledger, driver ledger and MCP ledger; each probe retains its tested source, not a claim that the latest main-merge SHA was requalified.

Endpoint Latest recorded row outcomes Important remaining gaps
Windows Fabric 21 Pass, 2 Partial, 1 Fail Physical foreground/input failure; launch-capable discovery and separately registered secondary window
Win32 Paper 21 Pass, 3 Partial Launch-capable discovery, 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

Remaining acceptance and explicit limitations:

  • Resolve or qualify Windows physical input Fail: the descriptor click returned effect-none rejection, "The target window did not become the foreground window"; native smoke run 9506772a-d3f9-4f53-966e-b6c75799b463 also failed its physical test. Do not retry an ambiguous mutation or change OS input/privacy settings implicitly. Win32's later descriptor physical-pointer Pass does not erase the earlier failing smoke 7a737861-c31b-4eeb-ac6d-b21b8a96739d.
  • Qualify launch-capable discovery (only attach-only discovery is covered), separately registered secondary windows, and Win32 fresh-preview fencing after lost context (Infrastructure: Settle Storybook story-provider cancellation and reconnect epochs #4437). Native ownership/retained-app subcases are gated by F10-M Infrastructure: Implement neutral macOS desktop application ownership and identity recovery #4446 / F10-W Infrastructure: Implement neutral Windows desktop application ownership and containment #4447, not a blocker for every F15 case.
  • Complete physical console Ctrl+C, authoritative interactive keyboard/click/wheel and capture contracts, 200%/mixed DPI, minimized/negative-origin windows, live lock/RDP/elevation transitions, popups, capture cancellation, and process-tree ownership/containment. These broader subcases remain Not run/unqualified even though neither Windows endpoint has an entirely Not run row in the 24-case matrix. Coordinate capture with Infrastructure: Qualify Windows/Win32 capture fidelity and provenance #4348 and native ownership with Infrastructure: Implement neutral Windows desktop application ownership and containment #4447.
  • Requalify macOS Fabric and Paper separately through real descriptors for the latest integrated behavior: revocation, dispose-during-open, failed delete, ambiguous create, quarantine/recovery, failed-cleanup claims, survivor handling, cancellation/fault/lost-context/secondary-window and protected-ingress cases. Keep earlier macOS failed/inconclusive probes and their missing-evidence explanations.
  • Record Windows and Paper MCP discovery bytes/characters/tokens, operation text cost and latency, including client/tokenizer/version, sample count, cold/warm timing, retries, cancellation and cleanup. These measurements remain Not run; historical macOS numbers are not present-day or cross-platform claims.
  • Independently qualify supported MCP clients' image/resource/cancellation behavior; SDK stdio qualification is not universal client qualification.

Unsupported: Windows/Win32 doctor --permissions; Win32 production-bundle Metro reload. Conservative by design: failed-cleanup claims stay fenced and require exact-resource/operator reconciliation; 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/wheel; they are neither physical-input nor protected-ingress proof. Exact owned processes/ports, lock and descriptor cleanup were verified; descriptor grants were revoked and attached apps preserved in the applicable descriptor runs.

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, not attributed to a reader or antivirus. Main's #4464 input-lane reporting is additional implementation, not a rerun of this evidence.

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