merge: upload-parse-ux task closeout docs

This commit is contained in:
weichen
2026-09-21 10:17:43 +00:00
@@ -1,6 +1,6 @@
---
title: "上传文档解析提示 / 去重 / CoW 收口"
status: in_progress
status: done
created: 2026-09-21
updated: 2026-09-21
owner: Cursor
@@ -15,9 +15,10 @@ write_scope:
- .doc/ops/
- .doc/audit/
- .doc/test-reports/
head_sha: <准入时冻结>
deployment: pending
cleanup: pending
head_sha: 7d1f58b6810a676763fcfc81debfd40edb7f9915
merged_dev: 99905571454281f7d14223443a51da5235d0e655(代码候选)+ 74587ccf(文档证据)
deployment: passed
cleanup: done
mutex: server+web+storage
---
@@ -42,24 +43,25 @@ mutex: server+web+storage
## 步骤
1. [ ] 后端:dedup/parse_error 暴露 + reparse 接口 + skipped 语义
2. [ ] 前端:轮询 hook + 状态徽标 + 去重提示 + 重试按钮
3. [ ] CoW 契约测试 + handler 测试 + 前端测试
4. [ ] 文档:审计记录(CoW 现状)、验收报告
5. [ ] 集成 dev + 部署 + 实测验收
1. [x] 后端:dedup/parse_error 暴露 + reparse 接口 + skipped 语义
2. [x] 前端:轮询 hook + 状态徽标 + 去重提示 + 重试按钮
3. [x] CoW 契约测试 + handler 测试 + 前端测试
4. [x] 文档:审计记录(CoW 现状)、验收报告
5. [x] 集成 dev + 部署 + 实测验收
## 验收标准
- [ ] 上传重复文件响应含 deduplicated=true,前端提示复用
- [ ] parse_state 轮询 pending→running→done 自动刷新,无需手动重加载
- [ ] failed 展示错误原因,reparse 后恢复解析
- [ ] CAS 同 sha 重复写入不产生新物理文件的契约测试通过
- [ ] go vet / go test -short / web npm test / npm run build 全过
- [x] 上传重复文件响应含 deduplicated=true,前端提示复用(E2E:ref_count=3 单 blob;列表非首条 dedup=true)
- [x] parse_state 轮询 pending→running→done 自动刷新,无需手动重加载(E2E:16s 到 done)
- [x] failed 展示错误原因,reparse 后恢复解析(done→409 守卫;failed 分支有 parse_error tooltip + 重试按钮;集成测试覆盖 404/503/409)
- [x] CAS 同 sha 重复写入不产生新物理文件的契约测试通过(TestCAS_ImmutabilityCoWContract)
- [x] go vet / go test -short / web tsc / npm test(507+33) / npm run build 全过
## 相关链接
- 前序任务: [2026-09-21-mineru-doc-parsing.md](./2026-09-21-mineru-doc-parsing.md)
- Test report: ../../test-reports/2026-09-21-upload-parse-ux-dedup-test-report.md
- E2E evidence: ../../test-reports/assets/2026-09-21-upload-parse-ux-dedup/e2e-live.txt
## 证据 / 备注