dlh
|
e46f2ec027
|
fix(canvas): 图片节点 - 尺寸跟随图片真实比例,竖图不再两侧留黑
上传接口返回的 width/height 是可选字段(services/api/resources.ts),拿不到时节点落到
默认的横向比例,竖图被放进一个宽盒子、两侧留大片空白。改为在图片解码后于客户端量真实
尺寸并按比例校正节点 —— 这样不依赖服务端是否返回尺寸。
判据是「用户有没有手动定过尺寸」,**不是**「有没有量过尺寸」。第一版按后者写,结果所有
已经存过 naturalWidth 的既有节点永远得不到修正,改完等于没改。现在由 handleNodeResize
在手动拉伸时打 metadata.manualSize 标记,自动适配只避让它和 freeResize(自由比例是用户
显式要求脱离原始比例,自动校正会跟他打架)。
顺带收益:naturalWidth / naturalHeight 补齐后,canvas-node.tsx 的锁比例拉伸也会按真实
比例走 —— 它本来就在读这两个字段,之前多数节点拿不到。
已知影响:既有节点因为没有 manualSize 标记,首次重新加载时会自动校正一次尺寸。
对被 letterbox 的图是修复,但确实会让画布上现有图片节点的尺寸变动一次。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-22 12:33:10 +08:00 |
|
dlh
|
e07574ee14
|
fix(canvas): 画布连线 - 端点收敛到端口中点并新增流动光影
两件事,都在连线层。
一、多条线接同一个端口时不再沿着边散开。
原因是 use-canvas-connection-controller 把**鼠标松手的 Y 位置**记成了 anchorRatio,
于是每条线各自钉在落点上。判据还是反的:真正多端口的分镜脚本传 undefined,
而左右各只有一个出入口的普通节点却按落点比例取 Y,看起来像节点有很多端口。
改成单端口一侧永远取边的正中。这条规则有**两份实现**(canvas-connections 的
connectionHandleY 与 canvas-project-domain 的 getConnectionTargetAnchor),只改一处
会让实际画出来的线和吸附点对不上,所以两处一起改。同时把 anchorRatio 参数从这两个
几何函数上摘掉,让「不按落点」写在签名里而不是悄悄丢掉一个入参 —— 摘掉之后编译器
点出了 4 处仍在传旧参数的调用,正是这么做的收益。分镜脚本的 row: 句柄不受影响。
二、连线新增光晕与流光两层。
光晕(blur 的宽描边)和流光(一小段高亮沿路径跑)**只在悬停/选中态渲染**:blur 是
filter,成本随线条数量线性上升,常态几十条线全开会明显掉帧。常态仍是原来那条极淡的
虚线,只有指向的那条亮起来,顺带让「当前在看哪条链路」更清楚。
流光周期 2.1s 与虚线流动 1.25s 刻意错拍 —— 同频会锁成一条整体平移的虚线,
看不出有光在走。keyframes 的位移量等于 dasharray 之和(16 + 118 = 134),
否则循环处会跳一帧。
新动画已加入全部三处禁用名单:prefers-reduced-motion、.no-motion,以及
[data-canvas-viewport-interacting](平移缩放期间)。第三处最关键 —— 漏掉的话拖画布时
几十条线还在跑动画,正是错题本里「画布高频重绘导致崩溃」那一类。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-22 12:33:10 +08:00 |
|
dlh
|
90d6c58de9
|
feat(canvas): 扩展节点 - 新增 7 种展示与加工节点并补齐上游读取基建
在已落地的节点注册表上加两层节点:展示层(Markdown / SVG / HTML / 全景)与
接入生成链的加工层(对比 / 图表 / 调色)。全部是第一方内置节点,不引入远程插件
加载,因此不涉及沙箱信任模型,也不需要把 CanvasNodeType 放开成任意字符串。
刻意保留穷尽性检查而不是改成运行时注册。全库只有 4 张按类型建的穷眉表
(NODE_DEFAULT_SIZE / NODE_SPECS / 注册表定义 / nodeContentRenderers),
让编译器强制每个新节点填满它们,比少改几个文件更值 —— 加第一个枚举成员时
编译器点出了 5 处,其中 pages/canvas/shared.tsx 是原先没编目的那一处;
换成运行时注册,那里会静默回落成「未知节点」。
两处前置基建:
- CanvasNodeGraphContext:渲染器只拿到 node、没有 connections,而加工层三个节点
都要读上游。仿已有的 canvas-node-action-context(同一个问题:节点经
CanvasProjectWorldLayers 渲染不便逐个透传),取上游复用
canvas-resource-references 的 getContextResourceNodes,不另写一份。
Provider 值必须 memo —— 每帧新对象会让所有节点跟着重渲染。
- ToolbarHandlers.onAddExtensionNode(type):一个泛用入口,不给每种扩展节点单开
一个 onAddXxx。菜单另开「展示与加工」分区,不挤占上方调好的四列创作网格。
SVG 与 HTML 统一走 sandbox iframe:依赖里没有 DOMPurify,手写 SVG 消毒不可靠
(script / on* / foreignObject)。SandboxedFrame 只暴露 allowScripts 布尔而不是
sandbox 取值,让「同时给 allow-same-origin」这条没有入口。
全景节点三个取舍:点击才激活 WebGL(浏览器对同时存在的上下文有硬上限,画布可以有
任意多个全景节点,自动激活必然在某个数量后整片黑);用原生 three 而非 fiber
(需要精确 dispose,forceContextLoss 才真正释放上下文);性能模式下只给静态预览。
调色是唯一碰生成路径的节点,照 Drawing 的先例:拖滑杆只做本地 CSS filter 预览,
落地成资源要等到生成消费它时才走 uploadResourceFile。预览与导出共用同一个
filter 字符串,两处各写一份就会「看到的和用的悄悄不一致」;未调色时直接透传源图,
省掉一次渲染与上传。ctx.filter 不受支持时明确报错而不是导出一张没调色的图。
resourceKind 与 inputKind 分开两个字段:空图片节点不是素材(不进 @ 引用),
但照样计入 imageCount。调色节点的 resourceKind 无条件返回 image —— 它的图来自
上游,按「有没有 content」判断会让它永远进不了生成输入,这是不报错的静默失效。
测试:新增 test/canvas-extension-nodes.test.ts(12 用例 / 64 断言),覆盖 7 个节点的
判据矩阵、调色参数、以及图表解析。图表解析函数刻意不抛 —— 数据来自模型输出,
非法 JSON 是常态而不是异常,抛出来会连带整个画布白屏,有 7 条断言钉这个。
测试列表是显式枚举,已把新文件加进 package.json,不加进去不会跑。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-22 12:29:24 +08:00 |
|
ddCat
|
c670ebca90
|
feat(*): 工作台界面 - 优化插件中心、管理侧栏及画布与短剧列表
|
2026-08-22 11:35:23 +08:00 |
|
ddCat
|
9327b75c2e
|
feat(canvas): 画布插件与视觉 - 合并 PR #289 并保留任务计费边界
|
2026-08-22 10:01:41 +08:00 |
|
ddCat
|
8be75c1fbd
|
refactor(core): 任务与模型协议治理 - 拆分服务职责并禁止已发起任务取消
|
2026-08-22 09:52:09 +08:00 |
|
QAyong
|
34a207eb39
|
feat(canvas): 画布视觉 - 优化浮动控件与连接线可读性
|
2026-08-22 03:08:15 +08:00 |
|
QAyong
|
d70c0961cb
|
feat(workbench): 插件素材与画布视觉 - 完成 Eagle 外部来源与节点可读性适配
|
2026-08-22 02:30:26 +08:00 |
|
ddCat
|
d909e65993
|
feat(canvas): 创作体验 - 合并 PR #282 并优化引用、风格与素材文件夹
|
2026-08-21 09:23:31 +08:00 |
|
ddCat
|
36bff1963b
|
refactor(canvas): 节点注册表 - 合并 PR #284 并收敛类型判据
|
2026-08-21 09:18:17 +08:00 |
|
dlh
|
af84cf5772
|
refactor(canvas): 节点注册表 - 收敛节点展示与几何知识到单一数据源
每加一种画布节点,叫什么、长什么样、能不能自由拉伸要在 4-5 处各写一遍。
实际后果是节点标签出现三份且互相矛盾(NODE_DEFAULT_SIZE.title / 创建菜单 label /
搜索弹窗 nodeTypeLabel),canvas-node-size.ts 里还有第四份硬编码兜底。
新增 lib/canvas/node-registry/,镜像现有 tool-registry/ 的结构:
静态定义带 satisfies Record<CanvasNodeType, ...> 做编译期穷尽性检查
(往枚举加成员不补定义即编译失败),再注册进模块级 Map 并按 ownerId 归属,
为后续扩展留出隔离位。
尺寸与初始 metadata 的数据源仍是 constant/canvas.ts 的 NODE_SPECS,定义文件读它
而非复制,现有约 40 处布局计算未动;渲染层 nodeContentRenderers 已是查表结构,
本次不改。
标签刻意分三个字段各司其职,界面文案零变化:
- defaultTitle 新建节点默认名(Note/Audio/未命名背板 原样保留)
- label UI 短标签
- listLabel 列表标签,缺省派生为 label + 节点;背板显式钉住为背板
接入 3 处调用点:创建菜单标签与图标、搜索弹窗类型标签、canvas-node.tsx 的
minWidth/minHeight 与 keepRatio。导演台落在节点分区但开的是工作台、不是节点类型,
故不走注册表。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-20 22:22:28 +08:00 |
|
ddCat
|
7f2e8c16e6
|
fix(web): 构建与测试 - 修复会话类型和图标依赖兼容
|
2026-08-20 19:48:02 +08:00 |
|
dlh
|
55b35dd943
|
feat(canvas): 多图批次 - 子图操作条补齐(下载/副本/设主图/失败重试删除)
- 展开批次子图悬浮操作条:成功子项下载/创建副本/设为主图,失败子项重试/删除
- 批次主图位常驻下载按钮
- 通过 CanvasNodeActionContext 注入画布级动作(download/duplicate/delete),不改 world-layers 数据模型
|
2026-08-20 19:46:18 +08:00 |
|
dlh
|
c0e017d006
|
feat(canvas): Agent 输入框 - 支持 / 选技能与 @ 光标插入画布素材
AgentChatComposer 由纯 textarea 升级为内联引用编辑器:
- @ 复用 CanvasResourceMentionTextarea,光标处插入画布节点/素材引用 chip + 悬浮预览
- / 弹出已加入技能候选,选择后替换为 @[skill:xxx] 引用 token
- 提交时引用 token 保留在 prompt 文本随发送链路送出;新 props 可选,向后兼容在线/本地两条 Agent
|
2026-08-20 19:46:18 +08:00 |
|
dlh
|
e4c0f8f585
|
feat(canvas): 文本生成 - 独立文本份数 textCount(不再误用生图数量)
- metadata 新增 textCount
- 执行器不再复用餐 count,文本份数独立默认 1
- 配置节点与文本节点面板增加「文本份数」入口(1-15)
|
2026-08-20 19:33:47 +08:00 |
|
dlh
|
a95ff6f0d0
|
fix(canvas): 画布空间网格 - 修复点/线网格过淡不可见
|
2026-08-20 18:49:01 +08:00 |
|
echoD886
|
9df5d5add4
|
chore(web): 文件夹主题 - 修复前端格式检查
|
2026-08-20 16:50:50 +08:00 |
|
echoD886
|
536af9a69f
|
feat(assets): 文件夹主题 - 新增多主题皮肤并同步主线
|
2026-08-20 16:33:51 +08:00 |
|
echoD886
|
b2923b1c08
|
fix(canvas): 文件夹主题 - 对齐参考材质并分离内容预览
|
2026-08-20 15:59:51 +08:00 |
|
echoD886
|
935108edca
|
feat(assets): 素材库与画布 - 新增可交互通用文件夹
|
2026-08-20 15:16:45 +08:00 |
|
ddCat
|
36c08bcc9b
|
feat(*): 工作区体验 - 将管理员入口下沉到左侧栏并优化画布目录卡片
|
2026-08-20 14:33:16 +08:00 |
|
ddCat
|
2e2b26ecc8
|
fix(canvas): 构建兼容 - 修复 Agent 缓存键与退出会话类型
|
2026-08-20 13:46:21 +08:00 |
|
dlh
|
31026a112d
|
fix(canvas): 在线 Agent - 系统模型接入工具任务路由
|
2026-08-20 09:59:27 +08:00 |
|
ddCat
|
d47975f9bc
|
refactor(core): 模型路由与画布 - 收敛渠道模型映射并优化交互
|
2026-08-19 20:27:26 +08:00 |
|
ddCat
|
c7452b701d
|
fix(platform): 模型能力 - 修复图片时长误判与后台默认参数同步
|
2026-08-19 09:57:37 +08:00 |
|
ddCat
|
d2a089f1ec
|
feat(canvas): 画布能力 - 完善 LibTV 导入与资源预览
|
2026-08-19 07:16:07 +08:00 |
|
ddCat
|
a23b4dda93
|
feat(platform): 创作能力整合 - 合并导演台与运行恢复改动
|
2026-08-18 21:01:36 +08:00 |
|
ddCat
|
8c5f56a551
|
feat(platform): 模型管理与后台能力 - 新增逻辑模型路由和响应拦截
|
2026-08-18 20:42:25 +08:00 |
|
ddCat
|
474f1e94ab
|
fix(canvas): 导演台 - 修复骨骼命中类型收窄
|
2026-08-18 20:27:26 +08:00 |
|
ddCat
|
e5b50d91a6
|
feat(canvas): 导演台能力整合 - 合并 PR #252 控制与交互改动
|
2026-08-18 20:27:06 +08:00 |
|
ddCat
|
f7c5b3b257
|
fix(runtime): 运行恢复整合 - 合并 PR #253 本地任务恢复改动
|
2026-08-18 20:27:06 +08:00 |
|
ddCat
|
bda114b29e
|
fix(runtime): 本地任务恢复 - 恢复本地画布和延迟视频任务
|
2026-08-18 15:16:05 +08:00 |
|
QAyong
|
d3a029732f
|
feat(canvas): 导演台 - 完善骨骼控制、对象管理与面板交互
|
2026-08-17 19:46:50 +08:00 |
|
ddCat
|
115eb76bad
|
feat(canvas): 模型选择 - 合并 PR #249 同名模型能力路由
# Conflicts:
# web/src/pages/create/index.tsx
|
2026-08-17 17:12:42 +08:00 |
|
ddCat
|
fddda497d0
|
feat(create): 创作对话 - 接入推理展示与可折叠生成详情
Refs #243
|
2026-08-17 13:16:13 +08:00 |
|
ddCat
|
471d160479
|
feat(create): 创作对话 - 接入推理展示与可折叠生成详情
Refs #243
|
2026-08-17 13:16:13 +08:00 |
|
✨await
|
f152fb7449
|
feat(web): 模型分组 - 同显示名模型族按参数路由最低价模型且模型始终可切换
|
2026-08-17 11:04:37 +08:00 |
|
ddCat
|
050a95c1d5
|
fix(models): 模型目录 - 接入公共能力元数据与声明式分辨率
|
2026-08-17 09:29:05 +08:00 |
|
ddCat
|
e62304604a
|
fix(models): 模型目录 - 接入公共能力元数据与声明式分辨率
|
2026-08-17 09:29:05 +08:00 |
|
爱笑的毛毛虫
|
d9967ec701
|
refactor(canvas): 画布工具栏 - 收敛 Dock 放大与交互状态
保留当前画布视觉体系,统一 Dock 按钮形态、状态反馈与子菜单展开关系。\n\nCloses #244
|
2026-08-17 09:27:39 +08:00 |
|
爱笑的毛毛虫
|
58f41e83cf
|
refactor(canvas): 画布工具栏 - 收敛 Dock 放大与交互状态
保留当前画布视觉体系,统一 Dock 按钮形态、状态反馈与子菜单展开关系。\n\nCloses #244
|
2026-08-17 09:27:39 +08:00 |
|
Codex
|
f8cbcd1b6f
|
fix(models): 模型目录 - 识别公共视频能力并按声明发送分辨率
|
2026-08-16 22:35:20 +08:00 |
|
Codex
|
6d6ad67dae
|
fix(models): 模型目录 - 识别公共视频能力并按声明发送分辨率
|
2026-08-16 22:35:20 +08:00 |
|
WindC0X
|
9ee71d4650
|
feat(canvas): 画布媒体工作流 - 支持批量连线、失败重试与模型能力增强
合并 PR #230。保留当前主线样式与组件结构,吸收批量连线、失败批次重试、媒体模型能力和相关后端增强,并修复集成检查发现的分辨率选择器启用条件与测试稳定性问题。
|
2026-08-15 15:48:16 +08:00 |
|
WindC0X
|
0e251c3c8f
|
feat(canvas): 画布媒体工作流 - 支持批量连线、失败重试与模型能力增强
合并 PR #230。保留当前主线样式与组件结构,吸收批量连线、失败批次重试、媒体模型能力和相关后端增强,并修复集成检查发现的分辨率选择器启用条件与测试稳定性问题。
|
2026-08-15 15:48:16 +08:00 |
|
ddCat
|
914717cae6
|
feat(runtime): 即梦本机运行时 - 接入安全生成闭环与桌面本机渠道
Refs #225
Co-authored-by: zkhyww <127009345+zkhyww@users.noreply.github.com>
|
2026-08-15 12:45:29 +08:00 |
|
ddCat
|
57e1820f41
|
feat(runtime): 即梦本机运行时 - 接入安全生成闭环与桌面本机渠道
Refs #225
Co-authored-by: zkhyww <127009345+zkhyww@users.noreply.github.com>
|
2026-08-15 12:45:29 +08:00 |
|
ddCat
|
bf4a2f9c39
|
feat(canvas): 画布创作对话 - 统一流式 Markdown 展示与交互修复
|
2026-08-15 02:31:42 +08:00 |
|
ddCat
|
abcf3e1787
|
feat(canvas): 画布创作对话 - 统一流式 Markdown 展示与交互修复
|
2026-08-15 02:31:42 +08:00 |
|
ddCat
|
15b679acf0
|
refactor(*): 用户工作台 - 统一画布、任务中心与设置页产品化交互
|
2026-08-14 23:44:55 +08:00 |
|