Mac 1.0.0 测试版 · 验证说明

已验证
1. 下载并分析官方 Codex.dmg：ChatGPT.app，版本 26.1007.30912，bundle ID com.openai.codex，最低 macOS 13.0，下载为 arm64。
2. 找到 Mac 实际资源位置：Contents/Resources/app.asar、cua_node/bin/node、cua_node/lib/node_modules、codex-cli/bin/codex。中文实际读取 getLayer('72216192')，Mac Computer Use 插件版本 1.0.1001425。
3. Mac TOML 配置迁移：默认模型 gpt-6.1-sol、DD provider、[desktop] zh-CN。已有引号表名、项目设置、主题及其他权限设置保留；重复转换结果一致；无效配置不输出原文。
   API 配置指定 file 凭据存储和 API 登录；官方 CLI 在没有全局 OPENAI_API_KEY 的隔离环境里确认读取此凭据为 API key 登录，原有有效令牌数据与其他字段保留并备份。
4. 在中文/空格用户名的隔离目录内生成新 Mac 布局缓存；只初始化当前目录，不创建不存在的旧缓存。两种已有目录分别保留启动标识，修改前备份。
5. 执行官方 Mac 包内真正的渲染器 SDK 与实际中文开关读取函数，API 密钥和无登录两种模式在禁用全部网络时均读取 true。
6. 执行 Mac 实际中文 Provider D9s 与客户端自带中文模块，最终 locale 为 zh-CN，收到 30,210 条中文消息，包含“设置”；测试使用隔离 React hooks，不代表 Mac 整机界面验收。
7. 诊断前后原文件 SHA256 一致。只输出缓存状态与三类语言日志错误计数，虚拟 API 密钥、令牌及原始日志标识不出现在报告。
8. 桌面启动入口保留无关同名文件，重复操作复用原入口。运行中的客户端拒绝改缓存，分析存储关闭时不创建缓存。
9. JXA 和 Node JavaScript 语法检查、bash 语法检查通过。ZIP 包保留 Unix 可执行权限，包含完整 .app、备用 .command、说明和本地 TOML 组件。

测试限制
- 上述缓存与 SDK 测试在 Windows 主机运行 Mac 的 JavaScript 资源，使用 Windows 原生 LevelDB 绑定。它验证跨平台缓存与渲染器逻辑，未执行 Mac 原生二进制。
- Computer Use 插件接口使用官方 Windows CLI 安装真实 Mac 插件来源验证流程；Mac CLI 的实际执行仍须 Mac 实机验证。
- Cocoa/JXA 原生窗口、下载挂载安装、codesign/Gatekeeper、Mac 原生 Node/LevelDB、桌面 Finder 启动和系统授权均需要 Mac 实机验收，不能标注为已经通过。
- 测试助手未用 Apple Developer ID 签名、公证；正式大范围分发前，应在 Mac 验收后按正常 Apple 开发者流程签名和公证。

首台 Mac 验收
1. 使用 M 系列 Mac，macOS 13 或更新；解压 ZIP，按系统正常流程打开助手，检查中文原生窗口和检测日志。
2. 未装客户执行开始安装与配置，确认正式安装位置；已装客户确认跳过下载。两种客户都检查桌面启动入口。
3. 关闭 Codex 与代理/VPN，单独启用离线中文，再打开检查设置页、侧边栏与新聊天界面；此步骤不需要外网汉化包。
4. 如果英文，保持 Codex 运行，检查中文状态并复制日志。日志应包含版本、缓存路径、layer_configs、两个登录模式读取数及运行目录。
5. 使用 DD API 发一次简单请求，确认 gpt-6.1-sol 可用。接口返回模型列表为空时，助手会提示实际模型连接仍需验证。
6. Computer Use 先初始化客户端插件页面，再退出并在助手安装。重开用计算器验证，按系统提示授予官方组件屏幕录制、辅助功能及应用访问权限。
7. 再次执行快捷方式和中文启用，确认重复执行可用；当前配置、用户项目和其他功能正常。

构建
在开发目录用 Node.js 执行 build-mac.cjs。构建不要求 Mac，生成带 Unix 权限的 ZIP。
Mac 实机验收和签名、公证仍要求 Mac；可用包内 .command 作为原生窗口启动入口，不需要安装开发工具。
