保存标注前预检陈旧id
- dirty 标注保存前拉取后端标注 id 列表,已缺失的本地旧 annotationId 直接重新创建 - 保留 PATCH 404 兜底,覆盖预检后并发删除的情况 - 扩充分割工作区测试,区分预检缺失和 PATCH 后缺失两条路径 - 同步更新接口契约、需求冻结、设计冻结、测试计划和 AGENTS 说明
This commit is contained in:
@@ -148,7 +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 中断传播。
|
||||
- 如果 dirty mask 携带的本地旧 `annotationId` 在后端已经不存在,前端保存链路必须先用当前后端标注列表做存在性预检,已知缺失的 id 直接用同一几何和 metadata 重新 `POST` 创建标注;如果预检后发生并发删除导致 `PATCH` 返回 404,也必须降级为重新创建,并重新拉取后端标注替换本地旧 id;点击“开始传播”前的参考帧保存也必须复用该容错逻辑,不能因陈旧 id 中断传播。
|
||||
- 保存成功后,前端会重新拉取后端标注,并用后端 saved annotation 替换本次提交的 draft mask;未提交的其他 draft mask 仍保留。
|
||||
- 工作区“清空遮罩”可从画布右下角或左侧工具栏触发;它会删除当前帧已保存标注、清空当前帧未保存 mask,并同步清空这些 mask 同传播链上的自动传播结果,但不能删除其它帧独立 AI 推理或人工标注 mask。
|
||||
- 工作区加载项目帧后会查询已保存标注并回显。
|
||||
|
||||
Reference in New Issue
Block a user