Android 采集结果 Outbox 与断网恢复 #92

Open
opened 2026-08-25 15:00:54 +08:00 by ila · 0 comments
Owner

所属与门禁

  • 父 MVP:#86
  • 依赖:#87 原型审核;可在共享本地持久化设计确认后与 #90 分工实施。

目标

补齐采集结果与采购结果同等级的本地持久化和幂等重传,避免采集完成后因网络错误丢失结构化结果。

做什么

  • 采集结果/失败与 Outbox 在本地同一事务写入。
  • 保存 taskId、deviceId、requestId、结果状态和结构化结果;不保存控件树、截图或凭据。
  • 网络恢复和进程重启后以同一 requestId 重传;服务端幂等接受相同内容,拒绝不同内容覆盖终态。
  • Outbox 未提交时设备保持忙碌事实,不领取冲突任务。
  • 状态页与采集详情显示“待提交/提交失败/已提交”。

不做什么

  • 不保存原始页面证据、完整规则、地址或 PDD 账号信息。
  • 不自动重置、重新采集或改变服务端终态语义。

验收

  • 完成后断网、杀进程、重启均能恢复同一结果提交。
  • 重复上传不产生重复业务结果。
  • Outbox 未清空时不违反单设备串行。
  • SQLite 升级、Android 单元测试、API 幂等测试、APK 构建和断网真机验证通过。

文档影响

更新 Agent API 契约、本地持久化、断网恢复和数据最小化说明。

## 所属与门禁 - 父 MVP:#86 - 依赖:#87 原型审核;可在共享本地持久化设计确认后与 #90 分工实施。 ## 目标 补齐采集结果与采购结果同等级的本地持久化和幂等重传,避免采集完成后因网络错误丢失结构化结果。 ## 做什么 - 采集结果/失败与 Outbox 在本地同一事务写入。 - 保存 taskId、deviceId、requestId、结果状态和结构化结果;不保存控件树、截图或凭据。 - 网络恢复和进程重启后以同一 requestId 重传;服务端幂等接受相同内容,拒绝不同内容覆盖终态。 - Outbox 未提交时设备保持忙碌事实,不领取冲突任务。 - 状态页与采集详情显示“待提交/提交失败/已提交”。 ## 不做什么 - 不保存原始页面证据、完整规则、地址或 PDD 账号信息。 - 不自动重置、重新采集或改变服务端终态语义。 ## 验收 - [ ] 完成后断网、杀进程、重启均能恢复同一结果提交。 - [ ] 重复上传不产生重复业务结果。 - [ ] Outbox 未清空时不违反单设备串行。 - [ ] SQLite 升级、Android 单元测试、API 幂等测试、APK 构建和断网真机验证通过。 ## 文档影响 更新 Agent API 契约、本地持久化、断网恢复和数据最小化说明。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#92