Infrastructure: Add scoped runner grants and drain-confirmed desktop controller handoff

Offen
#4,448 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
node.js, react-native, typescript

Rechercherichtung

Start with the cited "MCP/WDIO handoff" and "Standalone WDIO/Jasmine execution" sections in packages/agentic/desktop-test/references/current-status.md, then inspect the listed WDIO paths and storybook-desktop/src/testing/{runWdioTests,worker}.ts. The generic handoff is blocked by #4436 and #4442; Storybook work also depends on #4449. Done means implementing the scoped grant and drain flow, adding required status and guidance updates and changesets, and completing the package and native consumer validation described in the issue.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Status: Blocked

Current status - 2026-11-07

Blocked for generic handoff by F2 #4442 (in #4463); F1 is already merged. New input-lane selection in #4464 does not provide controller ownership transfer.

Remaining behavior: agent-served mode and ordinary WDIO still exclude each other; implement bounded busy/relinquish/operator-authorized preemption, stop new work, await cancellation/settlement and session DELETE, invalidate old references/cursors/proofs/artifact links, and only then grant the runner a session. Worker-crash drain and credential confinement remain acceptance requirements.

F9 #4449 gates only the Storybook phase. F10-M #4446 / F10-W #4447 gate only opt-in retained supervisor-owned applications; attach-only handoff does not need them. Cross-MCP-connection resume and automatic replay are not supported by this PR.

Goal

Agent-served mode (serve --agent) and WDIO runs currently exclude one another, so moving between MCP control and suite execution requires restarting services. Add scoped runner grants and a handoff that waits for the previous controller to drain before a runner opens its own session.

Part of #4435 (plan item F11).

Scope

  • Owner: WDIO and CSF runner integration.
  • Paths (under packages/agentic/): desktop-test/src/wdio/*, the driver's grant transport and drain contracts, and storybook-desktop/src/testing/{runWdioTests,worker}.ts.
  • Default to a bounded busy result. An explicit relinquish or operator-authorized preempt stops new work, cancels and awaits settlement, confirms session deletion, invalidates references, cursors, proofs, and artifact links, and only then authorizes a new runner session. Grant revocation callbacks are not a drain barrier.
  • Keep the documented CSF exception, where the runner owns the session and an isolated Node worker borrows it, unless it is deliberately migrated.

Dependencies

  • Blocked by: F2 #4442 for the generic handoff; F1 #4436 is delivered by #4455.
  • Phased prerequisites: Storybook integration requires F9 #4449. Retaining a supervisor-launched app across handoff requires F10-M #4446 or F10-W #4447 and an explicit ownership option. Attached-app handoff needs neither.
  • Unblocks: F13 #4450.
  • Parallel with: F3 #4444, F6 #4445, F10-M, and F10-W.

Acceptance

  • MCP and WDIO cannot control the same reserved target concurrently.
  • A worker crash drains its session.
  • Stale references, cursors, and artifact links fail after handoff.
  • Credentials never enter capabilities, generated config, logs, or model output.

Validation

  • Iterate with focused yarn test <name> in each changed package, then run its yarn format, yarn lint, yarn build, and yarn test. Finish with yarn clean-lage-cache then yarn lage buildci; run yarn lage test-links --verbose --grouped after markdown changes.
  • Add a patch changeset for each changed published package. Update the owning references/current-status.md rows (done, work in progress, unsupported) and affected README/AGENTS guidance in the same change.
  • Native, provider, or process-topology changes need matching-OS native contracts and the affected consumer lane. JavaScript tests and bundles do not qualify native behavior; hosted capability skips are not passes. Report each check as passed, failed, skipped, not run, or unsupported.

Evidence

  • Current state: "MCP/WDIO handoff" and "Standalone WDIO/Jasmine execution" in packages/agentic/desktop-test/references/current-status.md.
  • Retired plan: driver-next.md at 0569e1b86, sections 6 (cancellation, handoff, and recovery) and 8 (F11).
Vorherrschende Sprache
TypeScript
Sterne
1.4k
Forks
179
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
60

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/fluentui-react-native

Alle Issues in microsoft/fluentui-react-native

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.