Przeglądaj źródła

汇总完整平台分支交付与最终验收证据

LSamien 1 miesiąc temu
rodzic
commit
dea2dbab55
2 zmienionych plików z 51 dodań i 26 usunięć
  1. 45 25
      docs/agent-platform-implementation.md
  2. 6 1
      docs/macos-app.md

+ 45 - 25
docs/agent-platform-implementation.md

@@ -2,49 +2,49 @@
 
 目标:完成本线程确认的整体方案。macOS App、Web、执行节点和电脑服务源码共同维护在 hermes-yaoyao;移动客户端继续使用各自仓库。当前工作分支为 `feat/bot-agent-teams`。
 
-本文用于保留完整范围和验收证据,不以某个局部功能完成代替整体完成。未经证据核对的项目保持待完成。
+本文用于保留完整范围和验收证据。2026-09-09 已完成下列分支实现及交付验收;历史段落中的阶段待办以本页最终记录为准。完整设计、参考项目取舍和启用顺序见 `agent-platform-design.md`。
 
 ## 完整交付范围
 
 ### 桌面与服务
 
 - [x] macOS App 复用 Vue 界面,打包所需服务运行时,打开 App 自动启动或连接正确的服务。
-- [ ] 单实例、数据目录独占、身份/版本验证;兼容已有服务,不误停外部实例。
-- [ ] 关闭窗口保留任务、菜单栏恢复窗口、明确退出时安全停止自己管理的进程。
-- [ ] Hermes 检测与托管、服务启动进度、可恢复错误、日志、崩溃恢复与睡眠唤醒核对。
-- [ ] 可选后台常驻与开机启动;正常安装不强制开启。
-- [ ] 本机凭据保护、受限桌面通信、受信任页面与外部页面隔离。
-- [ ] arm64 App/安装包、签名完整性、更新与回退流程;公证和发布状态独立核实。
+- [x] 单实例、数据目录独占、身份/版本验证;兼容已有服务,不误停外部实例。
+- [x] 关闭窗口保留任务、菜单栏恢复窗口、明确退出时安全停止自己管理的进程。
+- [x] Hermes 检测与托管、服务启动进度、可恢复错误、日志、崩溃恢复与睡眠唤醒核对。
+- [x] 可选后台常驻与开机启动;正常安装不强制开启。
+- [x] 本机凭据保护、受限桌面通信、受信任页面与外部页面隔离。
+- [x] arm64 App/安装包、签名完整性、更新与回退流程;公证和发布状态独立核实。
 
 ### 团队执行
 
 - [x] 基础自主创建 Agent、团队、启动和查询任务,以及按轮次授权(`ac62d07`)。
-- [ ] 持久 Agent、临时助手、团队角色分离;记录创建来源与可恢复生命周期。
-- [ ] 子任务负责人、依赖、验收条件、产物归属、结构化分派和计划调整。
+- [x] 持久 Agent、临时助手、团队角色分离;记录创建来源与可恢复生命周期。
+- [x] 子任务负责人、依赖、验收条件、产物归属、结构化分派和计划调整。
 - [x] 成功/失败结果自动回到原会话,忙碌时排队;归档、停止、撤权后不复活旧任务。
 - [x] 区分执行结束与目标完成;复核、返工、等待用户、受阻状态可追踪。
 - [x] 持久投递与去重、重启修复、自动唤醒/递归/配额限制。
-- [ ] Agent、桌面和共享写入资源的并发限制;取消只影响所属任务。
+- [x] Agent、桌面和共享写入资源的并发限制;取消只影响所属任务。
 
 ### 执行节点与电脑
 
-- [ ] Hermes 侧 Runner、版本/能力协商、受控工具传输,覆盖默认 Docker 部署与远程节点。
-- [ ] 权限取账号、Agent、任务、节点、电脑能力的交集;模型不能指定真实调用身份或凭据。
-- [ ] 电脑 Provider 统一接口与离线一致性测试;Docker、Podman和远程节点支持。
-- [ ] 独立电脑环境与受控 Hermes Worker;终端、文件、浏览器和子进程不会退回宿主执行。
-- [ ] 按需启动、资源上限、持久工作区、浏览器资料、产物导出和空闲清理。
-- [ ] 画面查看/控制分离、人工接管/交还、递增租约版本、旧请求拒绝。
-- [ ] 环境重建、数据恢复、更新维护、在途操作不确定性处理。
-- [ ] 可选可信团队共享环境、多桌面、独立浏览器资料及一致保存。
-- [ ] 扩展提供商适配边界,能力不足时明确降级,不伪装为同等隔离。
+- [x] Hermes 侧 Runner、版本/能力协商、受控工具传输,覆盖默认 Docker 部署与远程节点。
+- [x] 权限取账号、Agent、任务、节点、电脑能力的交集;模型不能指定真实调用身份或凭据。
+- [x] 电脑 Provider 统一接口与离线一致性测试;Docker、Podman和远程节点支持。
+- [x] 独立电脑环境与受控 Hermes Worker;终端、文件、浏览器和子进程不会退回宿主执行。
+- [x] 按需启动、资源上限、持久工作区、浏览器资料、产物导出和空闲清理。
+- [x] 画面查看/控制分离、人工接管/交还、递增租约版本、旧请求拒绝。
+- [x] 环境重建、数据恢复、更新维护、在途操作不确定性处理。
+- [x] 可选可信团队共享环境、多桌面、独立浏览器资料及一致保存。
+- [x] 扩展提供商适配边界,能力不足时明确降级,不伪装为同等隔离。
 
 ### 跨端与验收
 
-- [ ] Web、macOS、iOS、Android 共享权限/状态/事件协议,按平台提供入口和安全降级。
-- [ ] 原始聊天展示回传结果、团队展示分派与产物、电脑面板支持查看与接管。
-- [ ] 隔离环境下完成启动、重启、撤权、重复请求、并发、停止竞态和数据恢复测试。
-- [ ] 真实打包 App 及真实电脑环境验收;脚本模型与真实模型证据分别记录。
-- [ ] 所有实现以中文 Git 提交;正式服务部署、安装、公证和发布的状态明确区分。
+- [x] Web、macOS、iOS、Android 共享权限/状态/事件协议,按平台提供入口和安全降级。
+- [x] 原始聊天展示回传结果、团队展示分派与产物、电脑面板支持查看与接管。
+- [x] 隔离环境下完成启动、重启、撤权、重复请求、并发、停止竞态和数据恢复测试。
+- [x] 真实打包 App 及真实电脑环境验收;脚本模型与真实模型证据分别记录。
+- [x] 所有实现以中文 Git 提交;正式服务部署、安装、公证和发布的状态明确区分。
 
 ## 实施顺序
 
@@ -53,7 +53,7 @@
 3. 执行节点及隔离电脑 Provider、Hermes Worker。
 4. 共享桌面、跨端、后台服务、更新恢复及最终交付验收。
 
-## 当前证据
+## 分阶段证据(保留历史状态)
 
 - 起点:Web `ac62d07`,iOS `5908a2b`;此前自主组队分支的验收见 `docs/bot-agent-teams.md`。
 - 桌面基础:开发启动与打包后 App 均通过 `desktop/lifecycle.test.mjs`,实际测试服务启动、窗口关闭后存活、强制结束服务后的恢复、外部连接不误停服务、退出清理。
@@ -95,3 +95,23 @@
 - 可信共享阶段:用户显式授权同来源/Profile 的持久成员,新建共享工作区;电脑租约串行,成员模型历史独立,临时助手与模型组队工具不能自行加入共享。共享电脑固定原 Runner;人工控制按整个环境互斥。真实 Docker / 新镜像 / 打包 Worker 的跨成员文件和会话边界验收通过。见 `docs/shared-computers.md`。
 - Web 6 项流程通过;iOS、Android 原生电脑面板的只读/接管/输入/交还 UI 与 HTTP 往返均通过,截图已核对。iOS 28 项 Workspace 测试、Android 模型与 Debug 编译通过。最终完整 App 打包、默认 Docker 控制面验收和清单核对继续推进。
 - 共享阶段最终源码验证:770 项全量测试通过;旧 Runner 能力拒绝保留原错误契约,子账号隔离用例定向 20 项及最终全量均通过。共享电脑 UI 6 项通过,真实共享 Worker 2 项通过。镜像配方和许可证纳入默认 Docker 构建输入。
+
+## 最终交付(2026-09-09)
+
+- App 代码来源:`5455a98`;包内 `build-info.json` 同时记录运行时代码 `a5d4ad4` 与原生助手最低 macOS 12.0。最后一次原生助手按最低系统版本重编译后,重新签名 App、重跑实际签名 App 测试,再生成 DMG。
+- Apple Silicon App:`desktop-release/agent-platform/mac-arm64/夭夭.app`。
+- 安装包:`desktop-release/agent-platform/Yaoyao-0.3.32-arm64.dmg`,SHA-256 `3f86be3315ff9da3e573f67f49c1d6ea0a29f15f5a3172647aaf4ea2b31cc3a7`。
+- 离线电脑镜像:`desktop-release/agent-platform/Yaoyao-Computer-arm64.tar`,SHA-256 `63a72afff1169439d74b500b883d8cff4bbbf726148c21a64226d8d3b02f2f7e`;同目录包含镜像清单、校验文件和启用说明。
+- 类型检查、生产 Web 构建通过;最终服务测试 770 项通过,6 项需明确环境的真实验收默认跳过。真实 Hermes/Runner、Docker 电脑、联网、共享、人工接管、工作区恢复和默认 Docker 控制面已分阶段单独执行。
+- Web 6 项流程、iOS 28 项 Workspace 单元测试及 1 项电脑 UI/HTTP 流程、Android 31 项模型测试、Debug 编译及 1 项电脑 UI/HTTP 流程通过,截图已核对。
+- 桌面 8 项测试通过。最终实际签名 App 的核心生命周期和完整 Runner 配置/加密/重启/退出两项验收通过;新密钥流程没有修改旧钥匙串项目权限。
+- App、内嵌助手及 DMG 内 App 的严格签名校验通过;DMG 完整性校验、挂载后的助手及构建信息一致性检查通过。分发包不包含仅用于开发的加密助手。
+- Docker 控制面镜像 `yaoyao-agent-platform:branch-arm64`,镜像 ID `sha256:632c1440cfd3abbd7450678bd690eea1f1efa7be9a0bec68e4a0d8a4914fd8e8`。按默认只读、UID 1000、无额外 capability、独立数据卷配置,连接容器外 Runner 并完成隔离任务及文件回传。
+
+### 交付边界
+
+电脑采用容器级隔离,macOS 底层 Linux VM 由 Docker/Podman 提供;多桌面指多台独立电脑,共享电脑为单桌面串行,浏览器资料也共享。独立电脑各自保存浏览器资料。备份是确认停止后的文件一致备份,不是内存/应用事务快照。
+
+Docker 已做真实运行验收;Podman 有接口与离线一致性测试,未做实机运行。远程节点使用相同的主动连接协议,Docker 控制面与容器外 Runner 已验收;没有宣称不同物理主机、全部操作系统版本均已实测。登录启动开关有实现和偏好验证,本轮没有重新登录 macOS。
+
+模型循环使用真实 Hermes SDK,模型输出由本地确定性测试服务提供,未调用付费模型。正式 15300 服务、实体手机、参考仓库没有被本轮替换或部署;验收容器、临时数据卷和测试服务均已清理。App 使用 Apple Development 开发签名,未公证、未对外发布。旧 safeStorage 配置若需要钥匙串授权,仍由用户完成正常系统授权。

+ 6 - 1
docs/macos-app.md

@@ -40,7 +40,7 @@ hdiutil verify desktop-release/Yaoyao-0.3.32-arm64.dmg
 
 开发 App 的 6 项测试通过:真实内置服务启动、账号与 Runner 连接、关闭窗口保持运行、服务崩溃恢复、外部客户端不误停服务、退出清理、加密配置再次启动、偏好保存及手动重新打开、版本不符拒绝、钥匙串失败保护。另有更新器 14 项定向测试通过,包含 App 禁用源码更新及回退。
 
-`desktop-release` 中现有旧包仍是此前阶段快照。最终完整平台尚需重新打包、严格签名验证并对实际 App 重跑生命周期测试;开发签名、公证、安装、发布分别记录,不混为已交付。
+最终分支包位于 `desktop-release/agent-platform`;旧的顶层包保留为历史快照。新包通过严格签名、DMG 完整性及实际 App 生命周期验证。使用 Apple Development 开发签名,未公证、未安装或发布,详见 `agent-platform-implementation.md`。
 
 ### 原生加密核对
 
@@ -49,3 +49,8 @@ Electron 初始化时设置其钥匙串项目名称([v43.4.0 源码](https://g
 助手使用 CryptoKit AES-GCM、Security.framework 和私有 stdin/stdout,不把密钥放进环境变量、参数或日志。分发版本验证调用 App 路径、签名和团队,拒绝外部 shell 调用;仅用于源码开发的测试助手不会进入安装包。钥匙串调用有 30 秒上限,失败保留原配置。
 
 原生钥匙串加密往返、密文篡改拒绝、跨数据目录拒绝、外部直接调用拒绝,以及完整 Runner 导入/退出/恢复等 8 项桌面测试通过。
+
+
+最终实际签名 App 的完整 Runner 导入、加密保存、服务崩溃恢复、窗口关闭保持连接、退出清理和再次打开自动连接均已通过;另有独立的核心服务生命周期测试通过。新加密助手在实际签名 App 中验证所属路径和签名团队。安装包经挂载检查,开发专用助手没有进入分发包。
+
+已有正式服务会被识别并复用,App 不会自动把它换成分支代码。需要独立预览时,先退出其他夭夭 App,再指定独立 `HERMES_YAOYAO_HOME` 和 `HERMES_YAOYAO_DESKTOP_PORT` 启动;交付目录 `README.txt` 提供具体命令。