Move trial authorization out of MVP scope
Resolve the requirements-vs-architecture conflict found in the Phase 5 review. License v1 is frozen at nine fields with no expiry field (perpetual is a bool; update/rebind policy are opaque labels), so it cannot express a trial period. The implementation and architecture docs correctly recorded that boundary, but 02-requirements still listed trial as a P0 capability and an MVP acceptance criterion. Decision: trial moves to V1.1. - 02-requirements: drop trial from the user role and P0 feature list; acceptance now reads 'authorization state consistent between box and sub-apps'; add a V1.1 trial row naming the protocol prerequisite; add a scope row stating perpetual:false is display-only and never expires, and supports_trial does not grant local trial. - 00-ai-start-here: remove trial from 'MVP does', add it to 'MVP does not' with the protocol reason. - 04-architecture: development order step 5 no longer lists trial/rebind as MVP work. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -80,13 +80,14 @@ MVP 只做:
|
||||
- 下载队列(并发/暂停/续传/恢复)与 ZIP 安全安装(staging/backup/回滚)。
|
||||
- 版本检测、子软件更新、软件启动与进程检测。
|
||||
- SoftBoxUpdater 盒子自更新。
|
||||
- Ed25519 机器绑定许可证(导入、离线验证、试用)。
|
||||
- Ed25519 机器绑定许可证(导入、离线验证、撤销状态)。
|
||||
- 现代版(Win10/11 x64)+ Win7 遗留版(SP1 x64)双构建、双更新通道。
|
||||
|
||||
MVP 不做:
|
||||
|
||||
- 评论/评分/社区、在线支付、多账号云同步。
|
||||
- 皮肤市场、插件脚本执行、驱动安装。
|
||||
- **试用授权**(License v1 无到期字段,需新协议版本;见 `02-requirements.md` 后续迭代)。
|
||||
- files.json 修复、命名管道优雅退出、便携模式、beta 通道、Win7 x86(见 Backlog)。
|
||||
|
||||
## 事实来源
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
## 二、用户角色
|
||||
|
||||
- **普通用户**:浏览软件列表、下载、更新、启动软件、导入许可证、试用。
|
||||
- **普通用户**:浏览软件列表、下载、更新、启动软件、导入许可证。
|
||||
- **Win7 遗留用户**:使用 Legacy 版盒子,只能看到并下载兼容自己系统的软件包。
|
||||
- **发布者(自己,不在客户端内)**:通过 Catalog 发布签名清单和软件包、签发许可证、维护撤销名单。
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
| 版本检测和更新 | 有新版本时提示并可一键更新;更新失败自动回滚 | P0 |
|
||||
| 软件启动与运行检测 | 一键启动;运行中的软件不被更新覆盖 | P0 |
|
||||
| 盒子自身更新 | 盒子提示自身新版本并安全自更新,失败可恢复 | P0 |
|
||||
| 机器绑定许可证 | 导入许可证,离线验证,区分正式版/试用版/授权错误 | P0 |
|
||||
| 机器绑定许可证 | 导入许可证,离线验证,区分已授权/未授权/授权错误 | P0 |
|
||||
| 双版本 | 现代版(Win10/11 x64)和 Win7 遗留版各自可用,更新通道不交叉 | P0 |
|
||||
| 日志与失败恢复 | 关键操作有日志;下载/安装失败有明确提示和重试路径 | P0 |
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
| 功能 | 描述 | 阶段 |
|
||||
| --- | --- | --- |
|
||||
| 试用授权 | 未注册试用与到期判定;License v1 九字段无到期字段(`perpetual` 仅为布尔、policy 字段为不透明标签),需先定新协议版本或独立签名试用对象,并解决时钟回拨与跨机重置 | V1.1 |
|
||||
| files.json 复核与修复 | 按文件清单发现缺失/被改文件并修复安装 | V1.1 |
|
||||
| 命名管道优雅退出 | 更新前通知子软件保存并退出(prepare_update/ready) | V1.1 |
|
||||
| --softbox-info / --softbox-health | 子软件标准自检参数接入健康检查 | V1.1 |
|
||||
@@ -64,7 +65,7 @@
|
||||
- **安装/更新**:哈希不符、路径穿越、磁盘不足、目标程序运行中——每种情况都有确定的失败结果且不破坏 current;更新失败后旧版本仍可启动。
|
||||
- **启动**:启动前检查文件存在、系统兼容和授权;运行中软件在列表显示「运行中」;运行状态通过进程快照检测。
|
||||
- **盒子自更新**:更新过程中断电/失败,下次启动可恢复旧版;新版启动后写入健康状态。
|
||||
- **授权**:许可证离线可验证;machine_hash 不匹配即拒绝;更新任何软件都不覆盖许可证与用户数据;试用与正式状态在盒子和子软件中一致。
|
||||
- **授权**:许可证离线可验证;machine_hash 不匹配即拒绝;更新任何软件都不覆盖许可证与用户数据;授权状态在盒子和子软件中一致。
|
||||
- **双版本**:两个 EXE 分别在 Win11 和 Win7 SP1 真机可打开并完成「清单→下载→安装→启动」;Win7 版清单不出现现代版软件包。
|
||||
- **性能**:数百个软件项列表滚动流畅;界面每帧不做磁盘/网络 IO。
|
||||
|
||||
@@ -76,6 +77,7 @@
|
||||
| 是否需要账号 | 否;授权基于许可证文件 + 机器绑定,无在线账号体系 |
|
||||
| 第一版范围 | 上表 P0 的最小闭环 |
|
||||
| 软件包格式 | ZIP(标准软件包协议 v1),不再依赖 UnRAR.dll |
|
||||
| 试用 | **移出 MVP**,见「后续迭代」。License v1 的 `perpetual:false` 仅是「非永久许可证」的展示语义,**不会自动到期、不产生试用授权**;`app.json` 的 `supports_trial` 只表示软件支持试用,不构成本地试用能力。无有效许可证时不授权启动 |
|
||||
| 暂不支持 | 评论/评分/社区、支付、云同步、皮肤市场、插件脚本、驱动安装 |
|
||||
| Win7 定位 | Legacy:仅兼容与严重修复,有用户占比门槛和停止维护日期 |
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ T-403 的盒子自更新由独立、无 Gio 的 `SoftBoxUpdater.exe` 完成。
|
||||
2. 最高风险原型:签名清单验签与缓存回退、ZIP 安全解压、staging/backup 原子切换。
|
||||
3. 核心用户流程:清单 → 列表/搜索 → 下载队列 → 安装 → 启动。
|
||||
4. 更新与自更新:子软件更新、SoftBoxUpdater、健康检查与回滚。
|
||||
5. 授权:机器指纹、许可证验证、试用/换绑/导入。
|
||||
5. 授权:机器指纹、许可证验证、离线导入与撤销状态(试用/换绑不在 MVP,见 `02-requirements.md`)。
|
||||
6. Win7 加固与发布:API 降级、真机矩阵、双通道发布流水线。
|
||||
|
||||
## 八、架构纪律
|
||||
|
||||
Reference in New Issue
Block a user