feat(canvas): 画布工作区 - 整合侧栏与风格预设并修复提示词回填

选择性整合 #547,保留主分支节点与工具条设计。新增默认折叠的节点、资产、任务和历史面板,风格与预设保留在节点内,移除重复入口。

补齐工具权限、提示词解析、资源引用保护及数据库迁移,修复提示词清空和连续编辑后的生成配置同步。

验证:前端全量 1925 项测试、构建、类型检查及 lint 通过;后端 go test ./... 通过。真实模型、PostgreSQL 实库与登录态页面验收仍待进行。

Refs #547

Co-authored-by: bensharp <bensharp@qq.com>
This commit is contained in:
ddCat
2026-09-20 16:40:08 +08:00
parent 0ea9f7d94b
commit 9148ceab66
66 changed files with 6127 additions and 97 deletions

View File

@@ -2467,3 +2467,33 @@ SSE 现在按 revision 变化发送紧凑快照,无变化只 heartbeat;客
- [ ] 打开用户资料菜单,确认管理员后台(管理员账号)、设置、退出登录仍可用;退出失败时不静默成功。
- [ ] 390px 窄屏检查侧栏抽屉、资料菜单、顶栏积分入口和首页 Composer 无横向溢出。
- [ ] 真实登录态检查 `/`、`/tasks`、`/wallet` 关键路由及登录过期跳转。
## PR #547 本地选择性整合验收
以主分支 UI 为准移植功能,不整包合并 PR 页面。尚需真实浏览器和真实模型验收:
- 左侧常驻主页、节点、资产、任务、历史菜单,已移除工具菜单,工作区面板默认折叠;菜单采用小字细线图标、加大纵向间距,展开/收起按钮置底。验证点击分类展开、再次点击收起、短窗口滚动、键盘焦点和明暗主题;与原有项目章节栏互斥,小屏抽屉、专注模式、历史版本预览无误,不能通过历史预览编辑当前画布。
- 节点边框、主题和提示词面板原尺寸不变;图片节点直接展示风格 / 预设,移除提示词模板入口(包含放大编辑器和斜杠触发),其他节点模板入口保留;明暗主题、窄屏、浮层滚轮、键盘和点击外部关闭。
- 风格选取/替换/清除、保存重载;节点风格优先于项目画风,清除后恢复继承。运镜可多个但不能重复;特效没有内置预设,可创建自定义工具。
- 九宫格从已有图片创建独立子节点和引用连线,原图不变,不自动扣费或生成;用户明确点击生成后确认模型收到展开的提示词。
- 节点内工具选取、收藏幂等、跨账号隔离、搜索分页、请求失败提示;自定义删除验证 API 权限。公开工具预览暂不接受私人上传资源;相对路径种子预览不显示,不在启动时下载。
- 资产面板直接展示分类、名称/标签搜索、媒体类型、刷新及分页;使用现有素材服务与插入合同。验证文本、图片、视频、音频插入,entity/model 不应出现虚假的插入成功;管理素材 / 项目素材仍打开原有入口。
- 任务列表明确展示最近 30 条,不是完整历史;进行中过滤普通生成任务,历史包含 Agent;刷新、取消、切换项目/账号后不串数据。
- 工具被删除、停用、不可见、类型错误或标签损坏时,生成必须报错,不能静默忽略;排队后删除工具也应失败。
- 使用备份的本地测试数据库验证 schema 29 → 31 和第二次启动幂等;PostgreSQL 序列、迁移工具实库验证待补。不要用生产数据库直接试。
自动检查不能替代以上真实页面/生成验收;本次不自动启动服务,不调用付费模型。左侧菜单补齐后尝试访问已有本地服务,内置浏览器停在登录页,未代填凭据,登录态视觉验收仍待进行。
本地自动验证记录:前端 8 个专项测试文件共 59 项通过,生产构建通过(仍有大分块提示);后端 tools、database、repository、迁移命令、handler 测试及工具权限、项目封面引用专项通过。初次后端全量测试未全绿:项目封面测试夹具缺少 tools 表,补齐后专项通过;资源删除 cancelled_output 用例出现 SQLite 锁表,单独复跑通过。修复后未重跑整套后端测试,不将其记录为全量通过。PostgreSQL 实库、真实浏览器和模型调用仍待验收。
侧栏补齐复测:前端生产构建通过,9 个专项文件共 63 项通过(含 4 项侧栏结构守护测试);源码守护不代表浏览器视觉验收通过。
侧栏配色对齐:左侧菜单直接复用画布工具条的 `canvasDockStyle` 和画布主题,统一背景、图标文字、悬停和选中态,保留默认折叠与纵向间距。侧栏与主题隔离专项共 10 项通过,生产构建通过(仍有大分块提示);明暗主题下与工具条的实际视觉一致性仍待登录态页面验收。
移除画布底部独立的「素材 + 数量」悬浮入口,保留左侧资产面板及原有缩放控件;待确认刷新后不再显示该按钮,左侧资产浏览与插入正常。
提示词模板清空回填修复:统一提示词写入器显式同步 `generationSpec.prompt`,避免旧合同覆盖清空或连续编辑后的草稿;已有媒体的原始生成提示词保持不变。新增回归测试先复现失败,修复后提示词、引用、生成引用及工具整合 4 个文件共 48 项通过,TypeScript 类型检查通过。待真实页面确认:图片节点选择模板 → 清空 → 点击画布取消聚焦 → 重新选择节点仍为空;再次修改及保存重载后内容正确。
入口精简与工具草稿复测:移除左侧工具菜单及图片节点提示词模板入口,保留图片风格 / 预设和其他节点模板入口。工具引用列表读取草稿改用空值判断,明确清空时不再从原始生成提示词回读旧标签。风格和预设的选择、替换、连续编辑、标签移除、全文清空及保存重载覆盖有图/空节点两种情况;5 个专项文件共 58 项通过,TypeScript 类型检查通过。实际页面仍需确认普通/放大编辑器均无图片提示词模板入口,以及风格和预设清空后重新聚焦不回填。
主分支提交前复测:前端 `bun run test` 全量 1925 项通过,生产构建、类型检查、UI 退场 lint 通过;构建仍有大分块提示。同步了技能/工具标签结构与多行连接菜单的源码守护断言。后端 `go test ./...` 全量通过,工具、迁移、资源引用、handler 及工具预览权限/项目封面专项通过。本轮未执行真实模型调用、PostgreSQL 实库迁移或登录态浏览器验收,这些项目继续保留待验收。