Implement catalog startup diagnostics (T-616)
This commit is contained in:
+4
-2
@@ -330,8 +330,8 @@ Windows 平台用 Toolhelp32 快照枚举,并以 `QueryFullProcessImageName`
|
||||
|
||||
| 事件 | 触发时机 | 负载 | 结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| CatalogRefreshed | 清单验签并缓存成功 | catalog 摘要、generated_at | 列表刷新 |
|
||||
| CatalogRejected | 清单验签失败 | 原因码 | 提示 + 继续用缓存 |
|
||||
| CatalogRefreshed | 已验证、目标过滤的内存快照准备完成 | `CatalogEvent{source: remote\|cache, items: []CatalogListItem}` | UI Frame 深拷贝后刷新列表 |
|
||||
| CatalogRejected | 无法得到可消费快照 | `CatalogEvent{failure_code: catalog_source_unconfigured\|catalog_load_failed}` | 仅显示稳定诊断,保留最后成功快照 |
|
||||
| DownloadStarted | 一个下载 attempt 开始/因安全重下而重置 | request_id, app_id, attempt, done, total_known, total | 状态 → downloading |
|
||||
| DownloadProgress | 当前 attempt 进度更新 | request_id, app_id, attempt, done, total_known, total, speed | 进度条刷新;done 在同 attempt 内单调 |
|
||||
| DownloadPaused | 用户暂停且旧 worker 已完全退出 | request_id, app_id, attempt, done | 状态 → queued(暂停态) |
|
||||
@@ -347,6 +347,8 @@ Windows 平台用 Toolhelp32 快照枚举,并以 `QueryFullProcessImageName`
|
||||
|
||||
错误码为稳定英文枚举(如 `hash_mismatch`, `zip_path_escape`, `disk_full`, `app_running`, `signature_invalid`),UI 负责本地化文案。图标事件只使用 `unavailable`、`invalid_content`、`unsafe_cache`,原始网络错误只返回后台调用方/日志,不得进入 UI payload。`unsafe_cache` 详情只使用 event 中已经验证的 app ID、icon_ref 与 DPI 生成 `<digest>-<dpi>.icon` locator;不得把 cache root、原始错误或 link target 补进 event/UI。
|
||||
|
||||
T-616 固定 Catalog 启动事件的强类型 payload:`CatalogRefreshed` 只携带已经验签、协议校验、目标过滤并转为内存 `CatalogListItem` 的深拷贝快照,`source` 只允许 `remote` 或 `cache`;`CatalogRejected` 不携带列表、URL、路径、密钥或原始错误,只允许 `catalog_source_unconfigured`、`catalog_load_failed`。UI 必须拒绝类型、source、item 身份或 code 不匹配的 payload,且失败不得清除已成功显示的快照。当前生产 cmd 没有真实 URL/公钥/发布配置,故启动时只发布 `catalog_source_unconfigured`;不得以 testdata、环境变量、未签名本地文件或 allow-all verifier 填充目录。
|
||||
|
||||
## 5. CLI 参数合约
|
||||
|
||||
### 5.1 SoftBox.exe
|
||||
|
||||
Reference in New Issue
Block a user