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

未关闭
#4,448 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
node.js, react-native, typescript

调研方向

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.

由索引模型根据 Issue 内容生成。

描述

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).
主要语言
TypeScript
星标
1.4k
派生
179
平均合并
1 天 8 小时
30 天内合并 PR
60

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

microsoft/fluentui-react-native 的其他 Issue

查看 microsoft/fluentui-react-native 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。