docs(ops): register upload parse ux dedup task

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
weichen
2026-09-21 09:10:55 +00:00
co-authored by Cursor
parent 10aee3feb4
commit 31dde45b72
2 changed files with 67 additions and 0 deletions
+1
View File
@@ -14,6 +14,7 @@
| owner | task | branch | worktree | mutex | status |
|-------|------|--------|----------|-------|--------|
| Cursor | 2026-09-21-upload-parse-ux-dedup | feature/upload-parse-ux-2026-09-21 | .worktrees/upload-parse-ux-2026-09-21 | server+web+storage | in_progress |
| Cursor | 2026-09-21-mineru-doc-parsing | feature/mineru-doc-parsing-2026-09-21 | .worktrees/mineru-doc-parsing-2026-09-21 | storage+bizdev+kb | done |
| Cursor | 2026-09-21-intent-confirm-stage-aware | fix/intent-confirm-stage-aware-2026-09-21 | .worktrees/intent-confirm-stage-aware-2026-09-21 | intent+web+docgov | done |
| Cursor | 2026-09-21-taskrun-status-card | feature/taskrun-status-card-2026-09-21 | .worktrees/feature-taskrun-status-card-2026-09-21 | chat+web+taskrun | done |
@@ -0,0 +1,66 @@
---
title: "上传文档解析提示 / 去重 / CoW 收口"
status: in_progress
created: 2026-09-21
updated: 2026-09-21
owner: Cursor
branch: feature/upload-parse-ux-2026-09-21
worktree: .worktrees/upload-parse-ux-2026-09-21
base_dev_sha: 10aee3feb478c550adc9959f2d3a8d17cd5b48a0
write_scope:
- internal/server/
- internal/storage/
- internal/materialindex/
- web/src/
- .doc/ops/
- .doc/audit/
- .doc/test-reports/
head_sha: <准入时冻结>
deployment: pending
cleanup: pending
mutex: server+web+storage
---
# 上传文档解析提示 / 去重 / CoW 收口
## 目标
在已合入 dev 的 MinerU 解析管线(`dev@7f150831`)之上,补齐:解析状态提示闭环(轮询、失败原因、重试)、上传去重提示(暴露 CAS `IsDeduplicated`)、CoW 写时复制契约固化(不可变 blob 守卫测试 + 审计记录)。
## 范围
- `internal/server/asset_handlers.go`:上传响应加 `deduplicated`;列表批量返回 `parse_state`+`parse_error`;新增 `POST .../assets/{id}/reparse`;不支持类型 `skipped` 语义
- `internal/materialindex/pipeline.go`:`GetParseStates` → `GetParseInfo`(含 error_message);`ResetForReparse`
- `web/src/`:`useParseStatePolling` hook、FilePreviewPanel 徽标轮询与重试按钮、附件去重提示、DocsSection 状态列
- 测试:CAS CoW 契约、handler、前端单测
## 非目标
- 不改 MinerU 客户端与解析管线核心逻辑(已验收)
- 不做跨项目逻辑记录合并(物理一份 + 提示方案,逻辑引用保留)
- 不动 test/main 晋升;不改 production_ready
## 步骤
1. [ ] 后端:dedup/parse_error 暴露 + reparse 接口 + skipped 语义
2. [ ] 前端:轮询 hook + 状态徽标 + 去重提示 + 重试按钮
3. [ ] CoW 契约测试 + handler 测试 + 前端测试
4. [ ] 文档:审计记录(CoW 现状)、验收报告
5. [ ] 集成 dev + 部署 + 实测验收
## 验收标准
- [ ] 上传重复文件响应含 deduplicated=true,前端提示复用
- [ ] parse_state 轮询 pending→running→done 自动刷新,无需手动重加载
- [ ] failed 展示错误原因,reparse 后恢复解析
- [ ] CAS 同 sha 重复写入不产生新物理文件的契约测试通过
- [ ] go vet / go test -short / web npm test / 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
## 证据 / 备注
(命令输出、commit、文件路径)