feat(t206): connect Android procurement tasks
This commit is contained in:
+13
-5
@@ -314,20 +314,28 @@ CLAIMED/RUNNING/WAITING_CONFIRMATION
|
||||
规则:
|
||||
|
||||
- `SUCCEEDED` 是验证结果成功,不代表已下单;`order_submitted=false`。
|
||||
- `CLAIMED` 默认租约为 10 分钟;T-206 将 `RUNNING/WAITING_CONFIRMATION` 默认
|
||||
授权从当前 90 秒扩展为 30 分钟,允许范围 5 至 120 分钟。App 每 30 秒
|
||||
best-effort heartbeat,成功后按服务端时间滑动续期。
|
||||
- `CLAIMED` 默认租约为 10 分钟;`RUNNING/WAITING_CONFIRMATION` 默认授权为
|
||||
30 分钟,允许范围 5 至 120 分钟。App 每 30 秒 best-effort heartbeat,成功后
|
||||
按服务端时间滑动续期。
|
||||
- 只有当前设备和有效 claim token 能启动、续租、上报或结束任务。
|
||||
- 终态不可回退;重试创建新的 execution attempt,不篡改历史证据。
|
||||
- App 在 claim 前生成并安全保存 256 bit Raw URL token;后端只存 SHA-256,
|
||||
token 与 `Idempotency-Key` 相互独立。
|
||||
- 过期 `CLAIMED` 可以原子回收;过期 `RUNNING/WAITING_CONFIRMATION` 保持原状态,
|
||||
不自动回队列。App 到达服务端授权截止时间必须安全停止,但原设备可以在重连后
|
||||
补报已产生的终态结果并留下过期补报审计标志。
|
||||
不自动回队列。App 到达服务端授权截止时间持久化 `SAFE_STOPPED` 并停止前台
|
||||
执行;原设备重连 heartbeat 只同步状态且不延长已过期授权。T-207 才允许原设备
|
||||
补报授权内已产生的终态结果并留下过期补报审计标志。
|
||||
- 管理取消 `PENDING/CLAIMED` 立即终态;执行中只设置停止请求,App 在下一个安全
|
||||
检查点停止并调用 `cancel-ack` 后才进入 `CANCELED`。离线期间不能保证即时取消,
|
||||
App 恢复连接后必须先同步取消状态再继续页面动作。
|
||||
|
||||
T-206 Android 使用独立 `ProcurementSecureStore` 保存 backend URL、BUYER access
|
||||
token、设备 secret、claim token、各操作幂等 key、任务快照和 execution。存储创建
|
||||
失败时整个后台采购入口 fail closed,不回退普通 `SharedPreferences`。登录密码只
|
||||
存在于当前 Compose 输入和一次请求中;后台任务不能读取或修改 Roubao provider。
|
||||
`HttpTaskSource` 只把已领取任务和经过 MIME/JPEG/大小/SHA-256 校验的内部参考图
|
||||
映射为现有 `ProbeTask`,不参与领取策略。
|
||||
|
||||
### 4.2 Android 工作流状态
|
||||
|
||||
```text
|
||||
|
||||
Reference in New Issue
Block a user