SuperAPI AI 工具集

drive-desktop-app

测试与质量

查看项目

更新于 10-15 22:33

技能介绍

用途:驱动并验证 Electron 或 Tauri 桌面应用。桌面应用通过 IPC 而非 HTTP 访问后端,仅修补 fetch/XHR 无法看到这些调用,浏览器形态的工具会漏掉后端请求,导致网络日志为空、断言形同虚设。Reticle 观测渲染进程与 IPC 边界,使桌面端判定与 Web 端一致。

主要能力:观测 IPC 调用(如 invoke('load_todos') 呈现为 ipc://load_todos);用 reticle_act_and_wait 配合 net、element、console 等谓词验证;reticle_look 读取实时 store;reticle_screenshot 与 reticle_visual_diff 在接入捕获步骤后可用。IPC 无状态码,200/500 为合成值,由命令是否成功映射而来,ok 才是权威。

使用方式:未安装时执行 RETICLE_INSTALL_SOURCE=npx_skill npx @reticlehq/server@latest init,再运行 install-and-verify 技能。Electron 需在 vite.config.ts 中启用 reticle({ desktop: true }),并在 electron/preload.cjs 首行 require('@reticlehq/electron/preload');该行必须位于 preload 且在最前。沙箱化 preload 无法解析 node_modules,需打包 preload 或设 sandbox: false。Tauri 前端同 Web 应用,但需配置 CSP 允许 ws://localhost:4400 与 ws://127.0.0.1:4400,并保留 ipc: http://ipc.localhost;IPC 观测无需 Rust 侧改动,reticle-tauri crate 仅用于截图与无头模式。打包渲染进程需使用 hash 路由。

限制:Electron 缺少 preload 会返回 coverage: partial 并指明缺失行;IPC 调用不出现时,Electron 多为 shim 的 require 不在首行,Tauri 下手写 postMessage 协议不被观测。unknown 不算通过,不应为让红色判定变绿而弱化 IPC 断言。完整参考见 https://docs.reticle.sh/desktop.md。