Recognize local app states (T-202)

This commit is contained in:
ila
2026-07-16 17:00:06 +08:00
parent 2e21c9f327
commit 819b1cdf88
16 changed files with 1303 additions and 16 deletions
+7
View File
@@ -131,6 +131,13 @@ soft_quay/
每次状态写入使用临时文件 + 原子替换;崩溃后可识别 staging、backup 和未完成事务。
T-202 将本地识别拆为两层:
- `core/storage`:严格读写 `installed-app.json` v1,读取主文件或中断遗留 backup,并只读检测安装 transaction/journal 是否存在。
- `core/domain`:纯 SemVer 2.0.0 比较与 `ResolveAppStatus`,按“恢复事务 → 活跃操作 → 运行 → 不兼容 → 是否安装 → 是否有更新”推导单一状态。
磁盘扫描结果必须在进入 Gio Layout 前准备好;UI 不直接读取 installed-app.json。完整字段见 [api.md](api.md),Schema 为 `schemas/installed-app.schema.json`。
### 4.3 事件模型
后台任务只发布事件(`DownloadStarted / DownloadProgress / DownloadPaused / DownloadCompleted / DownloadFailed` 等),UI 按 RequestID 和软件 ID 回填,见 [api.md](api.md) 事件合约。