Commit Graph

1276 Commits

Author SHA1 Message Date
ddCat
c8a91fd2e9 fix(canvas): 模型生成 - 保留安全的上游失败原因并展示到用户卡片 2026-09-22 10:48:25 +08:00
ddCat
5ea9466bb4 fix(agent): 画布助手 - 恢复 Skills 引用提示 2026-09-22 09:35:11 +08:00
ddCat
b2a1bcc8d9 chore(release): 版本发布 - 准备 v1.5.7.1 预览版 2026-09-22 09:23:18 +08:00
ddCat
e0e6be450b refactor(admin): 管理后台 - 收敛重复边框并提升运维信息密度 2026-09-22 06:09:03 +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
d5ff22258e fix(skills): 技能文件包 - 修复元数据截断超限并补充初始化回归 2026-09-21 11:10:58 +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
Codex
15946e5a86 fix(text): 文本生成 - 修复声明式协议流式请求与增量输出 (#558)
Original-Commit: b2fef297e8a50d519a0480d120a32eb81234a48f
fix(text): 文本生成 - 修复声明式协议流式请求与增量输出
2026-09-21 09:38:11 +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
5045f7a7e1 ci(quality): 后端测试 - 备齐 Postgres/Redis 依赖并禁止依赖用例静默跳过 (#571)
Original-Commit: 6bc6d5701f461a7306fd8171e18968c95d7da124
ci(quality): 后端测试 - 备齐 Postgres/Redis 依赖并禁止依赖用例静默跳过

Backend job 既没有 services 也没有 CANVAS_TEST_POSTGRES_DSN,也没装 redis-server,
于是 5 个用例默认静默跳过:PostgreSQL 迁移、素材字节修复、画布版本历史、Redis 租约、
缓存白名单——这些路径在 CI 上从来没被执行过,而 go test ./... 是全绿的。

- 起 postgres:16-alpine service(pg_isready 健康检查)+ 导出 CANVAS_TEST_POSTGRES_DSN;
- 安装 redis-server 可执行文件(用例自起临时实例)并停掉系统服务;
- 新增守卫:单独跑这 5 个用例,出现 --- SKIP 就 ::error:: 并失败;
- 保留既有的 go test -json | tee 与 timings artifact 上传。
2026-09-21 09:37:20 +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
13707c06b9 perf(agent): 工具 schema 瘦身 - 去掉重复 oneOf 并压缩冗余描述 (#569)
Original-Commit: 042d06f02215c29771360e73bc17c99d132ddfda
perf(agent): 工具 schema 瘦身 - 去掉重复 oneOf 并压缩冗余描述

工具表每一步都要发、还在前缀缓存最前面,属于固定开销:

- canvas_apply_ops 的 ops.items 同时给顶层 type 枚举和一份 oneOf,同一条约束下发两遍;
  工具描述与服务端按 action 的强校验已经表达了它,删掉 oneOf。
- generate_media 的 snapshotHash / sourceNodeId / referenceNodeIds 描述压成短句。
- remember_lesson 的 steps[].tool / steps[].note 描述压成短句。

契约不变(字段、required、enum、服务端校验都未动)。实测:20 个工具的平台表
22885 → 22438 字节(−447)。新增体积守卫用例(断言无重复 oneOf + 总体积 ≤24000)。
2026-09-21 09:37:20 +08:00
itsWyatt-K
73ef84ffc8 feat(skills): 社区技能 - 新增 72 个创作方法论技能 (#568)
Original-Commit: d96d5aa62b68b0f8582f4f2d6a0e588d2794af6d
feat(skills): 新增 70 个社区创作方法论技能并在 README 推荐 judian-skills

- seed/skills.json 追加 70 条目(drama 14 / creative 44 / ecommerce 12),来源为
  官方文档(MiniMax H3)与 9 个宽松许可开源项目的结构化蒸馏加自撰方法论,
  逐卡带许可署名(metadata.source / license / attribution)
- 与现有 33 个种子技能分工明确:本批负责生成前方法论(节奏校准/提示词组装/
  质检/反推),27 个任务域重叠技能带工位边界声明,与 image_text_detect 正交互补
- README 核心能力新增社区技能生态条目,指向 judian-skills 仓库
  (技能页 install/GitHub 标签直装)
- 验证:go build ./internal/skills 与 go vet ./internal/skills 均通过;
  种子 JSON 无重名/重 ID;A/B 实测五任务全部优于无技能与上游同类技能

Original-Commit: 55e0252e92c65bf9b69891c46313be5a7a02edd7
feat(skills): 种子技能 70 → 72(补装订图文案规范与视觉决策转换层)

新增两条已在社区技能库发布、但此前因 frontmatter 残缺被转换器按私有跳过的技能:

- flux-asset-image(FLUX.2 资产图规范):四层结构 Subject→Action→Style→Context + 五条专属规则(无负向词 / HEX 绑物体 / 外观段逐字重复保角色一致性 / 相机代码提写实感 / 多主体切 JSON)。补上图像侧「生成前方法论」空白。
- vis-to-prompt(视觉决策 → 提示词转换层):把视觉叙事七元素决策(空间选型/影调/色彩/运动)翻译成模型能懂的具象短语,并嵌入 FLUX 四层或 H3 时间轴。补上「设计意图 → 模型语言」的断点。

字段规范:skill_id 由 id_ledger.json 台账分配(...00071 / ...00072),不与既有 70 条串号;tag=creative;status=1;source=3;instruction 末尾附许可与署名页脚。

验证:go build ./... 与 go vet ./... 均 EXIT=0;skills.json 自检无重复 skill_name / skill_id,总条目 33 → 105。
2026-09-21 09:37:20 +08:00
AetherNo2332
04d8b85eec fix(app): 任务租约 - 续租不再被自己的执行时限打断 (#567)
Original-Commit: 2b796c403f0c99f3b607b53650b42078964ea753
fix(app): 任务租约 - 续租不再被自己的执行时限打断

续租 context 原来派生自任务执行时限(context.WithTimeout(ctx, 5s)):执行时限一到,
续租请求立刻被取消,失败后被误判成"租约失效、等待其他 worker 恢复",任务停在 running,
租约过期后又被别的 worker 重跑(实测一次上游调用被重跑成三次)。

- taskLeaseRenewContext:用 context.WithoutCancel(parent) + 5s,只继承值、不继承取消与时限;
- 收尾处若我方执行时限已到点,不再直接返回租约错误,而是继续走失败收尾(真丢失时行为不变)。

新增用例在旧写法下失败、修复后通过。
2026-09-21 09:37:20 +08:00
AetherNo2332
fd3fc44d88 fix(agent): 画布写入 - 漏 patch 按参数错误回给模型而不是终止整轮 (#566)
Original-Commit: a7df2b57c72e479200b82d0af88446d43fa9f9dd
fix(agent): 画布写入 - 漏 patch 按参数错误回给模型而不是终止整轮

审批模式下模型用 canvas_apply_ops 做 update_node 时漏了 patch,准入预检直接返回普通
BadAuthRequest,运行期按"准入失败"处理 → 整轮 failed,用户只看得到一句"更新节点必须提供 patch",
模型没有改正机会。批量创作表、分镜、画布读取参数都已把同类错误包成 cloudAgentArgumentError
(运行期 errors.As 后作为工具结果回给模型重试),这里补齐。

未知画布写操作仍按准入失败终止(既有用例断言不变);新增用例同时钉住这两条。
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
ea44d445b4 build(deploy): 部署配置 - 转发 CANVAS_PUBLIC_BASE_URL (#564)
Original-Commit: 1734438cd00963a607795b2a6640ab7827e487e0
build(deploy): 部署配置 - 转发 CANVAS_PUBLIC_BASE_URL

后端读 CANVAS_PUBLIC_BASE_URL(resource.go 用它拼本地存储的短时签名链接,取不到时的报错
也在提示管理员配置它),但 5 个 Compose 文件都没有把它传进容器:按报错操作的管理员把变量
写进 .env 之后没有任何效果,而报错文案仍在让他"去配置"。

5 个编排与 .env.example 一并补齐(默认空值,行为与现状一致),并说明内网部署还需把该主机
放进 CANVAS_ALLOWED_PRIVATE_UPSTREAM_HOSTS。无代码改动。
2026-09-21 09:37:19 +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
76e02734f1 test(app): 测试库 - 改用 WAL 文件库,消除共享缓存内存库的表级锁 flake (#562)
Original-Commit: 25931635266ca01843691e87d631b6f2db178e52
test(app): 测试库 - 改用 WAL 文件库,消除共享缓存内存库的表级锁 flake

两处用例夹具用 sqlite 的 `file:…?mode=memory&cache=shared`(表级锁,且不受 _busy_timeout
约束),而它们都会触发后台删除 outbox(go s.drainResourceDeletionJobs),并发时偶发
`database table is locked`(本地并发读写 400 次撞到 70+ 次)。

新增 newSQLiteTestDB(t):文件库 + WAL + busy_timeout=5000,WAL 允许"一写多读"、写冲突退化成
SQLITE_BUSY 并由 busy_timeout 重试;库文件放 os.MkdirTemp(不用 t.TempDir,避免 outbox 仍在写
时清理报 directory not empty)。两处夹具改用它,并新增一条属性用例守住这个选型。
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
0e3fb79ba6 chore(release): 版本发布 - 标记 v1.5.7 并补充原作者署名
汇总已合并的 PR #549 与 PR #551,保留主分支设计及原作者贡献。同步 VERSION 与 CHANGELOG,供标签发布流程校验。

Co-authored-by: 15657306288 <64959017+15657306288@users.noreply.github.com>
Co-authored-by: qiuliw <qiuliweia@gmail.com>
2026-09-20 17:41:03 +08:00
ddCat
a3bf0bd801 feat(canvas): 多模态表格 - 合并 PR #549 并保留本地交互与校验 2026-09-20 17:18:46 +08:00
ddCat
150f9cf2c1 feat(plugins): DashScope Wan3 - 合并原生视频协议插件 PR #551 2026-09-20 16:53:26 +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
qiuliw
b9608c9b97 docs(plugins): DashScope Wan3 - 去掉自定义兼容边界说明 2026-09-20 16:04:24 +08:00
qiuliw
f6b33e76b0 feat(plugins): DashScope Wan3 - 新增 wan3.0 原生视频协议插件
对齐 dashscope-wan-video 风格,支持 media type+url、originPath 与 UNKNOWN 失败映射;序列化 providerOptions 供声明式校验引用。
2026-09-20 15:49:10 +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
0ea9f7d94b fix(canvas): 画布智能体 - 严格校验模型选择并修正任务与 DNS 错误诊断 2026-09-20 12:47:07 +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
qiuliw
9c22ea1d76 feat(payment): 支付插件 - 合并 PR #546 易支付适配
Merge pull request #546 from qiuliw. Preserve the original author and current main behavior.
2026-09-20 04:56:42 +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