Parent: #37
Supersedes the production-trust remainder deferred from #57 .
Final product qualification inherited from #140 / #181 / #182 / PR #183 .
目标 / Outcome
本 Issue 只定义 两个面向 Windows 用户的正式成品 。校验和、SBOM、NOTICE、attestation 和测试报告是伴随证据,不算第三个产品。
成品
最终入口
用户体验
分发渠道
Microsoft Store 成品
TraverseBoard_<version>_x64.msix(若 Partner Center 流程需要,可再封装为 .msixupload)
在 Store 中安装、升级、卸载
Microsoft Store
开箱即用 EXE
TraverseBoard.exe
下载后直接双击;不解压、不运行脚本、不输入命令或启动参数
GitHub Release / 官网直链
两条渠道必须来自同一个 source commit、同一版本和同一份 Windows x64 应用二进制。Store 重新签名或外层封装不得破坏这条来源绑定。
Start-Prayu-Operator-Preview.cmd 不是正式产品入口。它只可作为历史兼容或内部测试夹具保留,不得继续出现在最终下载引导、主 Release 下载项或验收截图中。--safe-view 可以保留为诊断入口,但普通用户不需要知道或使用它。
背景 / Context
当前 GitHub Release 同时暴露 portable ZIP、TraverseBoard.exe 以及若干证据文件;ZIP 内仍包含名称抽象的 Start-Prayu-Operator-Preview.cmd。虽然该脚本只是转调 TraverseBoard.exe,但它会让用户误以为还需要“启动预览器”或运行开发脚本。
当前 MSIX 也仍是开发候选:manifest 使用占位的 Name="PrayuDesktop"、Publisher="CN=Prayu",且可执行包 Identity 尚未完整绑定 Partner Center 的产品身份与 x64 架构。因此普通 ZIP 不能提交 Store,现有 MSIX 也不能直接视为 Store 成品。
成品 A:Microsoft Store 包
在 Partner Center 保留正式产品名,复制并固定平台给出的:
Package/Identity/Name
Package/Identity/Publisher
Package/Properties/PublisherDisplayName
manifest 使用精确 Store identity,并为包含可执行代码的包声明 ProcessorArchitecture="x64"。
固定 DisplayName、图标、隐私政策、年龄分级、Store listing 和升级 identity。
保留 runFullTrust 时,提交清楚、最小化且与实际行为一致的受限能力说明;不得把它描述成管理员提权。
Store 提交采用 Partner Center 接受的 MSIX 成品,由 Microsoft 在认证后重新签名;不要求将可导出 PFX 放入仓库或普通 GitHub Secret。
安装后从开始菜单直接进入与 EXE 相同的安全默认控制面;首次运行完成必要配置,不要求用户打开终端。
验证安装、同 identity 升级、降级拒绝、repair、卸载、重装和用户数据保留。
成品 B:开箱即用的单 EXE
GitHub Release 的主下载项直接提供 TraverseBoard.exe,不是安装器壳、ZIP 或脚本入口。
用户下载后双击即进入安全默认控制面和首次使用向导:
不要求先解压;
不要求运行 .cmd / .ps1;
不要求输入参数、设置工作目录或手动启动后端;
不弹出无意义的控制台窗口;
不默认开启 Full Access、Debug、Full CDP、后台 Worker 或持久终端。
前端资源、产品图标以及项目自带的运行组件随 EXE 一起交付;不得要求用户从仓库另取文件。
在受支持的干净 Windows 10/11 环境双击启动。若系统缺少 WebView2 等不可内嵌的系统前置条件,必须显示明确、可操作的本机提示,不得白屏或静默退出。
Store 外正式 EXE 使用受保护的公开受信任 Authenticode 签名和 RFC 3161 时间戳。若只能发布未签名候选,必须明确标为 prerelease/unknown-publisher 候选,不得宣称完成正式信任发行。
LICENSE/NOTICE、SBOM、SHA-256、release metadata 和 provenance 可作为同一 Release 的伴随文件或应用内法律信息提供,但不得改变“下载一个 EXE 即可启动”的体验。
Release 与验证合同
面向用户只宣传上述两个产品:
Microsoft Store 安装;
直接下载 TraverseBoard.exe。
portable ZIP 可以暂时作为 CI 的可复现验证容器或兼容产物,但:
不算正式的第三种产品;
不再作为普通用户推荐入口;
Release gate 应迁移为直接验证 EXE 与 Store 包;
Start-Prayu-Operator-Preview.cmd 不得成为任何正式验收的启动步骤。
两个成品及所有伴随证据绑定同一 source commit、版本、候选 SHA-256、SBOM 和 artifact attestation。
Store 包内应用 EXE 与直接下载 EXE 必须可证明来自同一构建输入;如签名造成字节差异,应同时记录签名前 payload hash 与签后 artifact hash。
签名、时间戳、identity、证据聚合或认证前置检查失败时,正式发布 fail closed。
从 #140 延后的最终产品资格
在品牌与 Store identity 冻结后,对同一最终候选执行 #182 / PR #183 的 Prepare → InjectConcurrentEdit → Collect 流程:
Go、Node.js、Python、Rust 完成真实失败、搜索/读取、两轮受审修改、诊断重试、真实通过和可验证交付。
Local Sandbox 与 Docker network=none 覆盖适用矩阵;不可用时只允许显式 Approval fallback,不得静默切换 Full Access。
覆盖 Windows 10/11、100%/200% DPI、中文 IME、键盘/焦点/accessible name,以及中文、空格、长路径、CRLF、dirty、untracked、binary 和并发用户编辑。
Desktop、CLI、HTTP、Handoff 与最终回复指向同一 Diff、verification Jobs、Artifacts、Checkpoint 和 receipt。
产品报告、安全报告、签名链、SBOM、attestation 与发布文件绑定同一候选;缺失、过期、部分通过、skip 或 waiver 均不得聚合成正式通过。
验收条件 / Acceptance criteria
双产物合同
Microsoft Store
直接 EXE
最终资格
非目标 / Non-goals
不把 Start-Prayu-Operator-Preview.cmd 包装成最终用户体验。
不把 portable ZIP、证据 JSON 或校验文件宣传成第三个产品。
不复用 build(windows): 签名 MSIX 安装、升级、卸载与发布证明 #57 的短期 CN=Prayu 自签测试证书。
不为了单 EXE 再增加 MSI/EXE 安装器;本 Issue 的直发路线就是可直接运行的 TraverseBoard.exe。
不在品牌或 Partner Center identity 尚未确定时硬编码占位 Publisher。
Parent: #37
Supersedes the production-trust remainder deferred from #57.
Final product qualification inherited from #140 / #181 / #182 / PR #183.
目标 / Outcome
本 Issue 只定义 两个面向 Windows 用户的正式成品。校验和、SBOM、NOTICE、attestation 和测试报告是伴随证据,不算第三个产品。
TraverseBoard_<version>_x64.msix(若 Partner Center 流程需要,可再封装为.msixupload)TraverseBoard.exe两条渠道必须来自同一个 source commit、同一版本和同一份 Windows x64 应用二进制。Store 重新签名或外层封装不得破坏这条来源绑定。
背景 / Context
当前 GitHub Release 同时暴露 portable ZIP、
TraverseBoard.exe以及若干证据文件;ZIP 内仍包含名称抽象的Start-Prayu-Operator-Preview.cmd。虽然该脚本只是转调TraverseBoard.exe,但它会让用户误以为还需要“启动预览器”或运行开发脚本。当前 MSIX 也仍是开发候选:manifest 使用占位的
Name="PrayuDesktop"、Publisher="CN=Prayu",且可执行包 Identity 尚未完整绑定 Partner Center 的产品身份与 x64 架构。因此普通 ZIP 不能提交 Store,现有 MSIX 也不能直接视为 Store 成品。成品 A:Microsoft Store 包
ProcessorArchitecture="x64"。runFullTrust时,提交清楚、最小化且与实际行为一致的受限能力说明;不得把它描述成管理员提权。成品 B:开箱即用的单 EXE
TraverseBoard.exe,不是安装器壳、ZIP 或脚本入口。.cmd/.ps1;Release 与验证合同
TraverseBoard.exe。Start-Prayu-Operator-Preview.cmd不得成为任何正式验收的启动步骤。从 #140 延后的最终产品资格
在品牌与 Store identity 冻结后,对同一最终候选执行 #182 / PR #183 的
Prepare → InjectConcurrentEdit → Collect流程:network=none覆盖适用矩阵;不可用时只允许显式 Approval fallback,不得静默切换 Full Access。验收条件 / Acceptance criteria
双产物合同
Start-Prayu-Operator-Preview.cmd已退出普通用户下载、文档和正式验收路径。Microsoft Store
runFullTrust说明通过认证审查。直接 EXE
TraverseBoard.exe后可直接双击进入首次使用向导。最终资格
standard_code_product_e2e.v1。非目标 / Non-goals
Start-Prayu-Operator-Preview.cmd包装成最终用户体验。CN=Prayu自签测试证书。TraverseBoard.exe。