Commit Graph

892 Commits

Author SHA1 Message Date
AetherNo2332
1637bb9536 fix(cloud-agent): 布局工具参数错误按字段归类,审批卡补整理徽标
- canvas_arrange_nodes 的参数契约错误改用上游既有的 cloudAgentFieldError:
  snapshotHash 缺失按 required、mode/align/gap/nodeIds/groups 非法按 invalid_value、
  nodeIds/groups 超限按 item_count。原先一律 BadAuthRequest(*AppError),按上游运行期的
  errors.As 顺序会走 failCloudAgentAdmission 把整轮判死,模型拿不到可纠正回执。
- 审批卡补 .canvas-agent-approval-operation-arrange_nodes 徽标配色(与新增/修改/连线同一组),
  并补一条前端用例:arrange_nodes 预览项不得被 operation() 当成未知值丢掉。
2026-09-22 01:40:43 +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
ddCat
6f45240599 fix(canvas): 画布批量生成 - 修复节点丢失、资源引用及刷新状态不一致 2026-09-21 21:13:29 +08:00
ddCat
dc1ad68015 fix(*): 素材库与画布 - 修复批量删除刷新、选择布局及工具引用 2026-09-21 20:14:05 +08:00
ddCat
c5b81f696c feat(*): 画布助手 - 新增 Live2D 配置导入与模型渲染支持 2026-09-21 14:11:29 +08:00
ddCat
b8eefdad70 feat(canvas): 模型选择 - 支持彩色展示标签并优化目录与积分交互 2026-09-21 11:11:10 +08:00
ddCat
4ab43ca6f9 fix(ui): 提示浮层 - 修复键盘触发并补真实交互回归
Original-Commit: ff42bb969a037f3271e3da59b752f513c3112b2d
2026-09-21 09:55:26 +08:00
ddCat
8b8ea29148 fix(runtime): 运行稳定性 - 修复技能种子、任务续租与回归检查
保留社区技能作者与时间戳修复、Agent 参数约束、资源删除 worker 生命周期、PostgreSQL/Redis 测试门禁及相关回归。

Original-Commit: 0d05ff88bbe6c875d01964041788023a662ff7e8
2026-09-21 09:48:43 +08:00
Rou
19c9a207c9 fix(model-picker): 模型选择 - 修复候选报价显示与同渠道模型跳回 (#556)
Original-Commit: 7a5e17e2112c3c23e081a1ecf3c33a654cf1e907
fix(model-picker): 模型选择 - 修复候选报价显示与同渠道模型跳回
2026-09-21 09:37:51 +08:00
Codex
93bc079b89 fix(video): 创作台视频 - 修正同步音频参数与万有引力结果下载地址 (#554)
Original-Commit: e85e78fb898be7ef1fcd2027b62ab43c00dfaa2c
fix(video): 创作台视频 - 修正同步音频参数与万有引力结果下载地址
2026-09-21 09:37:35 +08:00
AetherNo2332
c09304d905 fix(web): 首屏 favicon - 不再先闪内置品牌图标 (#570)
Original-Commit: d049f7014d49e93ab0e6aa8b7e715d5155b94dc0
fix(web): 首屏 favicon - 不再先闪内置品牌图标

index.html 静态声明 /logo.svg 作 icon,而 favicon 由 use-appearance-store 在解析出外观后写入
(link[rel~="icon"] + appearanceLogoURL)。自定义品牌部署于是会先闪一下内置 logo。

换成空占位 <link rel="icon" href="data:," />:外观系统照旧覆盖它,占位只是为了不让浏览器去
请求 /favicon.ico(那是一条 404)。代价是外观接口不可用时标签页没有图标,这是有意的取舍。

新增源码级守卫用例(上游原态 1 pass/1 fail,改后 2 pass)。
2026-09-21 09:37:20 +08:00
AetherNo2332
f7a8b9eda5 test(web): Director E2E - 点击前要求目标站稳 300ms (#565)
Original-Commit: 8af5d28da78feeb30ca673030422a20e4ede0411
test(web): Director E2E - 点击前要求目标站稳 300ms

clickPoint() 原来只要相邻两次读数坐标相同(间隔 100ms)就判定就绪。AntD 弹窗/抽屉有约
200ms 入场动画,动画刚开始、坐标还没动的那一拍会被判成"稳定",真正派发鼠标事件时控件已移位,
点击落到遮罩(mask.closable=false)上无效。

改为要求坐标连续 300ms 不动、等待上限 5000ms→8000ms。上游 main 上连跑两次都失败在
F6「留在导演台」(57/58),打补丁后连跑两次都是 58/58。
2026-09-21 09:37:20 +08:00
AetherNo2332
22d65d0192 fix(web): 基础控件 FloatingDock - 宿主没有 matchMedia 时不再渲染失败 (#563)
Original-Commit: 3da77b3931a675de06b02c1bba93f112d253041b
fix(web): 基础控件 FloatingDock - 宿主没有 matchMedia 时不再渲染失败

`window` 存在不代表 `matchMedia` 存在(SSR 垫片、嵌入式 webview、部分 DOM polyfill),
而 FloatingDock 在渲染期直接取 `window.matchMedia("(pointer: coarse)").matches`,
取不到就抛 TypeError,整个 dock(画布工具栏/素材托盘/缩放控件)渲染失败。
仓库里同一模式已有先例:canvas-workspace-tool-panel 用 typeof 守卫。

抽 coarsePointerQuery():两个都探测,取不到按"非触屏"处理,useEffect 也提前返回;
能取到时行为不变。新增源码级守卫用例(上游原态失败、补丁后通过)。
2026-09-21 09:37:19 +08:00
AetherNo2332
6c92c3be7a chore(web): 前端格式 - 统一十个文件的 Prettier 格式 (#561)
Original-Commit: ade0049c0b80733dfea563bac2aae9260e373cf0
style(web): 前端格式 - 补 Prettier 格式(10 个文件)

这 10 个文件(3 个组件/样式与设置页、4 个 admin 主题与控件、1 个 lib、2 个测试)
用仓库自带 Prettier 检查会 warn,`bun scripts/check-changed-formatting.mjs` 在改动到它们时
会直接判红。本次只做格式化,不改任何行为:合并的 CSS 声明、去掉多余换行与括号、
统一链式调用换行。

验证:prettier --write 后 `check-changed-formatting.mjs` 通过、typecheck 通过、
1940 条前端测试全过、eslint 通过。
2026-09-21 09:37:19 +08:00
AetherNo2332
5e3bc01161 fix(web): 基础控件 Tooltip - 子元素可触发并保留键盘可达性 (#560)
Original-Commit: 38b5909fa78902048345ad8d8e00248660830ad5
fix(web): 基础控件 Tooltip - 子元素可触发并保留键盘可达性

react-aria-components 的 TooltipTrigger 通过 context 下发 hover/focus 处理与 triggerRef,
只有消费该上下文的组件才会真正挂上;原来包一层普通 span,既不读 context 也拿不到 ref,
所以悬停/聚焦都不弹气泡(有定位也无基准)。

包装层改为 Focusable + excludeFromTabOrder:悬停与聚焦都能触发、气泡有定位基准,
外层不占 Tab 位,键盘焦点仍落在内层控件上,导航顺序不变。
2026-09-21 09:37:19 +08:00
AetherNo2332
edcf7bc7c0 fix(web): 诊断 - 在没有 window.location 的环境不再抛错 (#559)
Original-Commit: cdb07ca9cbdd74e63d8e80659f3bdbd6d49b3dff
fix(web): 诊断 - 在没有 window.location 的环境不再抛错

recordDiagnosticEvent / normalizeRoute 用 `typeof window !== "undefined"` 判断"在浏览器里",
但 bun 的测试环境里 window 存在、window.location 不存在,于是每次记录诊断事件都抛
`TypeError: undefined is not an object (evaluating 'window.location.pathname')`,
director-diagnostics-recorder 的 9 条基线用例因此全红。

改成 browserLocation():window 与 window.location 都探测,取不到就当没有地址(路由回落 "/")。
浏览器内的行为完全不变。
2026-09-21 09:37:19 +08:00
dk56dd
13d8f629bb fix(settings): 工作台浮层 - 修复离开设置页后菜单背景丢失 (#555)
Original-Commit: 7edc171f36aa77b19d998ffd83d168b5d9169287
fix(settings): 工作台浮层 - 修复离开设置页后菜单背景丢失

Removed useLayoutEffect for body class management.

Original-Commit: 3b555144cc079b403ad36a6df02be5e7ad8c19b9
Update pending-test.mdx with workspace overlay styles

Added new section on workspace overlay styles after exiting settings page, including tasks for removing duplicate overlays and fixing navigation issues.
2026-09-21 09:37:19 +08:00
ddCat
85de99071d fix(canvas): 云端 Agent - 参数错误有限重试并折叠中间失败 2026-09-21 09:30:38 +08:00
ddCat
a3bf0bd801 feat(canvas): 多模态表格 - 合并 PR #549 并保留本地交互与校验 2026-09-20 17:18:46 +08:00
ddCat
9148ceab66 feat(canvas): 画布工作区 - 整合侧栏与风格预设并修复提示词回填
选择性整合 #547,保留主分支节点与工具条设计。新增默认折叠的节点、资产、任务和历史面板,风格与预设保留在节点内,移除重复入口。

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

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

Refs #547

Co-authored-by: bensharp <bensharp@qq.com>
2026-09-20 16:40:08 +08:00
Codex
7449c1c0e0 fix(canvas): preserve list mode metadata type 2026-09-20 13:12:54 +08:00
Codex
d87c3944b7 merge: official v1.5.6 with multimodal storyboard enhancements 2026-09-20 13:05:42 +08:00
Codex
6d355380cb feat(canvas): support multimodal video storyboard tables 2026-09-20 12:59:23 +08:00
ddCat
8d94bde1f4 feat(*): 系统渠道与画布 - 支持多规格批量调价及 Agent 入口拖动 2026-09-20 11:18:19 +08:00
ddCat
9afe061d79 ci(deploy): 镜像发布 - 原生多架构构建并复用提交镜像与缓存 2026-09-20 09:35:23 +08:00
ddCat
1be8ffce3b fix(web): 导演台检查 - 隔离开发复现入口的外观初始化请求 2026-09-20 09:35:07 +08:00
ddCat
104396ba2f fix(ci): 质量检查 - 修复增量格式检查 EPIPE 与连线代码格式 2026-09-20 09:34:46 +08:00
ddCat
d7682963a4 feat(admin): 系统模型 - 合并渠道与模型管理并展示规格成本价 2026-09-20 09:34:46 +08:00
ddCat
473d535ec1 chore(release): 版本发布 - publish v1.5.6 2026-09-20 05:37:38 +08:00
ddCat
b35c66b266 chore(merge): 主线同步 - 合并支付插件与管理端更新 2026-09-20 05:32:16 +08:00
ddCat
cfcc53a904 fix(workspace): 创作工作台 - 修复线上样式层级并优化 Agent、菜单与素材密度 2026-09-20 05:29:52 +08:00
ddCat
3e35f7d687 fix(merge): PR 集成 - fix merge 上传状态与易支付校验
在 #544、#545、#546 的原作者 merge commit 之后独立修复:保留上传 Promise、处理重复上传与复制失败、格式对齐,以及易支付网关、订单证据、签名、通知幂等与安全关单校验。同步重建六平台插件产物和包。

验证:前端 1832 tests、build/typecheck、lint、相关格式检查通过;财务 SQLite、支付、插件 RPC 与产物专项通过。后端全量出现一项未改动的素材删除 SQLite 表锁失败,单独复跑 3 次通过,保留全量未通过记录。浏览器与真实商户验收待完成。#543 因迁移历史与能力限制回退暂缓。
2026-09-20 05:18:16 +08:00
Rou
24323817d0 feat(admin): 管理统计 - 合并 PR #545 财务统计与分组选择
Merge pull request #545 from Rou325. Preserve the original author and current main behavior.
2026-09-20 04:56:42 +08:00
daoge05178
55ea71d5ba fix(plugins): 插件管理 - 合并 PR #544 上传弹窗与减弱动画修复
Merge pull request #544 from zwm417. Preserve the original author and current main behavior.
2026-09-20 04:56:42 +08:00
Rou
04cb438869 feat(admin): 模型管理 - 统一财务统计并支持已有分组选择 2026-09-20 01:40:40 +08:00
ddCat
33908ed117 feat(canvas): 交互可读性 - 优化连线、字号与工作条 2026-09-19 22:29:41 +08:00
ddCat
04a1e19def fix(canvas): 远程媒体 - 统一资源地址并校验视频缓存 2026-09-19 22:29:09 +08:00
daoge05178
659f3d4eea fix(plugin): 解决减弱动画模式下插件弹窗死锁并优化上传弹窗性能
1. 修复底层动画死锁:在 prefers-reduced-motion 环境下,admin-chrome.css 的 animation: none 导致 rc-motion 无法收到 animationend 事件使弹窗死锁卡在 opacity: 0,改为 0.01ms 确保事件正常闭环。
2. 优化弹窗秒开性能:将 UploadPluginModal 重构为「安装插件包」与「开发规范与示例」Tab 分段展示,避免首屏编译超长 Markdown,实现 0ms 瞬间打开。
3. 消除系统文件选择器卡顿:将 accept 中 application/zip 改为纯扩展名 .zip,避免 Windows 枚举注册表协议卡顿。
4. 增加上传状态与防重保护:补充遮罩与加载态,提升整体交互稳定性。
2026-09-19 21:53:08 +08:00
Codex
7985dbec48 fix: connect batch generation settings dialog 2026-09-19 21:21:07 +08:00
ddCat
cb68476e36 fix(canvas): 打光效果 - 保留主干四列预设布局 2026-09-19 21:04:12 +08:00
cn-derekdu
d8e9928ce3 fix(ci): 质量检查 - 同步格式、前端断言与存储降级 2026-09-19 21:04:03 +08:00
libiao320-cmd
6edd8b1e8b fix(canvas): 打光效果 - 修复预设文字重叠 2026-09-19 21:03:54 +08:00
Codex
0e61fb00ab fix: honor requested list rows and preserve ai table data 2026-09-19 20:51:55 +08:00
ddCat
adf3a5be3c feat(agent): 云端 Agent - 增加上下文预算、任务事实与终态恢复保障 2026-09-19 20:43:20 +08:00
Codex
10b85962b6 fix: recognize common multimodal text models 2026-09-19 20:40:55 +08:00
ddCat
16bd4b923b feat(canvas): 生成合同 - 统一节点参数并补充模型上下文能力 2026-09-19 20:32:05 +08:00
ddCat
6c48282e66 refactor(admin): 模型定价 - 重排规格价格编辑并精简视频匹配条件 2026-09-19 20:28:46 +08:00
ddCat
5eab81261a refactor(web): 样式体系 - 拆分模型选择、滚动条与编辑器样式 2026-09-19 20:28:16 +08:00
Codex
5843d489c6 fix: restore list mode entry in text composer 2026-09-19 20:25:53 +08:00
Codex
3f5b0bd347 fix: route list mode through multimodal text model 2026-09-19 20:04:26 +08:00