Skip to content

feat: 通用执行核、Pi 会话与受限 Windows GUI 接线 - #3

Draft
Nex-Z wants to merge 25 commits into
masterfrom
codex/general-agent-v2-slice
Draft

Nex-Z wants to merge 25 commits into
masterfrom
codex/general-agent-v2-slice

Conversation

@Nex-Z

@Nex-Z Nex-Z commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

通用 TypeScript AgentRuntime/Pi 复用 browser、files、CLI、desktop-tools / DesktopCapabilityClient / CapabilityBroker / TicketStore 与 Electron/nut-js,并新增受限 Windows UIA ValuePattern 适配。保留旧 Python/WebSocket 路径与 fixture 回退。

真实 Windows GUI / 后台 Unicode 填写完整验收未通过,保持 Draft,不合并。 当前提交 cd502ee;作者和提交者使用仓库局部 ZZM-user。

实现范围

  • 同一 runtime 管理 prepare/批准/执行/独立验证、资源锁、预算、取消、清理、指标。GUI 工具与 fixture 业务控件解耦,由宿主绑定目标;Pi 显式获准后注册同一工具集。fake transport 验证模型工具调用,不宣称真实 LLM 准确率;未读取旧密钥或调用付费模型。
  • browser text_fill 支持整段 Unicode/换行/空白,复用语义填值及独立回读;真实隔离无头 Chrome 已验证。这不作为 OS 鼠键证据。native desktop_type 保留显式前台 ASCII 诊断,组合输入或未知结果停止,无静默 fallback/重试。
  • UIA 为固定 FlaUI.UIA3 5.0.0 / .NET10 sidecar,PID/start-time/HWND/runtime-ID 绑定、限定 AutomationId、观察 TTL/单次使用、密码/只读/禁用拒绝、写入批准、独立回读;无桌面遍历、鼠键/剪贴板降级或抢焦点。
  • UIA 与 native 共用跨进程 desktop lease;worker 隐藏启动、协议限长、取消/超时仅终止自有 worker。执行中 provider 副作用可能未知。生产 backgroundVerified=false,不能声称 UIA 永不改变焦点或可靠识别用户物理输入。
  • default-off UI/Pi 路径已接宿主目标清单、单次限时授权、每次写入确认、Stop/revoke 与取消。框架依赖打包已验证 sidecar/Pi/nut 模块加载;需要 .NET10 Desktop Runtime,不自动安装。安装器签名和任意应用适配不在已验收范围。

真实证据及本次结论

此前四轮 native OS 截图/点击/部分键盘输入有独立自有控件证据,但均未完整通过;存在 IME 组合输入及指针变化,未确定所有根因,不归因用户操作。原始 PNG/oracle/SHA-256 保留在 docs/v2/evidence/。

首轮 UIA 单窗口在启动前台校验失败,没有 UIA 调用。随后明确获准的双自有窗口轮次 onCd4Y:9项计划中执行6项,5通过、Unicode项中止/未验证,3项未运行。通过项首次耗时:互斥0.996ms、只读172.612ms、密码162.598ms、禁用172.975ms、批准拒绝且值不变528.449ms;Unicode中止532.019ms。脚本规划、模型调用0、重试0,不转换成LLM准确率。

前台采样1–60为自有sentinel,第61变为自有target,变化区间31.2054ms、最大采样间隔32.3429ms。monitor触发取消并终止活动worker;不是取消专项通过。stale/replay/取消专项均not run。自有fixture退出、lease释放已记录并及时通知用户。

真实UIA bind/inspect已执行;原报告缺worker阶段,无法证明Unicode的SetValue进入或返回,最终值及副作用仍unknown。变化发生在清理前,且此前60帧稳定;没有确证的worker/provider焦点变化根因,不读取其他窗口内容或推断用户行为。

本次只后台分析并补固定阶段审计(worker启动/关闭/取消、请求校验、SetValue调用前边界/返回、步骤与采样接收时间),不记录字段内容;限长/关联校验、诊断异常不改变结果。未改执行/焦点策略、未增加交互门槛、未再次开窗。边界事件不证明COM已进入,返回事件也不能替代独立值验证。

原始报告逐字节归档:docs/v2/evidence/windows-uia-background-2026-10-11/report.json;SHA-256 cf98150514d96a4487447f65e55d1a5b9d89b048350c4c820c857fa961a3d637。中文分析与限制见 docs/v2/UIA_SIDECAR.md、VERIFICATION.md。

验证与剩余范围

本机离线 UIA transport / Pi integration / sentinel 26/26;C#纯策略14/14;core、React、Electron类型检查通过。新增测试首次换行转义错误已修正后通过,未作为现场重试。Hosted CI 交互 GUI/UIA 均 not run,只验证构建与离线行为。

前次提交 fecb3c2 的 CI #38124809746 已 completed/success:Linux 1m17s、Windows 2m53s。后续采用用户明确批准的前台单轮验证,结果如下;不再重复同一后台定位。完整 native/Pi→OS、后台 Unicode、实际取消与剩余真实场景仍未验收。

已获准的自有 WinForms 前台 UIA 单轮通过

当前 e407daf 复用原fixture、UIA adapter/sidecar和清理机制,添加 --foreground-text-only 最小入口:仅一个可见自有target,用户手动点击Start,前台保持验证,失焦/Stop/未知即停止;等待120秒、执行20秒上限,无自动聚焦、鼠键或剪贴板降级。默认后台双窗口入口和生产 backgroundVerified=false 保持。

现场 pd1CN9:1项计划、1项首次通过,整段中文/emoji/换行/首尾及连续空格经 ValuePattern.SetValue、独立UIA inspect、fixture entry.Text oracle验证完全一致。步骤661.296ms;开始确认到清理完成864ms;总37.515秒含人工等待。重试0、脚本规划、模型调用0。28次前台采样均为target,覆盖807.843ms,最大间隔32.0795ms,不能证明采样间不存在瞬时变化。fixture已退出、lease已释放并立即回报用户。

只证明受控自有WinForms前台UIA填写成功,不证明后台/任意app/真实模型或完整Pi→OS成功。 前述后台轮次仍失败/值未知、根因未确定;取消专项not-run。不会再要求用户配合重复定位。

原始报告:docs/v2/evidence/windows-uia-foreground-2026-10-11/report.json,逐字节归档SHA-256 8624e01369868de8e1929cbdff7a8d1b60f6a2433ca8d187d4abb8154c087afa。中文说明见UIA_SIDECAR.md、VERIFICATION.md。

最终本机离线:core单元75通过/5项Linux专用跳过/0失败;入口11/11;C#构建和策略14/14;core/React/Electron类型检查通过。最终提交 e407daf 的 CI #38125654176 已 completed/success:headless-windows 156s、headless-linux 64s;Hosted CI交互GUI/UIA为not run。

产品可用性审查:授权状态与错误反馈

cd502ee 修复两个确定性产品问题:

  • 重新申请UIA授权时先作废旧grant和旧对话框revision;取消/目标无效/后台限定拒绝/忙碌均不再留下旧目标授权供下一条消息消费。
  • Pi入口保留白名单UIA错误码及固定操作提示,目标变化不再伪装为MODEL_RUNTIME_FAILED;超时/取消/provider失败提示可能副作用,清理未完成不声称已释放,不回显provider原文或凭据。

先用回归复现两项失败,再修复。最终宿主6/6、core单元76通过/5平台专用跳过/0失败,core/React/Electron类型检查通过。仅后台离线,无新窗口、真实模型或付费调用。产品修复 CI #38126987687 已 completed/success(headless-linux: 85s, headless-windows: 122s)。

明确剩余产品缺口:普通Pi消息仍是临时只读样例+显式UIA扩展,browser/files/CLI尚需统一宿主授权配置与普通消息接线;native GUI仍是显式rehearsal入口。下一阶段应复用已有adapter,用fake transport验证跨工具任务,不默认授权任意文件/进程/profile。现有单调用firstAttempt统计不能当作任务级LLM首次准确率/补救次数。UIA撤销仅停止UIA,整任务取消走任务取消入口。真实provider/API/模型/预算未明确仅阻塞真实模型验收,不阻塞上述离线工程。

最小下一阶段产品闭环:普通聊天→读取明确授权的真实本地文本文件→模型处理→写入批准→结果文件独立读回/hash→展示路径、状态和耗时。现在可后台接入宿主工作区选择/读写范围/生产registry/批准路由/取消和指标,用fake transport验证同一生产路径,不新造固定业务脚本。实际用户文件范围仍需明确,Windows trusted-workspace不是OS沙箱。真实模型验收需provider、API兼容类型、HTTPS endpoint、modelId、会话凭据及调用/输出token/超时预算与付费同意;现有成本无可靠价格时仍unknown,不能当金额硬上限。

浏览器adapter当前还硬性限制literal-loopback:外网站点并非仅注册即可使用,需另行实现可信来源/导航和网络边界并对实际站点验收;本地串联证据不覆盖外网或普通产品会话全工具可用。

项目已按用户要求暂停(2026-10-11)

已完成代码保留在本Draft PR的 cd502ee,未合并。后续文件闭环未完成,已单独保存为本地分支 codex/wip-file-session-paused-20261011,提交 dee02d6afdd8e5b483b3ff6ae140d320b64ccb2d;未推送到本PR。WIP新增测试目前有TranscriptContext.tools类型错误,未通过最终构建,不能视作已验收功能。恢复说明在该WIP提交 docs/v2/PAUSED_WIP.md。主开发分支已恢复已验证版本。已停止新增开发,无新模型调用/前台试验/部署;恢复时应先检查WIP并重新构建,忽略目录中的编译产物可能来自未完成版本。

@Nex-Z Nex-Z changed the title feat: 通用执行核首阶段与 Windows fixture 实测 feat: 通用执行核与受限 Pi 会话入口 Oct 10, 2026
@Nex-Z Nex-Z changed the title feat: 通用执行核与受限 Pi 会话入口 feat: 通用执行核、Pi 会话与受限 Windows GUI 接线 Oct 11, 2026
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