Commit Graph

291 Commits

Author SHA1 Message Date
ddcat666
1f5ecca33a perf(canvas): 画布视口 - 交互期避免强制布局和整树样式重算
拖拽和缩放时用世界坐标定位浮层,暂停更新继承缩放变量,概览优先用缩略图并限制解码缓存。
2026-10-10 20:20:09 +08:00
ddcat666
dd66be15cb fix(canvas): 画布同步 - 素材缺失时可强制覆盖并恢复文本与连线顺序
云端缺少素材时可用本地版强制覆盖,只清失效媒体引用。文本节点不再把资源地址当正文,合并时保留引用槽位顺序。
2026-10-10 20:20:09 +08:00
Codex
e9227e7941 feat(canvas): AI 拆图 - 完善规划、图层编辑与素材复用 2026-10-09 18:02:18 +08:00
ddcat666
5e69106d8f fix(canvas): 画布同步 - 版本冲突先核对并合并,本地保存与云端状态分开展示
本地持久化记录保存时间和日志令牌,同步面板区分本地与云端,不再用提示打断编辑。冲突时先尝试合并,无法合并才保留草稿并暂停自动提交;未登录时生成结果留在本地,登录后再继续上传。
2026-10-09 17:17:38 +08:00
ddcat666
631a85b4fe perf(canvas): 大画布渲染与媒体 - 布局不变时复用空间索引,合并重复的资源与封面请求
连线索引只存端点 ID,文本更新不再重建几何。小地图一次遍历隐藏折叠帧子节点。资源 Blob 与签名刷新合并在途请求,视频封面优先复用已缓存文件。
2026-10-09 17:17:38 +08:00
ddcat666
b7416b8346 fix(canvas): 预演录制转码 - 奇数分辨率白膜录像按偶数缩放并无音轨导出 MP4
WebGL 录制没有音轨,dpr 1.5 下宽高经常是奇数,libx264 的 yuv420p 会直接失败。转码改为偶数缩放、去掉音轨,并用 ultrafast 单线程适配关闭汇编的 ffmpeg 内核。
2026-10-09 17:17:38 +08:00
ddcat666
c0a9250cb3 feat(previs): 图片生成预演台 - 从图片节点交给 Agent 复现为可编辑 3D 预演
图片工具栏新增「生成预演台」,自动选用支持看图的文本模型并提交复现指令。对话用节点卡片展示「此图」,普通图片演员只写名称时不再要求角色卡绑定。
2026-10-09 17:17:28 +08:00
ddcat666
9174aae013 fix(*): 质量检查与版本发布 - 修复格式门禁和创作灵感兼容导出并发布 v1.6.2 2026-10-08 20:43:15 +08:00
ddcat666
295374650a refactor(*): 代码质量 - 优化前后端实现并完善协议与画布验证 2026-10-08 19:38:57 +08:00
ddcat666
e224ea1015 fix(canvas): 画布引用 - 统一角色与图片编号并保持生成资源顺序 2026-10-08 14:20:45 +08:00
ddcat666
f0359a6bee feat(previs): 预演工作台 - 重做界面与取景手势,缩放不得进入演员体积
滚轮和按钮共用最近距离,环绕目标落在演员体内时停在包围盒外;取景按可见对象体积适配入画,取消暂存手势时不写入历史。
2026-10-08 10:54:41 +08:00
ddcat666
f67a304380 fix(canvas): 预演合并 - 场景时间戳采用服务端快照,带 id 数组按条目合并
每次预演变更都会改 updatedAt,不再把它当成用户编辑冲突;带 id 的对象数组按条目合并,仅刷新场景时保留本地视口。
2026-10-08 10:54:41 +08:00
ddcat666
9997422fcd fix(media): 视频播放 - 资源视频改走 playback 变体,失败后刷新签名并重试
画布预览、生成回填和项目水合都解析浏览器可播地址;播放失败时绕过展示缓存,等待转码完成后强制刷新 playback 地址。
2026-10-08 10:54:40 +08:00
ddcat666
b8d0b25e3c fix(ci): 质量检查 - 修复预演台重构后 Web 与后端检查失败
补回预演台模式切换、模式门控时间轴与非模态引导挂载,取景切换器使用激活态 token,模板场景补齐 environment 字段;E2E 改为验证新版 FloatingDock 与模式切换下的时间轴,工作流改用重命名后的 test:previs:e2e;修正 canvas_share.go 的 gofmt 格式,并按新布局与欢迎页外观行为校准合同测试。
2026-10-06 14:21:42 +08:00
Catlaxy AI
544daa4b9f fix(assets): 复用生成素材身份并保留空缓存同步前的编辑 (#690)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:24:06 +08:00
ddcat666
112916587c refactor(canvas): 预演台 - 重构工作台与场景交互链路 2026-10-06 09:11:15 +08:00
tanzui
1dfc8ce7ac fix(canvas): 节点复制 - 修复生图副本生成后消失 (#676)
Co-authored-by: tanzui <305375675@.com>
2026-10-05 15:26:51 +08:00
ddcat666
6d757b7001 fix(canvas): 媒体提示词 - 统一 Agent 更新与画布生成读取生成合同 2026-10-04 10:43:55 +08:00
DAO-QIN
853c7d2ce7 feat(*): 创作配置 - 支持 Midjourney、多图保存与自定义公告
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
2026-10-04 10:43:31 +08:00
ddcat666
c83525b114 feat(canvas): 云端 Agent 交互 - 展示错误动作并支持连接器与提示词预填 2026-10-04 02:22:42 +08:00
ddcat666
12125e18f6 feat(web): 角色与音频工作台 - 完善素材选择、生成参数与同步交互 2026-10-01 09:43:02 +08:00
ddcat666
b080674524 feat(media): 音频生成 - 支持 IndexTTS2 情感控制参数 2026-09-30 14:39:56 +08:00
ddcat666
d01e60d87e fix(canvas): 角色卡引用 - 修复三视图读取与本地图片生成(#650)
fix(canvas): 角色卡引用 - 修复三视图读取与本地图片生成
2026-09-30 11:58:54 +08:00
yepwait
6bbc2849dd fix(canvas): 角色卡引用 - 修复三视图读取与本地图片生成 2026-09-30 11:47:00 +08:00
medivh
45e51b1df5 fix(canvas): 分镜脚本 - 补齐拆镜输出契约并让镜头数与每镜时长生效 2026-09-30 11:13:54 +08:00
ddcat666
10ea9d3fa0 feat(canvas): Agent 审批 - 节点直接生成时自动关闭同节点的待审批任务
用户在画布节点上直接提交生成后,同画布 Agent 对该节点等待中的 generate_media 审批关闭为 superseded_by_node,Agent 带着「用户已手动提交」的结果继续,不重复提交、不扣费。审批卡片识别目标节点正在生成时禁用「同意执行」并提示原因。
2026-09-30 03:40:14 +08:00
ddcat666
6ad1adc197 feat(canvas): 条件读取与历史 - 减少画布同步传输并校准版本 2026-09-29 08:26:29 +08:00
ddcat666
387d3562ad refactor(agent): Pi 会话运行时 - 接入原生 Agent 与 Skills 工具链 2026-09-29 08:21:11 +08:00
ddcat666
5df5e09c63 feat(web): 工作台 - 优化 Agent 工作区与技能库 2026-09-27 09:45:45 +08:00
ddcat666
e94375089e fix(quality): 前端代码质量 - 修复变更格式检查问题 2026-09-26 17:05:36 +08:00
ddcat666
993580a7bd feat(cloud-agent): 云端 Agent - 完善运行时与资源持久化 2026-09-26 17:05:36 +08:00
ddcat666
48e6a705ef merge: 合并 Agent 面板 UI 优化 PR #624 2026-09-26 06:20:01 +08:00
ddcat666
2cedc4c66b feat(*): 云端 Agent - 增强画布上下文读取并接入 Gemini 缓存 2026-09-26 02:21:47 +08:00
AetherNo2332
a1dc9b2686 fix(canvas): Agent 面板 - 读清单与看画面分档、操作行折叠动效与时间线标识清理
(cherry picked from commit 6c0cadcf9d0dad48a065598ff57b4bde1e135fcd)
2026-09-25 20:57:09 +08:00
AetherNo2332
0d6f2291f6 feat(cloud-agent): 操作记录 - 折叠成一行只报最新一步并支持展开完整记录
(cherry picked from commit fce39c847b046ec8b3f11a83f1e809a4a88100d6)
2026-09-25 20:57:09 +08:00
ddcat666
98f1b31e20 feat(canvas): 云端 Agent - 缩减画布目录上下文并展示实时用量 2026-09-24 23:54:59 +08:00
ddcat666
32a2e44040 fix(canvas): 创作工作区 - 收紧界面密度并改进 Agent 镂空标签 2026-09-24 10:07:05 +08:00
VicoHu
3ef40e1d21 feat(canvas): 媒体产出模型与选用模型分离 (#597)
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
2026-09-24 09:28:16 +08:00
ddCat
c7cb6e14a0 perf(canvas): 画布渲染 - 降低大画布节点开销 2026-09-24 00:12:53 +08:00
cn-derekdu
d5741c98fe fix(canvas): 图片裁剪 - 修复云端图片跨域导致的确认裁剪无反应
裁剪属于像素级操作,需要先把图片画到 canvas 再导出。云端图片地址通常不带
CORS 头,canvas 会被标记为跨域,toDataURL 直接抛 SecurityError;而 loadImage
只挂了 onload、没有 onerror,加载失败时 Promise 永久挂起。两者叠加后,用户
侧的表现都是「点击确认裁剪没有任何反应」,控制台之外看不到原因。

- loadImage 补充 onerror,避免加载失败时 Promise 永不落地
- 仅对非 data:/blob: 的地址设置 crossOrigin=anonymous,本地资源设了反而
  可能取不到像素
- 新增 resolveCroppableImageSource():优先用本地媒体缓存 Blob 构造同源
  objectURL,取不到再回退原始地址,并在 finally 中 revoke
- cropImageNode 补充 try/catch 与失败提示,让错误可见而不是静默失败

无外部行为变化,仅修复失败路径与错误反馈。
2026-09-22 16:31:15 +08:00
Codex Audit
12796b048c fix(canvas): 画布媒体 - 修复预览首帧音量和创作状态展示 2026-09-23 11:10:45 +08:00
ddCat
c30393df14 feat(canvas): 画布外观 - 默认使用黑色点网格并保留自定义配置 2026-09-22 15:47:49 +08:00
ddCat
48a82ded74 feat(media): 作品保存恢复 - 按原任务重试交付并避免重复生成计费 2026-09-22 15:47:24 +08:00
ddCat
2cbe80369b Merge remote-tracking branch 'origin/pr-589' into codex/pr-557-589-security-integration
# Conflicts:
#	docs/content/docs/backend/http-api.mdx
2026-09-22 11:20:54 +08:00
ddCat
6f4bc29524 Merge remote-tracking branch 'origin/pr-585' into codex/pr-557-589-security-integration 2026-09-22 11:10:48 +08:00
ddCat
764ef95aa7 Merge remote-tracking branch 'origin/pr-579' into codex/pr-557-589-security-integration 2026-09-22 11:05:07 +08:00
AetherNo2332
56598108d4 feat(canvas): 云端 Agent 画布布局 - 新增 canvas_arrange_nodes 与新增节点自动落位
云端 Agent 此前只能新建节点与连线,既不会排版也不能移动已有节点:模型只能用几十个
update_node 手算坐标,或者让用户自己拖。

- 新增 backend/internal/canvas/layout:把前端既有的画布布局算法(web/src/lib/canvas/
  canvas-layout.ts,本 PR 不改该文件)按同一套常量移植到服务端,提供 Kahn 拓扑分层 flow、
  媒体泳道 byType、row/column/grid、对齐与等距、分组分带、AABB 重叠检测与空位搜索。
- 新增写工具 canvas_arrange_nodes:snapshotHash 必需,mode∈{auto,flow,byType,row,column,
  grid},可传 nodeIds、groups(只做横向位置分带,不建容器、不改层级)、align、gap、dryRun。
  只改坐标,不改内容、不建连线、不增删节点;一次最多 50 个节点 / 12 组。锁定节点、背板等
  容器、隐藏批次子节点与已归属背板的子节点保持不动并在回执里说明;整批复用现有 mutation
  记录与事件管线,审批与撤销走同一条路径。
- add_node 省略坐标时不再落到 (0,0):优先贴合本批连线的对端(输入在左、输出在右),否则
  追加到同泳道同类节点之后,冲突则扫描空位;只给一个轴时保留该轴。agentCanvasOp.X/Y 改为
  指针以区分"没给坐标"与"坐标 0"。
- update_node 的 patch 新增 x/y(PatchField.Limit 校验 ±1e6),供模型微调单个节点。
- 系统行为策略新增「布局与整理」一节并升版到 8;docs 补工具说明与工具全集;前端同步审批
  预览联合类型、面板文案与徽标。
- 工具 schema 预算按实测从 24000 上调到 25000(21 个工具 24788 字节),并改正注释里
  "上游约 23.4 KB"的说法(上游 20 个工具实测 22777 字节)。
2026-09-22 01:32:20 +08:00
AetherNo2332
4e2df72eeb fix(cloud-agent): 工具失败归类与可行动字段
工具失败此前只有一句自然语言(tool_failed + text),无法区分"模型自己出的错"和真实的
权限/状态/上游问题:模型拿不到可自纠的反馈,排查时分不清该改提示词、改权限还是等上游。

- 新增 backend/internal/app/cloud_agent_tool_error_class.go:把失败归成
  invalid_model_output(幻觉工具名;本轮契约之外、只被 contextScope 挡掉的调用)、
  schema_error(缺必填字段/类型错/未知字段/非法 JSON)、state_conflict(画布在读取之后被改动)、
  permission_violation(只读轮发起写入等真实授权边界)、upstream_failure(上游 4xx/5xx、
  超时、媒体上游拒绝),其余归 tool_error。
- 每类附 retryable 与稳定的 requiredAction(fix_arguments / reread_canvas /
  use_advertised_tools / ask_user / report_to_user),写进 tool_failed 的回执与载荷顶层。
  只加标注:没有任何放行或拒绝逻辑读它。
- 缺必填字段的通用判定:各工具的校验点抛的多是普通 AppError,从错误类型看不出"模型漏了字段"。
  现在用本轮实际暴露的 schema 的 required 与参数比对,命中即按参数契约错误处理(回传 schema 与
  guidance 供模型自纠);只在业务侧确实按参数问题拒绝(400/422)时套用,已分类的参数错误不套壳。
- 幻觉工具名的拒绝文案更具体:过去一律"工具未获本轮权限授权",现在指向"不存在的工具 + 只使用
  本轮工具表里列出的工具"。
- 前端工具卡失败时显示归类标签,比统一的"执行失败"更能说明下一步该做什么。
2026-09-22 00:53:32 +08:00
ddCat
6f45240599 fix(canvas): 画布批量生成 - 修复节点丢失、资源引用及刷新状态不一致 2026-09-21 21:13:29 +08:00
ddCat
dc1ad68015 fix(*): 素材库与画布 - 修复批量删除刷新、选择布局及工具引用 2026-09-21 20:14:05 +08:00