diff --git a/docs/tasks/T-303.md b/docs/tasks/T-303.md index ebe5da6..8e071c2 100644 --- a/docs/tasks/T-303.md +++ b/docs/tasks/T-303.md @@ -3,10 +3,10 @@ id: T-303 title: 客户端 HTTP 任务源、证据 sink 与可恢复本地状态 phase: 3 deps: [T-002, T-204, T-302] -status: TODO +status: DOING created: 2026-08-04 vikunja_task_id: 36 -context_ref: bd4c855 +context_ref: 3a0a41d work_branch: task/t-303-http-localstate needs_device: false needs_human_review: false @@ -28,7 +28,7 @@ write_paths: - docs/06-tasks.md --- - + ## 问题 / 背景 T-302 完成后,采购工具需要真实、安全、可恢复地领取/续租任务;T-204 已提供受控截图上传接口。但 client 当前只有真机能力和最小窗口,没有 HTTP 抽象、设备凭据存储或断网/重启幂等状态。T-303 建立 `HttpTaskSource`、窄 `HttpEvidenceSink` 与 Windows 本地恢复底座;事件/fail/fence/result 尚分别依赖 T-205/T-208,本任务不伪造完整 `HttpResultSink` 或占位请求。 @@ -74,6 +74,10 @@ T-302 完成后,采购工具需要真实、安全、可恢复地领取/续租 ### 2026-08-04T13:41:49Z · ila 2026-08-04 T-306 预研反向收紧 T-303:localstate 必须按 (attempt_id, evidence_kind) 暴露唯一原子上传槽。首次 HTTP 前保存 upload_key、完整元数据、文件 identity/hash;结果不明只能恢复同一槽;成功后持久保留 AssetRef,重复调用返回原结果,不能清 pending 后生成新 key 或上传第二张。T-306 不得另建 SQLite。 + +### 2026-08-04T15:25:33Z · ila + +2026-08-04 开始 T-303:基于 main@3a0a41d,在独立 worktree 实现客户端 HTTP 任务源、证据 sink 与可恢复本地状态;严格限制为 localhost 服务端契约,不触碰真机、页面操作、提交订单或付款能力。 ## 边界