修复陈旧标注保存404

- dirty 标注 PATCH 404 时改用 POST 重新创建,保留几何、分类和传播 lineage metadata

- 保存后回显替换本地旧 annotationId,避免保存改动和开始传播被陈旧 id 中断

- 增加工作区回归测试,覆盖本地旧 annotationId 重新创建流程

- 更新接口契约、需求冻结、设计冻结、测试计划和 AGENTS 说明
This commit is contained in:
2026-05-03 19:26:07 +08:00
parent 4d6bbf2b80
commit 0ba5a8c094
7 changed files with 106 additions and 13 deletions

View File

@@ -148,6 +148,7 @@
- 后端提供 `PATCH /api/ai/annotations/{annotation_id}` 更新已保存标注的 `mask_data``points``bbox``template_id`
- 后端提供 `DELETE /api/ai/annotations/{annotation_id}` 删除已保存标注。
- 当前前端保存状态按钮会保存当前项目未保存 mask并会更新已标记为 dirty 的已保存 mask。
- 如果 dirty mask 携带的本地旧 `annotationId` 在后端已经不存在,前端保存链路必须在 `PATCH` 返回 404 后用同一几何和 metadata 重新 `POST` 创建标注,并重新拉取后端标注替换本地旧 id点击“开始传播”前的参考帧保存也必须复用该容错逻辑不能因陈旧 id 中断传播。
- 保存成功后,前端会重新拉取后端标注,并用后端 saved annotation 替换本次提交的 draft mask未提交的其他 draft mask 仍保留。
- 工作区“清空遮罩”可从画布右下角或左侧工具栏触发;它会删除当前帧已保存标注、清空当前帧未保存 mask并同步清空这些 mask 同传播链上的自动传播结果,但不能删除其它帧独立 AI 推理或人工标注 mask。
- 工作区加载项目帧后会查询已保存标注并回显。