feat(*): 创作配置 - 支持 Midjourney、多图保存与自定义公告
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
This commit is contained in:
@@ -46,6 +46,8 @@ description: 云端画布 Agent 的行为策略、上下文来源、运行提醒
|
||||
|
||||
自动回归覆盖新目标继承、插话保留、否定参考需求、消息来源、计划取消、有界催办、恢复事件及 OpenAI Chat/Responses、Claude、Gemini 协议转换。测试使用临时 SQLite 和模拟模型结果,不证明真实模型的创作质量或指令遵循率。
|
||||
|
||||
当前系统策略版本为 6、编译器为 `cloud-agent-policy-compiler/v4`。不涉及数据库表结构或 HTTP API 变更。既有冻结合同校验仍生效:旧版本正在执行或等待审批的运行不能由新版服务继续执行;终态历史仍可读取,新消息建立使用新合同的运行。发布前应处理在途运行;回滚同样受版本校验限制,不应改写历史快照来强行恢复。
|
||||
当前系统策略版本为 13、编译器为 `cloud-agent-policy-compiler/v5`。助手身份由服务端从外观配置读取 `canvas.agentName`,通过执行上下文的 `agentIdentity.name` 提供;字段只表示名称,不能更改行为规则或工具权限。每个新回合重新读取配置,已完成对话的后续回合使用最新名称;身份变化改变规范系统提示及对应缓存键,不覆盖历史消息或冻结快照。
|
||||
|
||||
不涉及数据库表结构或 HTTP API 变更。既有冻结合同校验仍生效:旧版本正在执行或等待审批的运行不能由新版服务继续执行;终态历史仍可读取,新消息建立使用新合同的运行。发布前应处理在途运行;回滚同样受版本校验限制,不应改写历史快照来强行恢复。
|
||||
|
||||
本轮治理覆盖对话主链路。批量创作表的业务默认词、个人记忆压缩专用提示词属于独立生成入口,尚未迁移到版本化资源;后续应分别明确空提示词语义和结构化输出合同,并建立真实模型场景评估,不能把本轮回归称为全仓提示词治理完成。
|
||||
|
||||
@@ -5,6 +5,10 @@ description: 影策后端核心持久化表与状态边界
|
||||
|
||||
# 后端数据库
|
||||
|
||||
## 更新公告配置
|
||||
|
||||
外观 JSON 合同版本 10 新增 `updates`:`enabled`、`currentVersion`、`releases`。每个版本保存 `id/version/title/date/blocks`,内容块保存 `id/type/text/resourceId/caption/layout`;公共媒体 URL 由服务端按当前引用生成,不保存客户端 URL。关闭开关保留公告和资源引用,只关闭公共展示。不增加数据库表或 schema 迁移。
|
||||
|
||||
## 画布 Agent 外观配置
|
||||
|
||||
`system_settings` 的 `appearance` JSON 合同版本 9 新增 `canvas`:助手名称、入口标签、面板标题、欢迎文案、输入提示、`avatarType`(`orb|live2d`)、`avatarHeight`(120–360)、`live2dResourceId` 和服务端确认的 `live2dEntry`。独立于站点品牌;缺失时读取内置画布默认值。不新增数据库结构迁移,不改变全局 schema 版本。
|
||||
|
||||
@@ -7,7 +7,9 @@ description: 助手名称、文案、模型导入和运行库部署
|
||||
|
||||
管理员在「站点及外观 → 画布配置」设置助手名称、入口文字、面板标题、欢迎标题、欢迎说明和输入提示。助手名称独立于站点品牌,例如站点为“影策”、助手为“小鱼”。文案中的 `{agentName}` 会替换为助手名称,并作为普通文本渲染。
|
||||
|
||||
这些字段只改变展示,不改历史对话、模型提示词、AI 自我介绍、技能或工具权限。运行中插话提示保留原有操作说明。入口文字和欢迎说明允许留空。
|
||||
助手名称同时用于界面文案和 AI 自我介绍。服务端在每个新回合从同一份外观配置读取名称,将其作为 JSON 名称数据加入内置身份规则;站点品牌、模型供应商、个人设定和历史回复中的旧名称不覆盖它,也不将名称解释为行为指令。
|
||||
|
||||
保存后当前页面立即更新,其他已打开页面在重新获得焦点、切回前台或刷新时读取最新配置;刷新失败保留已有名称。新对话和已有对话的后续回合使用新名称,正在执行的回合保留创建时的身份快照,历史消息不重写。其他文案字段仍只改变展示,技能和工具权限不变。运行中插话提示保留原有操作说明。入口文字和欢迎说明允许留空。
|
||||
|
||||
## 模型来源与授权
|
||||
|
||||
|
||||
@@ -5,6 +5,12 @@ description: 从产品功能快速定位主要代码入口
|
||||
|
||||
# 代码功能地图
|
||||
|
||||
## 自定义更新公告
|
||||
|
||||
- 后台编辑:`web/src/pages/admin/settings/components/update-announcement-editor.tsx`;版本、排序与草稿校验:`web/src/lib/update-announcement.ts`。
|
||||
- 统一入口与弹窗:`web/src/components/layout/app-changelog-modal.tsx`、`app-changelog-dialog.tsx`;图文视频展示:`update-announcement-content.tsx`。
|
||||
- 服务端持久化、校验、公开投影及媒体访问:`backend/internal/app/appearance_updates.go` 与 `appearance.go`;HTTP 边界:`backend/internal/handler/appearance.go`。
|
||||
|
||||
## 画布 Agent 配置与 Live2D
|
||||
|
||||
- 后台入口:`web/src/pages/admin/settings/appearance-settings-page.tsx` 与 `components/canvas-appearance-editor.tsx`。
|
||||
@@ -84,6 +90,8 @@ description: 从产品功能快速定位主要代码入口
|
||||
|
||||
## 后端调用链
|
||||
|
||||
AutoDL 画面规格由 `app/model_capability_screen_spec.go` 读取官方插件工作流合同,校验所选分辨率及默认值;`task_creation.go` 在价格选择之前归一化,任务校验与 `provider_video.go` 再次使用同一规则。前端 `lib/video-screen-specs.ts` 管理插件预设、所选规格与工作流切换,`ModelCapabilityEditor` 复用到系统及自定义渠道;无开关或独立草稿。
|
||||
|
||||
```text
|
||||
HTTP 请求 -> handler -> service(稳定导入面 / 别名)-> app(组合根)-> 业务域包 -> repository/model
|
||||
|
|
||||
|
||||
@@ -5,6 +5,12 @@ description: 信封、错误码与 OpenAPI
|
||||
|
||||
# HTTP API 合同
|
||||
|
||||
## AutoDL 视频画面规格配置
|
||||
|
||||
渠道模型的 `capabilityConfig.video.resolutions` 与 `defaultResolution` 直接表示所选完整分辨率与默认值,始终生效;不再使用或返回 `customSizeEnabled`、`customScreenSpec`。AutoDL v2.3.0 未声明独立比例参数,因此 `ratios` 为空、`defaultRatio` 为空字符串,横竖与方形由完整分辨率标签表达。
|
||||
|
||||
服务端返回 `fixedScreenSpec` 供前端展示插件预设;写入时重新读取官方插件的当前工作流规格,不信任客户端传入的固定值。所选列表必须非空且属于插件预设,默认值必须属于所选列表;大小写归一化为插件原始标签。任务创建在价格选择前清空无效的 `size`、归一化 `vquality`;自动选择使用配置的默认值,不支持的显式选择被拒绝。价格档可保留全部插件预设,但任务和模型目录只采用所选列表。数据库继续使用现有能力 JSON 字段,无新增表或迁移。
|
||||
|
||||
路径前缀是 `/api`。前后端一起发布,不按 `/api/v1`、`/api/v2` 做路径版本。不兼容变更随版本一起改接口和调用方。
|
||||
|
||||
机器可读规范:运行中的 `GET /api/openapi.yaml`,源文件 `backend/internal/handler/openapi.yaml`。前端 TypeScript 仍走 `web/src/services/api` 的 `http`,不从 OpenAPI 生成客户端。
|
||||
@@ -81,9 +87,11 @@ CANVAS_BACKEND_DATA_DIR=/明确的数据目录 ./migrate-schema repair-canvas-re
|
||||
`PATCH /admin/settings/registration` 的两个协议字段为可选指针语义:不提交表示保留已保存内容,提交空串表示明确清空。注册开关与协议正文可以分开保存,单独切换 `enabled` 不会覆盖协议。当前只校验本次注册的同意标志,不保存长期协议版本或签署凭证。前后端需一起更新,旧客户端缺少同意标志时无法注册。
|
||||
## 站点皮肤主按钮
|
||||
|
||||
### 画布配置与 Live2D(外观合同版本 9)
|
||||
### 画布配置、更新公告与 Live2D(外观合同版本 10)
|
||||
|
||||
`GET /public/appearance` 和管理员 `GET /admin/settings/appearance` 返回 `canvas`;管理员通过 `PATCH /admin/settings/appearance` 随外观配置统一保存。字段为 `agentName`(1–24 字)、`launcherLabel`(0–24 字)、`panelTitle`(1–40 字)、`welcomeTitle`(1–100 字)、`welcomeDescription`(0–200 字)、`inputPlaceholder`(1–160 字)、`avatarType`(`orb|live2d`)、`avatarHeight`(120–360 整数)、`live2dResourceId`、`live2dEntry`。入口由服务端核验覆盖;Live2D 无有效资源时拒绝启用。配置不修改 Agent 系统提示词。
|
||||
外观设置新增 `updates: { enabled, currentVersion, releases }`,由管理员通过 `PATCH /admin/settings/appearance` 保存;关闭开关保留草稿,但 `GET /public/appearance` 返回关闭状态与空公告列表,前端恢复内置更新日志。开启时公开版本与内容块,当前版本须对应公告版本。媒体上传、管理员预览、公开引用读取及限制详见 [自定义更新公告](/docs/backend/update-announcements)。JSON 请求上限为 512KB;无数据表迁移。
|
||||
|
||||
`GET /public/appearance` 和管理员 `GET /admin/settings/appearance` 返回 `canvas`;管理员通过 `PATCH /admin/settings/appearance` 随外观配置统一保存。字段为 `agentName`(1–24 字)、`launcherLabel`(0–24 字)、`panelTitle`(1–40 字)、`welcomeTitle`(1–100 字)、`welcomeDescription`(0–200 字)、`inputPlaceholder`(1–160 字)、`avatarType`(`orb|live2d`)、`avatarHeight`(120–360 整数)、`live2dResourceId`、`live2dEntry`。入口由服务端核验覆盖;Live2D 无有效资源时拒绝启用。名称以数据形式投影到每轮 Agent 执行上下文,不提供自由系统提示词配置,也不改变工具权限。
|
||||
|
||||
- `POST /admin/settings/appearance/live2d`:管理员 multipart `file` 上传,受上传频率和配额限制。成功信封的 `data.model` 为 `{ resourceId, entry }`,上传不会发布。ZIP 限 128 MiB、256 条目、解压合计 384 MiB、单文件 128 MiB;只接收 model3/MOC3/PNG/JSON,拒绝路径穿越、脚本和外部资源。
|
||||
- `GET /admin/settings/appearance/live2d/:id/*file`:管理员预览,校验资源归属;其他管理员仅能查看当前外观已引用模型。
|
||||
|
||||
18
docs/content/docs/backend/update-announcements.mdx
Normal file
18
docs/content/docs/backend/update-announcements.mdx
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: 自定义更新公告
|
||||
description: 站点更新公告的编辑、开关、媒体与同步
|
||||
---
|
||||
|
||||
# 自定义更新公告
|
||||
|
||||
在「站点及外观 → 更新公告」编辑公告,点击页面顶部「保存修改」统一保存。开关默认关闭,此时工作台与管理后台入口展示原有内置更新日志及真实构建版本;开启后,两处入口和公告弹窗采用自定义当前版本与公告内容。后台「系统更新」继续使用真实程序版本和官方 Release。
|
||||
|
||||
支持最多 30 个版本;每个版本有版本号、可选标题与发布日期,以及最多 50 个可排序的文字、图片、视频内容块。文字支持换行、列表和 Markdown 加粗,原始 HTML 不执行。内容块可选择整行或半行,相邻半行并排,窄屏自动单列。编辑区域提供即时预览,视频手动播放。
|
||||
|
||||
图片支持 PNG、JPEG、WebP,最大 10MB;视频支持 MP4、WebM,最大 256MB。媒体使用现有平台资源存储,管理员身份、文件真实 MIME 和新资源归属均由服务端校验。未保存媒体只能由上传管理员预览;已保存媒体可由其他管理员预览;公开读取仅允许当前已启用公告引用的媒体,支持视频 Range 请求。关闭开关保留全部自定义内容及素材引用保护,公共外观响应不返回关闭的公告正文。
|
||||
|
||||
当前版本必须对应已添加的版本,版本号不能重复,空文字或未上传媒体不能提交;正文总大小最多 200KB,外观 PATCH 请求上限 512KB。保存成功后同步本页公共状态,其他页面在激活、聚焦或打开更新日志时重新读取;读取失败保留已有状态,过期响应不能覆盖较新的保存结果。
|
||||
|
||||
配置保存在现有 `system_settings` 的 `appearance` JSON 的 `updates` 中,外观合同版本为 10;不增加数据表或数据库迁移。恢复默认外观会清空自定义公告并关闭开关,恢复原日志,已上传媒体仍保留在存储资源中。
|
||||
|
||||
媒体接口:`POST /admin/settings/appearance/assets/update-image|update-video`;管理员预览 `GET /admin/settings/appearance/updates/:id`;公开读取 `GET /public/appearance/updates/:id`。公开媒体不接受任意外部 URL,只从当前公告引用的资源生成访问地址。
|
||||
@@ -5,13 +5,41 @@ description: 当前项目已实现的核心工作台能力与使用入口
|
||||
|
||||
# 功能清单
|
||||
|
||||
## 卡藏 Midjourney
|
||||
|
||||
画布接收一次任务返回的全部图片,四张结果自动组成收起的图片堆叠,可展开、选择主图和分别使用。每张图保留独立资源及素材绑定,保存、刷新和任务重复同步不会将后续图片覆盖为第一张。已有仅显示首图的成功 Midjourney 节点在重新打开画布时从原任务恢复遗漏结果,无需再次生成。
|
||||
|
||||
`kacang-midjourney` 统一声明式插件提供 V6/V8 特惠、V7 特惠、稳定/高速三个生图协议。选择协议后自动填入供应商比例、默认比例、参考图上限和一次提交;禁用无合同的蒙版和通用输出参数。稳定版数值 quality 通过插件命名空间设置,不与宿主分辨率档混用。
|
||||
|
||||
特惠使用标准图片端点,稳定/高速使用受理和任务查询端点。结果支持顶层与 data 信封,全部单图及可选四宫格封面交给宿主立即保存;失败和空结果保留真实失败语义。完整模型和字段合同见插件包内 `docs/interface.md`。
|
||||
|
||||
## 沧元 Midjourney
|
||||
|
||||
`cangyuan-midjourney` 声明式插件分别提供 V7 与 1K/2K(供应商默认 V8.2)协议。V7 使用 `midjourney-v7`;1K/2K 使用 `midjourney-1k`、`midjourney-2k`,可在提示词显式写 `--v 8.2`。一次提交固定 `n=1`,全部结果交由宿主下载保存,参考图按供应商合同发送 HTTPS URL 字符串。
|
||||
|
||||
两条线路的参数、编辑端点和响应格式分别适配,不自动换模型。1K/2K 返回官网 CDN 原链,HTTP 403 会如实保留保存失败与原任务重试能力;插件不能消除供应商 CDN 的访问限制。完整字段与接口合同见插件包内 README 和 `docs/interface.md`。
|
||||
|
||||
创作页按整个任务一次消费返回图片,保留各图片的输出序号;一次请求返回多张时,素材与消息幂等去重不会再把后续结果当作第一张合并。
|
||||
|
||||
后台选择这两个协议时,“能力与参数”自动使用线路专属默认值:V7 为 4000 字符、五张参考图、不支持蒙版;V8.2 默认单张编辑源图、支持蒙版和十五种比例。两者默认自动尺寸、一次提交,关闭不支持的质量、透明背景、响应格式和输出格式选项。V8.2 在模型名未明确时暂用 1K,识别到上游 `midjourney-2k` 后改为 2K,切换档位保留管理员的参考限制、默认比例和价格。像素预设由宿主换算供页面展示,提交上游仍使用比例,实际尺寸由供应商决定。
|
||||
|
||||
## 自定义更新公告
|
||||
|
||||
「站点及外观 → 更新公告」提供开关、当前版本、多版本文字/图片/视频编辑、内容排序、整行/半行布局与即时预览。关闭展示原日志,开启展示自定义内容,保存后同步工作台和后台入口;后台系统更新保留真实构建版本。详见 [自定义更新公告](/docs/backend/update-announcements)。
|
||||
|
||||
## AutoDL 画面规格
|
||||
|
||||
AutoDL 视频模型在“能力与参数 → 画面规格”直接多选当前插件工作流声明的完整分辨率,并设置默认值;配置始终可编辑并生效。卡片沿用原有标题、副标题与字段样式,不再显示自定义开关或额外说明。AutoDL ComfyUI 视频与音频 v2.3.0 通过完整分辨率标签控制横、竖、方形,不显示未声明的独立比例控件。时长、音频与参考素材配置继续各自生效。
|
||||
|
||||
后台保存、用户模型目录、画布参数归一化、计费规格选择、服务端校验及插件请求使用同一套所选规格。仅允许选择插件预设,不能输入新标签;至少选一项,默认值必须属于所选列表。价格档可保留全部插件预设的价格,但不会扩大实际允许生成的分辨率范围。
|
||||
|
||||
## 画布媒体产出模型
|
||||
|
||||
图片、视频、音频在生成成功并写入节点后,会冻结当时提交的产出模型。提示词面板里的模型下拉仍是下一次要用的选用模型,改下拉不会改掉已经生成的内容。画布外观中的「媒体信息」打开后,有内容的媒体节点在左下角显示产出模型;图片右下角继续显示尺寸和体积。上传、粘贴、截取、合并、提取音频和本地加工不记录产出模型。本次改动之前的节点不回填。分享页和版本预览画布不显示这块信息。
|
||||
|
||||
## 画布 Agent 名称、文案与形象
|
||||
|
||||
「站点及外观 → 画布配置」提供独立助手名称、入口文字、面板标题和欢迎/输入文案。支持导入授权的 Live2D Cubism 3/4 运行时 ZIP,预览后保存启用、调整高度、切回默认动态球。加载失败保留可点击的默认入口,上传和资源访问具有管理员校验和引用保护。Cubism Core 由部署者提供,真实播放待验收;不含图片自动建模或 AI 自我介绍同步。详见 [画布 Agent 外观与 Live2D](/docs/backend/canvas-agent-appearance)。
|
||||
「站点及外观 → 画布配置」提供独立助手名称、入口文字、面板标题和欢迎/输入文案。助手名称同步用于界面和后续对话的自我介绍;名称只是数据,不改变工具权限,历史消息保留原文。支持导入授权的 Live2D Cubism 3/4 运行时 ZIP,预览后保存启用、调整高度、切回默认动态球。加载失败保留可点击的默认入口,上传和资源访问具有管理员校验和引用保护。Cubism Core 由部署者提供,真实播放待验收;不含图片自动建模。详见 [画布 Agent 外观与 Live2D](/docs/backend/canvas-agent-appearance)。
|
||||
|
||||
## 素材库分类与画布媒体链路
|
||||
|
||||
|
||||
@@ -13,6 +13,49 @@ description: 当前项目已实现功能的手工验证清单与未确认边界
|
||||
- [x] 已在本地真实登录画布的历史失败对话中核对:同一失败只显示一张错误卡,模型调用失败原因仍可见;展开「诊断信息」可看到诊断号,未触发新的模型生成或写入操作。
|
||||
- [ ] 明暗画布、窄面板与长错误文本的可读性,以及诊断展开、键盘焦点和历史滚动体验。
|
||||
|
||||
## 画布 Midjourney 四图堆叠
|
||||
|
||||
- 已修复:画布按一次任务的真实输出数组保留全部图片,以现有图片批次机制默认堆叠,每张图保留资源和素材绑定;单图仍为单节点。
|
||||
- 已实现:稳定子节点 ID 和整批持久化,任务重放保留用户移动、改名及其他画布内容;成功的旧 Midjourney 首图节点可从原任务补齐。
|
||||
- [ ] 用户验收四图默认堆叠、展开、切换主图、保存和刷新后的完整结果。
|
||||
|
||||
## 卡藏 Midjourney
|
||||
|
||||
- 已实现:三个声明式生图协议、公开模型与参考图限制校验、稳定版参数默认映射、受理和任务查询、顶层/data 信封解析、所有单图及可选四宫格保存。
|
||||
- 已实现:选择协议自动填入默认能力;特惠 16:9、稳定/高速 9:16;参考图分别 1/5 张,固定一次提交,无蒙版或未声明的分辨率参数。
|
||||
- [ ] 用户验收默认参数、真实特惠与稳定版任务、图片保存和刷新后的完整显示。
|
||||
- [ ] 多参考图、Raw/数值画质与风格扩展参数的供应商实测,以及全部版本的真实生成;不以两条文生图验收替代这些边界。
|
||||
|
||||
## 沧元 Midjourney V7 与 V8.2
|
||||
|
||||
- 已实现:独立声明式插件及 V7、1K/2K Provider,固定一次提交、URL 响应、全部结果提取;参考图、编辑、蒙版、速度及模型名按各线路合同校验。
|
||||
- [x] 协议专项与完整 `internal/protocol` 测试通过,覆盖多图响应、查询端点、错误、非法模型与媒体输入,以及包内文档合同一致性。
|
||||
- [x] V7 实际任务完成,四张 1456×816 PNG 均已写入 OSS。一次请求返回多图不增加生成次数;积分价格由部署者配置,不代表供应商费用。
|
||||
- 已修复:创作页按完整任务消费多图结果,保持真实 outputIndex,避免逐图投影为 outputIndex=0 后被素材及消息幂等去重合并。
|
||||
- 已实现:选择 V7/V8.2 协议自动载入专属能力默认值;V8.2 空模型名暂用 1K,上游模型改为 `midjourney-2k` 自动切换预设档位并保留其他参数和价格。
|
||||
- [ ] 用户验收协议选择、1K/2K 档位联动、保存并重新打开的能力参数,以及重新提交后的创作页四图显示。
|
||||
- [ ] 用户验收原提示词的 V7 生成效果、全部图片显示和刷新后的保存结果。
|
||||
- [ ] 1K/2K 实际生成与保存:官网 CDN HTTP 403 已确认,需供应商提供可下载地址或解决访问限制后验证;协议测试不替代该线路实际保存验收。
|
||||
- [ ] 参考图、蒙版、style/moodboard 及 fast 档的上游执行验收;专项测试仅验证请求合同。
|
||||
|
||||
## 自定义更新公告
|
||||
|
||||
- 已实现:站点及外观新增更新公告页签,开关控制原日志/自定义公告;多版本文字、图片和视频可排序并选择整行/半行布局,保存同步公共外观状态。
|
||||
- [ ] 用户验收实际发布内容、版本排序、图片比例和视频播放效果;关闭并重新启用确认保存的自定义内容仍保留。
|
||||
|
||||
## 画布助手身份与名称同步
|
||||
|
||||
- 已实现:后台助手名称与内置身份共用外观配置,新对话及已有对话的后续回合采用最新名称;历史消息和运行快照保留,工具权限不变。
|
||||
- 专项覆盖:保存名称进入规范提示词、续聊改名、品牌独立、名称 JSON 编码、缓存键变化、历史保留、配置读取失败及前端刷新失败保留旧值。
|
||||
- [ ] 用户验收在「站点及外观 → 画布配置」改名保存,切回画布后新开或继续对话询问身份,与界面名称一致。
|
||||
|
||||
## AutoDL 画面规格简化
|
||||
|
||||
- 已实现:去除画面规格开关与额外说明,保留原标题、副标题和字段样式;完整分辨率多选与默认值始终可编辑、生效,仅允许当前插件工作流预设,删除旧草稿和开关分支。
|
||||
- 专项覆盖:所选列表与默认值保存恢复、画布过期选择、真实组件渲染;后端插件预设校验、保存与目录、价格范围、任务校验和声明式请求传参。
|
||||
- [ ] 用户验收真实页面多选增删、默认值联动、保存与重新打开,确认仅显示六种插件预设及所选值生效。
|
||||
- [ ] 用户验收实际 AutoDL GPU 生成,确认选定完整标签对应横、竖和方形输出;专项测试不替代付费上游执行。
|
||||
|
||||
## 素材彻底删除恢复不拦截、CI 提速与大文件拆分
|
||||
|
||||
- 已恢复:`DELETE /assets/:id`、批量删除、清空回收站、回收站素材删除与过期自动清理不再被画布、任务、项目或画布历史快照引用拦截(9 月 21 日 dc1ad680 的契约,9 月 24 日 5b382726 曾误收紧)。事务移除对应历史资源索引,物理对象经 Outbox 异步删除;其他素材复用的资源继续保留。与 `http-api.mdx`、`openapi.yaml` 及删除确认弹窗文案一致。
|
||||
|
||||
Reference in New Issue
Block a user