合并主线Mac运行资源与发布门禁更新
合入 origin/master b137f1759,保留画布验收与计时返修。 同步主线0.1.67版本及Mac随包资源、插件能力和发布目标检查。 合并双方排障说明,不提交个人依赖锁文件改动。
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# Mac 客户端随包运行依赖补齐实施计划
|
||||
|
||||
- Version: 2
|
||||
- Status: awaiting-windows-acceptance
|
||||
- Date: 2026-09-18
|
||||
- Parent Spec: `【里程碑】Mac客户端随包运行依赖补齐-2026-09-18.md`
|
||||
|
||||
## 修改顺序
|
||||
|
||||
本轮评审修复顺序:统一 release context(覆盖 build/upload 两入口)→ 版本/端点/产物/清单的定向回归 → 宿主列表/启动/面板与前端自动启动能力门禁 → 同步单架构权威文档 → Node/Vitest/Rust/typecheck/编码/文档/diff 检查。用户随后授权同步 master、重打 0.1.67 并推送当前 PR 分支;不读取私钥、不上传安装包、不合并 PR。
|
||||
|
||||
1. 提取构建与运行共用的 Codex 平台布局;按 Cargo TARGET stage 锁定原生依赖并校验包元数据,保留可执行位。
|
||||
2. 增加 macOS 专属 Tauri 资源映射、声明、产物忽略规则;复用插件 staging,不复制 Windows 原生 payload。
|
||||
3. 修正 `.app/Contents/Resources` 定位与平台清单验证,保持外部安装回退。
|
||||
4. 补目标布局、资源映射、缺失/篡改/平台身份、候选顺序与路径测试,运行定向门禁。
|
||||
5. 构建 `.app`,在隔离目录做资源清点、原生二进制启动和 app-server 握手;生成 DMG 并校验。记录 GUI/真实 Provider 和 Cocos 未验收项。
|
||||
|
||||
## 命令与边界
|
||||
|
||||
- `cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml agent::codex_cli::tests:: -- --test-threads=1`
|
||||
- `npm run ai-game-creator-shell:typecheck`
|
||||
- 定向 Node 打包契约测试、`npm run check:encoding`、`npm run check:doc-index`、`git diff --check`
|
||||
- 本地 Tauri 构建关闭 updater artifact;版本按用户要求统一为 0.1.67,不读取发布私钥,不运行 release upload。
|
||||
|
||||
## 风险与停止条件
|
||||
|
||||
磁盘不足、目标包不匹配或配置测试回归时停止打包,先修正原因,不跳过验证。用户已确认 Mac 本地可用并授权提交、推送当前分支和创建草稿 PR;产物放 gitignored target,不上传发布。回滚以本次路径 diff 为边界,不恢复无关文件。保留计划等待 Windows 回归验收,证据见对应里程碑规范。
|
||||
@@ -0,0 +1,42 @@
|
||||
# Mac 客户端随包运行依赖补齐
|
||||
|
||||
- Version: 2
|
||||
- Status: awaiting-windows-acceptance
|
||||
- Date: 2026-09-18
|
||||
- Parent Spec: `docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md` / Runtime 边界 / 安装包侧车
|
||||
|
||||
## 目标与范围
|
||||
|
||||
产出可交给用户本地测试的 Apple Silicon DMG;Codex、平台辅助组件、插件入口和面板来自安装包,不依赖仓库或全局 Codex。保持 Windows 现有路径、版本、回退和安全语义。
|
||||
|
||||
## 非目标与依赖
|
||||
|
||||
不修改 Agent Loop、公开 API、持久化数据、版本号或更新签名;远程推送与草稿 PR 已获用户确认,不发布安装包、不自动合并。Node/Cocos Creator/账号仍使用现有外部前提。Cocos macOS 原生桥接不是文件打包修复,不计为本里程碑完成能力;Intel 实机构建与 universal 不在本次交付验收内。
|
||||
|
||||
## 验收标准
|
||||
|
||||
1. 构建目标与锁定原生包匹配,缺组件或元数据错误失败关闭。
|
||||
2. `.app` 内包含全部原生组件、SHA-256 清单、声明及插件清单/入口/面板;Unix 可执行位保留,不含 Windows DLL、私有配置与构建缓存。
|
||||
3. 运行时先选随包文件,验证完整性和版本;覆盖缺失、篡改、平台不匹配及 macOS Resources 路径解析。
|
||||
4. 脱离仓库且限制 PATH、隔离 HOME 后,真实内置 Codex app-server 完成初始化握手;不能借全局 Codex 掩盖缺包。
|
||||
5. 定向 Rust 测试、配置/类型门禁、编码、文档索引和 diff 检查通过,DMG 校验通过;用户本地 GUI/登录/对话测试另行验收。
|
||||
|
||||
## 评审结论
|
||||
|
||||
2026-09-18 编码前自审:平台资源与运行时查找必须一起改;共享文件白名单避免双份清单漂移;不会复制 Windows 专属组件到 Mac;安装包结构证据和真实交互证据分开。以上范围可实施,不推进 Cocos 原生桥接下一里程碑。
|
||||
|
||||
## 验收现状与剩余门禁
|
||||
|
||||
### 评审反馈修订合同
|
||||
|
||||
2026-09-18 编码前自审:本轮仅修复同里程碑的目标平台传递、Cocos 能力门禁和文档冲突,不新增原生桥接或发布管线。CLI 显式目标必须覆盖环境默认,并在版本、构建、产物和清单全链路保持一致;不支持平台或渠道错配应在副作用前失败。Cocos 必须由已注册适配器决定可见/启动,覆盖无适配器、有适配器及非 Cocos 项目;前端不盲目启动隐藏插件。更新权威文档改为单架构策略,拒绝 universal,且不宣称现有发布脚本支持跨构建合并两种架构。新增回归通过后仍等待 Windows 验收;本地 0.1.67 版本修改保留,不与旧 0.1.47 安装包证据混淆。
|
||||
|
||||
评审修复验证:发布/feature/上传脚本测试 32 项通过,前端插件自动启动 5 项通过,Rust PluginHost 11 项与内置插件 10 项通过;Rust 使用 `TMPDIR=/private/tmp` 避免 macOS `/var` 系统链接触发既有路径安全断言。类型/配置、定向 ESLint、编码、文档索引和 diff 检查通过。测试覆盖显式目标覆盖环境、错误渠道提前拒绝、Tauri 实际注入配置、真实临时清单写入、Windows 默认 feature 保留、无 adapter 隐藏/启动拒绝、有 adapter RPC 回归。上述是自动化证据,不代表 Windows 真机、GUI 或带本次修复的新安装包已验收。
|
||||
|
||||
重打验证:重新 fetch/merge `origin/master` 确认当前分支已包含最新 master;按用户要求将 package、Tauri、Cargo 与锁文件版本同步到 `0.1.67`。包含上述修复的 Release `.app` 构建通过,Info.plist 实测版本 `0.1.67`、最低系统 `15.0`;隔离安装包脚本再次通过,DMG 用 hdiutil 生成并校验通过。此版本仍等待用户 GUI 与 Windows 回归,不做正式签名、公证、更新签名或产物上传。
|
||||
|
||||
- Mac 本地测试包已由用户确认“可以用了”;不外推为全部对话、工具和其它机器兼容性已覆盖。
|
||||
- 定向 Rust 验证 14 项通过,1 项真实认证用例按原配置跳过;发布脚本测试 21 项通过;隔离 HOME/PATH 的安装包资源检查、正式 Codex 查找、app-server 握手及缺组件拒绝通过。
|
||||
- 类型与配置、编码、文档索引、定向脚本 lint 和 diff 检查通过;139 MiB DMG 完整性通过。
|
||||
- 随包 zsh 的原生最低系统为 macOS 15.0;macOS Tauri 最低版本声明随之对齐,不能仅按主程序的 macOS 11.0 下限宣称整包兼容性。
|
||||
- Windows NSIS 构建、安装、随包 Codex 与 Cocos 原有能力回归尚待用户测试;其它 Mac、Intel、正式签名/公证和更新签名未验收。保持草稿,不推进合并或发布。
|
||||
@@ -12,6 +12,14 @@ Phaser `Scale.FIT` 与 `autoCenter: CENTER_BOTH` 会给 canvas 计算定位外
|
||||
|
||||
开发 Agent 的实际系统工程提示和 `agc-web-game-development` Skill 均包含此规则。布局修改后重新构建 dist,分别在桌面、移动与 resize 后测量 canvas 相对游戏父容器的中心误差(预期居中时不超过 1 CSS px),同时检查无溢出和意外滚动条;构建成功不等于视觉验收通过。
|
||||
|
||||
## 发布目标与原生能力必须贯穿完整入口
|
||||
|
||||
显式 `--target` 不能只改变 Tauri 命令参数;AGC 发布入口必须把同一解析结果传给版本高水位、更新端点、产物目录/后缀和清单平台键,否则 macOS 构建可能错误使用 Windows 渠道。插件文件存在也不代表 native 能力可用:Cocos 在宿主注册表缺少适配器时应隐藏并拒绝启动,前端自动启动消费后端列表投影,不能仅凭项目类型推断能力。发布策略以客户端更新权威文档为准,单架构资源不能登记成双架构产物。
|
||||
|
||||
## macOS 安装包小不代表运行依赖齐全
|
||||
|
||||
AGC 的 DMG 生成成功只证明应用可以被打包。平台专属 Codex staging、Tauri resource 映射、运行时资源目录定位和辅助组件 SHA-256 清单必须同时闭合;只配置 Windows 资源会让 Mac 开发机因全局 Codex 而掩盖缺包。macOS 使用锁定原生依赖中的 Codex、code-mode host、rg 和 zsh,不能复制 Windows EXE/DLL。用 `scripts/check-macos-bundle.mjs`(AGC 应用目录下)对复制到临时目录的 `.app` 做限制 PATH、隔离 HOME 的正式查找、app-server 握手和缺组件拒绝检查;GUI、账号、Provider 与 Cocos 原生桥接另行验收。插件 JS 入口仍依赖系统 Node,不得将“插件文件随包”表述为“无需任何外部工具链”。
|
||||
|
||||
## AGC 空快照测试必须等待请求完成
|
||||
|
||||
`waitFor(() => expect(activeTurns).toEqual([]))` 在 Hook 初始状态就能成功,不能证明首次异步读取已经完成。引用稳定性回归应显式控制 Promise 完成,并同时检查首次空响应与禁用后的引用;快照签名初值必须与初始空数组一致。窗口同步测试应验证未变化状态不重复发布,不能依赖一次多余的空态更新。
|
||||
|
||||
Reference in New Issue
Block a user