Samien 30c1125f0d 修复电脑停用后的重新授权并统一术语 1 月之前
..
README.md 30c1125f0d 修复电脑停用后的重新授权并统一术语 1 月之前

README.md

服务端 Bot 与消息设备上下文修整

基于 feature/remote-desktop-hosts,修改前提交为 391d01f。

统一行为

  • 所有 Bot 的聊天与记忆整理使用服务端 Hermes;旧 Worker 会话迁移一次后继续复用服务端会话。VM 只执行按需调用的工具。
  • 服务器、电脑、Grok Bot 云电脑与 VM 使用同一套全局开放设置;审批策略也统一管理,旧 Bot 的单独配置不覆盖全局权限。
  • “本机”由本条消息的 deviceHost 决定,保存到运行快照。设备未知、离线、关闭或名称有歧义时明确报错;不会切到服务器或旧绑定机器执行。
  • Bot 协作、团队启动、子任务及回传保留来源。用户换设备后新建或重试的子任务使用该次指令的来源,来源缺失会清空语义,不沿用旧目标的设备。
  • 定时任务单独保存“本机”目标。文件与命令授权独立于屏幕授权。接管面板在选定设备后获取控制权,切换设备时先交还原设备。
  • App 明确区分客户端和服务器角色,默认选择客户端;客户端无需安装 Hermes。

账号边界、设备系统授权、任务助手生命周期、人工接管和离线检查继续生效。权限一致不表示跳过这些实际可用性条件。

自动验证

环境:macOS,Node v26.7.0。该 Node 的原生 Web Storage 会影响 jsdom 测试,所以 Vitest 使用 NODE_OPTIONS=--no-experimental-webstorage。

检查 结果
npm run build 通过;保留原有大包体积提示
npm run typecheck 通过
npm run desktop:test 37 / 37 通过
npx playwright test -c playwright.desktop-hosts.config.ts 2 / 2 通过;已查看电脑权限面板截图
全量 npm test -- --maxWorkers=4 1318 通过、14 失败、26 跳过

全量剩余 14 项失败均在修改前提交的独立临时目录复现,未通过跳过或放宽断言来掩盖:

  • botProfileDialog.test.ts:旧身份草稿测试仍把新增描述栏当作规则栏(1 项)。
  • workspaceShell.test.ts:旧列表标题预期(1 项)。
  • hostComputerTools.test.ts、workerCompaction.test.ts:旧 Worker 工具错误形式和上下文压缩行为(6 项)。
  • workspace.test.ts:上下文用量记录缺失(2 项)。
  • workspacePairedNodes.test.ts、workspaceRoutes.test.ts:已停用的旧远程 Bot / 子节点行为(4 项)。

本次针对设备解析、同权策略、独立授权、并发来源、任务转交、定时任务保存、VM 会话迁移和接管界面的新增/更新测试均通过。另一次并发全量运行中出现的 HTTP 连接重置已单独复测通过,最后一轮全量也通过该用例。

实机验证边界

自动测试使用模拟服务器、模拟主机和桌面测试环境。尚未连接真实的多台 Mac、Grok Bot 云电脑及 VM 联合执行任务。发布前可用两台已配对 Mac 在同一聊天交替发送“读取本机文件”,核对目标;再断开原来源设备,确认不会回退到服务器。