fix(canvas): 模型生成 - 保留安全的上游失败原因并展示到用户卡片

This commit is contained in:
ddCat
2026-09-22 10:48:25 +08:00
parent d67df01dd5
commit f0fa6c163e
8 changed files with 186 additions and 21 deletions

View File

@@ -11,6 +11,8 @@ description: 信封、错误码与 OpenAPI
出站模型服务域名解析失败返回 HTTP / `code: 502`、`reason: upstream_dns_failed`,不归类为用户参数错误。公开消息不包含上游域名、DNS 服务器或请求 URL;原始解析错误仅保留在内部错误链。此分类不会自动重试、切换渠道或放宽 SSRF 校验;上下文取消仍按取消处理。
模型 HTTP 失败及经过 Provider 错误转换的业务失败,在通用提示后追加经过过滤的 `;上游:具体原因`,供任务错误和画布卡片展示内容安全、提示词、尺寸等可操作信息。只读取上游 `error` / `message` / `msg` / `detail` 消息字段,不回传整个 JSON;消息中的 HTTP(S) URL 隐藏,包含余额、账务、凭据、请求诊断或 HTML 的消息不追加原文,保留通用分类提示。后台响应拦截规则仍对最终用户文案生效;不会修改历史任务错误或改变重试、退款策略。
## 素材彻底删除
`DELETE /assets/:id` 表示用户确认后的彻底删除,不依赖服务端当前记录是否已经同步为 `archived`。接口仍校验登录用户和素材归属,但不会因画布、任务、项目或历史快照仍有引用而拒绝;事务会删除素材及对应历史资源索引,并通过删除 Outbox 清理未被其他素材复用的物理对象。其他素材共享的同一物理对象继续保留。移入回收站仍通过素材写入接口把状态更新为 `archived`,不能用 DELETE 代替可恢复归档。

View File

@@ -5,6 +5,12 @@ description: 当前项目已实现功能的手工验证清单与未确认边界
# 待测试
## 模型失败原因在画布卡片展示
- [x] 后端 Provider、错误分类和请求日志专项回归通过;本地模拟上游验证 HTTP 400 与 HTTP 200 业务失败均保留安全原因,覆盖图片响应和通用 JSON 响应。前端 4 项专项测试通过,覆盖具体原因、HTTP 状态提示、审核元数据及 URL 隐藏。
- [ ] 使用内容安全拒绝、参数错误、业务失败和 HTTP 4xx/5xx 的真实模型任务,确认卡片保留上游具体原因;检查长中文消息换行及明暗主题。
- [ ] 确认 URL 被隐藏,余额、密钥、Cookie 和内部诊断不出现在卡片;后台响应拦截规则仍能替换最终消息。历史任务不会自动补回已丢弃的原因。
## 管理后台轻边界与高密度改造(第一轮)
- [x] 公共后台外壳统一浅深色表面、弱化重复外框,保留表格行分隔、输入边界和键盘焦点;导航按监控排查、模型资源、用户运营、平台配置组织。表格默认紧凑模式,支持舒适模式,偏好按账号保存。