1607 Commits

Author SHA1 Message Date
cf3a84c3ad fix(dev): 本地开发编排 - 端口约定对齐 7380/7381
Some checks failed
Publish container images / Quality checks (push) Has been cancelled
Publish container images / Resolve build version (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (amd64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (arm64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-web (multi) (push) Has been cancelled
Publish container images / Build open-ai-canvas-yingce-agent (multi) (push) Has been cancelled
Publish container images / Publish open-ai-canvas-backend manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-web manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-yingce-agent manifest (push) Has been cancelled
Publish container images / Publish release assets (push) Has been cancelled
2026-10-14 17:03:42 +08:00
743b65f57f Merge branch 'main' of https://github.com/ddcat-ai/open-ai-canvas
Some checks failed
Publish container images / Quality checks (push) Has been cancelled
Publish container images / Resolve build version (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (amd64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (arm64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-web (multi) (push) Has been cancelled
Publish container images / Build open-ai-canvas-yingce-agent (multi) (push) Has been cancelled
Publish container images / Publish open-ai-canvas-backend manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-web manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-yingce-agent manifest (push) Has been cancelled
Publish container images / Publish release assets (push) Has been cancelled
2026-10-14 16:28:42 +08:00
ddcat666
1a6b21d969 feat(create): 用户首页 - 整合最近画布与灵感大厅
压缩创作首屏,增加最近画布与创建入口,合并灵感大厅并完善响应式与可访问性。修复四个文件的 CI 格式问题,完成 Web checks 对应验证,更新发布版本为 v1.6.8.2。
2026-10-14 14:58:04 +08:00
ddcat666
4e2d7e6924 fix(web): 格式检查 - 修复素材选择与图片栅格测试格式 2026-10-14 12:15:21 +08:00
zamncn
4e3cdb1d2d fix(web): 图片参数 - 兼容后端能力切片为 null 的序列化 (#774)
后端将插件未声明的图片参数切片序列化为 null(Go nil slice),
imageParameterDefaults/normalizeImageParameters 的默认参数语法只兜 undefined,
null.filter 在创作页渲染时崩溃(TypeError: reading 'filter')。
读路径显式归一为空数组。
2026-10-14 12:03:52 +08:00
ddcat666
970942d7c9 fix(canvas): 图片工具 - 合并跨域导出修复 (#747) 2026-10-14 11:02:42 +08:00
ddcat666
14d7632d9a fix(canvas): 局部重绘 - 合并默认模型同步修复 (#746) 2026-10-14 11:00:00 +08:00
ddcat666
a1f8048521 fix(create): 素材参考 - 合并远端素材选择修复 (#740) 2026-10-14 10:57:11 +08:00
ddcat666
5d826822c9 build(release): 发布 v1.6.8.1 正式版本 2026-10-14 10:02:20 +08:00
ddcat666
4402e4965d feat(provider): 图像协议 - 新增千问 AI 平台协议插件 2026-10-14 09:50:03 +08:00
xupengchong-del
8ec7e5a9a7 feat(model-catalog): 模型选择器 - 支持展示往前推最近10次调用红绿状态指示条 (#768)
* feat(catalog): 模型可用性 - 模型窗口支持展示往前推最近10次调用的红绿状态条

在模型选择弹窗中,单纯展示 24h 成功率难以反映模型短期的真实状态。
现支持往前推取最近最多 10 次实际调用(create 请求)的执行结果:
- 成功一次展示绿色小点,失败一次展示红色小点,一共固定显示 10 个槽位点
- 槽位未发生调用时展示半透明灰色点;鼠标悬浮显示成功与失败次数的详细统计
- 后端从当前时刻往前推查询最近的 create 日志,按时间演进正序(最右侧为最新)输出 recentResults 切片

验证:
- 后端:`go test -v ./internal/app -run TestPublicModelAvailability` 通过
- 前端:`tsc --noEmit`、`bun run build` 通过;`bun test` 2210 项通过
- 新增 `web/test/model-picker-availability-runs.test.ts` 单测并完成反向验证(改坏时测试变红)
- 后端已无损平滑重启并监听 8080 端口

* feat(create): 模型选择器 - 左侧列表模型项直接展示10点可用性状态条

用户在模型选择弹窗中,希望无需点进二级卡片就能直接感知模型的可用率。
现将 10 点状态指示条挂载到左侧模型目录列表的每一项中:
- 在每一个模型的子描述栏右侧常驻展示 10 个圆点的状态条
- 成功=绿点、失败=红点、未调用=灰点;鼠标悬浮显示最近成功与失败统计
- 保持列表项排版整齐,小点与渠道描述自适应两端对齐

验证:
- `tsc --noEmit`、`bun run build` 通过
- `bun test` 2211 项测试通过(唯一失败为上游基线问题)
- `test/model-picker-availability-runs.test.ts` 补充左侧列表挂载断言并通过
2026-10-14 09:37:30 +08:00
Rou
054dab28cc fix(workbench): 模型目录与助手形象 - 修正 Live2D 首帧闪现和模型默认分组 (#773)
* fix(workbench): 模型目录与助手形象 - 修正 Live2D 首帧闪现和模型默认分组

进入画布时形象配置与 Live2D 首帧未就绪不再显示默认球,改为加载提示,失败才回退。

新导入模型一级目录默认未分类、二级渠道展示名默认跟随上游 ID;历史非空分组(含与模型 ID 同名)保留。

拉取模型弹窗默认只勾选已存在模型并移除逐项已存在字样;一级分组下拉点击即展开全部选项。

* style(web): 画布与模型导入 - 按 Prettier 规范格式化改动文件

修复 PR 中 Web checks 的格式化检查失败:Live2D 启动器 JSX、模型导入选择工具函数与 Live2D 加载测试按项目 Prettier 配置重新排版,不改变行为。

* test(web): Live2D 生命周期 - 修复 bun 1.3.9 下 text 导入与模块导入冲突

agent-live2d-lifecycle 曾用 with { type: text } 导入 live2d-avatar.tsx,bun 1.3.9 会按路径复用该缓存,导致新增的模块导入拿不到 Live2DAvatar 具名导出并报 SyntaxError。改为 readFileSync 读取源码文本,本地以 bun 1.3.9 复现并验证通过。
2026-10-14 09:36:01 +08:00
ddcat666
db8a301474 fix(image): 图片生成 - 打通分辨率选择并补充回归测试 2026-10-14 09:34:41 +08:00
ddcat666
6a118ae93b fix(agent): 图片尺寸 - 修复比例 preset 映射 2026-10-14 09:17:42 +08:00
ddcat666
7ce07a4c04 fix(workbench): 工具弹窗 - 修正内容宽度与响应式网格 2026-10-13 23:14:46 +08:00
ddcat666
477b9940d4 fix(agent): 工具合同 - 压缩描述恢复 schema 预算 2026-10-13 23:14:29 +08:00
ddcat666
cd304f592d fix(ci): 修复图片参数格式检查 2026-10-13 22:51:10 +08:00
ddcat666
5b3c7a546c chore(release): 发布 v1.6.8 2026-10-13 22:48:40 +08:00
ddcat666
32f3f1df5a fix(image): 补充分辨率档位编辑 2026-10-13 22:47:49 +08:00
ddcat666
17e9f5ed4e feat(workbench): 优化电商出品工作台 2026-10-13 22:45:58 +08:00
ddcat666
f6b60a3855 feat(workbench): 初始化内置工具目录 2026-10-13 22:44:31 +08:00
ddcat666
1f2f4da42b fix(agent): 审批暂停与图片参数异常恢复 2026-10-13 21:55:08 +08:00
米罗
cc53d4534f test(provider): 修正千问 AI 平台协议测试的文件末尾换行
gofmt 要求文件以换行结尾,缺失会导致 CI 的格式检查失败。
2026-10-13 21:33:17 +08:00
米罗
4290af0c29 feat(provider): 模型协议 - 新增千问 AI 平台(QianWenAI MAAS)图像协议插件
千问 AI 平台的网关域名 maas.qianwenaiapi.com 与阿里云百炼的
dashscope.aliyuncs.com 不是同一个入口,现有模板无法直接复用:把渠道
Base URL 改过去后,create 端点仍是百炼的 image-generation 路径。

单独提供 qianwenai-maas-image 插件,走平台自己的多模态端点
POST /api/v1/services/aigc/multimodal-generation/generation。报文形状与
百炼多模态一致(参考图放 input.messages[].content[].image,任务结果在
output.choices[0].message.content[].image),size 用“宽*高”,
enable_thinking 固定 false。
2026-10-13 20:56:49 +08:00
ddcat666
c68645931c docs(deploy): 服务器镜像部署与在线更新 2026-10-13 20:55:20 +08:00
ddcat666
fb03cfca1e fix(agent): 媒体准入参数结构化纠错 2026-10-13 20:54:44 +08:00
huiku
7466119867 feat(image): 以插件声明统一图片参数、尺寸选择与定价合同 (#760)
* feat(image): 图片参数 - 统一插件声明配置与生成合同

* docs(image): 图片参数 - 说明声明合同与验证边界

* fix(plugins): 图片声明 - 保留内联素材支持并同步制品文档

* fix(image): 参数合同 - 对齐审批意图和尺寸预检调用方

* fix(image): 调用链 - 保留公开意图并接通独立分辨率

* fix(image): 图片参数 - 补齐分辨率接线与目录价格投影
2026-10-13 19:18:21 +08:00
Medivh
88de4ce422 feat(inspirations): 灵感库 - 将内置英文提示词统一为中文 (#763)
* feat(inspirations): 灵感库 - 统一中文正文入口并校验译文版本

* feat(inspirations): 灵感库 - 发布完整中文提示词并阻止旧译文覆盖

统一 1319 条外部提示词和 329 条画廊引用,保留来源与模板参数;校验全部原文摘要,防止上游更新后误用过期中文。

验证:Bun 1.3.9 全量 2261 项测试通过,前端构建与 lint 通过,目录身份及媒体元数据对比无变化。
2026-10-13 19:12:44 +08:00
ddcat666
26dfb8d91b fix(migrations): 数据库升级 - 兼容旧工作台 v51 账本 2026-10-13 13:38:08 +08:00
ddcat666
ea6676f449 fix(release): 正式版本 - 修复 SSRF 与 Quality checks,发布 v1.6.6.1 2026-10-13 12:55:30 +08:00
xupengchong-del
ede6cc1e70 fix(create): 创作页 - 上一条还在生成时无法提交下一条 (#754)
提交闸门覆盖了整个生成过程:`submit()` 会一直等到任务出结果才在 finally 里放闸。
于是上一条视频还在跑时点发送会被 `tryAcquire()` 静默拒绝——没有提示、没有反应,
用户只看到按钮在转,以为坏了;重试走的是同一条 submit 路径,一并被挡住。

闸门本来只需要防住「同一次创建任务被重复触发」(连点、回车连击),不该跨越整个
生成过程:

- 闸门改为令牌制:`tryAcquire()` 返回令牌,`release(token)` 只对持有者生效,
  避免并发提交互相解锁;
- 任务一旦建成(bindTask)立刻放闸,与已有的 `busy` 释放时机对齐,因此上一条在
  生成时也能继续提交下一条;
- 被拒绝时给出提示,而不是静默丢弃(这条以前完全没反馈);
- 同步更新闸门单测,补上持有者令牌的并发用例。

验证:`tsc --noEmit`、ESLint、`bun run build` 通过;`bun test` 2204 通过,
唯一失败项 agent-api-reliability 在纯净上游基线上同样失败,与本改动无关。
2026-10-13 12:13:27 +08:00
ddcat666
237b73a1a3 feat(*): 影视剧作工坊 - 合入完整内置 Skill 并提交工作区剩余改动 2026-10-13 11:23:15 +08:00
5e5562fe85 chore(fork): 本仓库定制 - 端口 7380/7381、AGENTS 约定、docker-compose、移除 backend/server
Some checks failed
Publish container images / Quality checks (push) Has been cancelled
Publish container images / Resolve build version (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (amd64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (arm64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-web (multi) (push) Has been cancelled
Publish container images / Build open-ai-canvas-yingce-agent (multi) (push) Has been cancelled
Publish container images / Publish open-ai-canvas-backend manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-web manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-yingce-agent manifest (push) Has been cancelled
Publish container images / Publish release assets (push) Has been cancelled
2026-10-13 11:17:32 +08:00
ddcat666
1f3f2c6020 feat(*): 生图与视频工作台 - 新增独立生成流程并整合平台配置 2026-10-13 09:04:34 +08:00
ddcat666
4c1d2b4012 feat(auth): 用户账户 - 完善个人资料与登录日志 (#752)
Co-authored-by: wuligao <1247662379@qq.com>
2026-10-13 05:31:30 +08:00
MasterChiefCN
8de62b1a49 fix(canvas): 图片工具 - 修复裁剪和尺寸调整的跨域导出 2026-10-12 16:20:08 +08:00
MasterChiefCN
3982d7f91c fix(canvas): 局部重绘 - 同步默认显示模型与生成模型 2026-10-12 15:56:48 +08:00
xupengchong-del
e70fe1b9c9 feat(admin): 系统模型 - 「拉取模型」弹窗支持搜索 (#743)
部分上游端点会返回几百个模型,弹窗里铺满复选框后只能靠肉眼滚动查找,
没法按厂商或系列收窄。

- 弹窗顶部新增搜索框(大小写不敏感的子串匹配、自动聚焦、可一键清空);
- 搜索时「全选 / 取消选中」只作用于当前匹配集合,按钮文案带出匹配数量;
  关键字之外的勾选状态保留。无关键字时与改动前行为完全一致;
- 无命中时列表区显示空态;汇总行补充匹配数与其中已勾选数。

筛选与批量勾选规则抽到 channel-model-import-selection.ts 并配套单测。
2026-10-12 11:05:49 +08:00
tanzui
16b70709b4 fix(canvas): 画布同步 - 修复节点可选字段基线丢失和失败重试 (#744)
Co-authored-by: tanzui <305375675@.com>
2026-10-12 11:05:09 +08:00
MasterChiefCN
ec504e031c fix(create): 素材参考 - 允许选择未缓存的远端素材 2026-10-12 09:56:11 +08:00
ddcat666
27c8066e6d fix(*): 质量检查 - 修复预演保存、增量同步与缺失资源恢复 2026-10-12 00:37:15 +08:00
ddcat666
298bee1fa9 feat(*): Agent工作流 - 完善审批、分镜协作与资源交互体验 2026-10-11 22:36:48 +08:00
ddcat666
435bc487cf fix(api): 模型计价 - 兼容图片分辨率字段拼写并校验能力 2026-10-11 22:36:48 +08:00
ddcat666
a8edb6f27f perf(canvas): 画布渲染 - 增加节点渲染预算与性能模式控制 2026-10-11 22:36:48 +08:00
ddcat666
5f359f2b1d feat(canvas): 画布同步 - 新增操作事务、预演保存与并发恢复能力 2026-10-11 22:36:47 +08:00
Catlaxy AI
6dedc5973c fix(database): 数据库连接 - 消费 libpq keepalive 参数并默认限制闲置事务 (#737)
pgx 不识别 DSN 中 libpq 的 keepalives* 参数,会作为服务端运行参数发送导致连接被拒;改为在建连前消费并应用到 TCP 拨号器。
未显式配置时为每条连接默认设置 idle_in_transaction_session_timeout=5min,避免卡住的事务长期持锁;DSN 显式配置时以 DSN 为准。
建连钩子先复制共享的 RuntimeParams,避免多条连接之间累积修改。

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:04:27 +08:00
Catlaxy AI
28f2362e3e fix(handler): 短剧开关 - 关闭短剧时保留角色库、画风与声音接口 (#736)
短剧功能开关原本挂在整个 RegisterProjectRoutes 上,连画布共用的 /characters、
/style-profiles、/voice-profiles 也一起返回 403,导致关闭短剧后画布的角色库、我的画风和声音不可用。
将这三类个人资料库路由拆到 RegisterLibraryRoutes,在开关之外注册;/projects 系列仍受开关控制,登录校验不变。

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:03:57 +08:00
俗人
7f50b4507a feat(workspace): 侧边栏 - 主页与管理后台侧栏样式统一 (#733)
* fix(admin): 侧栏收起模式 - 修复导航图标未居中

AdminTooltip 在收起模式下用 inline-flex span 包裹 NavLink,
导致 NavLink 无法撑满容器宽度,justify-content: center 不生效。
将 span 强制为 display: block; width: 100% 修复图标居中。

* feat(workspace): 侧边栏 - 主页与管理后台侧栏样式统一

主页侧边栏:
- 顶部收起/展开按钮移除,收起时顶部展示平台 logo,logo 与文字内容居中
- 收起/展开按钮移至底部:展开时位于账户信息右侧,收起时位于其下方居中
- 按钮尺寸调整为 40px(展开)/ 48px(收起),与账户、签到按钮协调
- 修复纯图标按钮悬浮时全局规则带来的 accent 光晕,悬浮表现与导航菜单一致
- 个人信息按钮悬浮样式与导航菜单统一(--user-surface-hover,支持暗色主题)

管理后台侧边栏:
- 导航链接高度、内边距、圆角、图标尺寸对齐主页侧边栏(44px 高、12px 内边距)
- 收起态导航项自适应填满内容区,修复纵向滚动条占位导致的横向滚动
- 收起/展开按钮从侧栏边缘悬浮胶囊改为底部按钮位(与主页一致)
- 顶部品牌区改为居中布局,收起时展示 logo

* style(admin): 侧栏 - 修复 CI 格式检查

admin-chrome.css 中 cubic-bezier 数值补前导零,通过 Prettier 检查。
2026-10-11 22:02:54 +08:00
Yang
74eb83e92a fix(inspirations): 灵感页 - 修复刷新重定向与面包屑标题 (#731) 2026-10-11 22:02:37 +08:00
ddcat666
4f183674d5 chore(release): 版本发布 - publish v1.6.5 2026-10-10 20:20:53 +08:00