Commit Graph

636 Commits

Author SHA1 Message Date
Catlaxy AI
9bc255467d fix(upload): 分片上传 - 先预留配额并原子提交容量 (#679)
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
2026-10-06 09:42:48 +08:00
Catlaxy AI
3698249254 fix(media): 资源交付 - 按内容识别上传类型并统一重试与附件交付 (#678)
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
2026-10-06 09:35:50 +08:00
tanzui
9597a9b4ed fix(agent): 视频生成 - 支持 Agent 设置首尾帧 (#696)
* fix(agent): 视频生成 - 支持 Agent 设置首尾帧

* fix(agent): 工具参数 - 精简首尾帧说明并保持体积预算

---------

Co-authored-by: tanzui <305375675@.com>
2026-10-06 09:28:22 +08:00
xiaomuclaw
29cc6b4716 fix(platform): API 调用日志截断对齐 UTF-8 字符边界 - 防止截断报文写库失败导致订单误标 uncertain (#695)
truncateAPICallPayload 原先按字节硬切超长报文,切点多字节字符时会产生
非法 UTF-8,写 PostgreSQL 报 invalid byte sequence,调用日志入库失败并
连锁导致订单被标为 uncertain。

- 截断点回退到最近的 UTF-8 字符边界
- 对源报文本身的非法字节做 strings.ToValidUTF8 兜底
- 补充回归测试:中文/emoji/中日韩混排/非法字节等场景

Co-authored-by: xiaomuclaw <282836183+xiaomuclaw@users.noreply.github.com>
2026-10-06 09:28:17 +08:00
Catlaxy AI
fe2b892f1f feat(skills): 技能管理 - 支持后台维护一级分类 (#694)
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
2026-10-06 09:28:03 +08:00
Catlaxy AI
fb4af9bd34 feat(skills): 技能管理 - 增加可选的平台子分类策展 (#693)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:24:21 +08:00
qihang ma
f6003c1c88 fix(protocol): Grok 生图 - 让 response_format 开关生效 (#692) 2026-10-06 09:24:16 +08:00
tanzui
53ee5b0cbd fix(projects): 短剧项目 - 修复同名创建重试 (#691)
Co-authored-by: tanzui <305375675@.com>
2026-10-06 09:24:11 +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
Catlaxy AI
67e2e1ebbf test(storage): 使用进程内 DNS 夹具消除离线测试依赖 (#689)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:24:00 +08:00
Catlaxy AI
fba4b7c693 fix(settings): 原子发布首次创建的存储加密密钥 (#688)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:23:56 +08:00
Catlaxy AI
6f4267e900 fix(skills): 内置技能 - 展示媒体兼容 snake_case 字段 (#687)
内置技能 frontmatter 的 showcaseMedia 使用 showcase_uri/showcase_url,加载器直接解码到 camelCase 的 SkillShowcaseMedia,封面地址在入库前就丢失;当前 71 个内置技能中有 66 个受影响,接口返回的展示媒体地址为空(读取端已有的 snake_case 兼容无法补回入库前丢失的值)。

- 内置加载器同时接受 snake_case 与 camelCase,统一输出 camelCase,数据库与公开 API 契约不变
- 同一字段两种写法的值不一致时记录技能 ID 与原因并跳过该技能,其他技能继续加载;showcaseMedia 不是数组时同样跳过
- 加载器增加接受 fs.FS 的内部入口,正式入口仍使用 embed FS
- 补充测试:自带最小 fixture 与真实内置技能的封面地址保留、字段格式与冲突、跳过隔离与日志

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:23:51 +08:00
Catlaxy AI
433a998c10 fix(admin): 编辑停用用户时清除全部登录会话 (#686)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:23:46 +08:00
Catlaxy AI
aa1ba12a0b fix(auth): 登录时间写回保留并发停用状态 (#685)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:23:42 +08:00
Catlaxy AI
ad766bb643 fix(platform): 公开既有账号文件容量上限 (#684)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:23:37 +08:00
Catlaxy AI
19841cb9c5 fix(auth): 注册唯一性检查识别 Gmail 邮箱别名
合并 #681:注册唯一性检查识别 Gmail 邮箱别名
2026-10-06 09:23:04 +08:00
Catlaxy AI
a71e03b131 fix(auth): 登录限流按解析后的用户身份共享计数
合并 #680:登录限流按解析后的用户身份共享计数
2026-10-06 09:22:29 +08:00
ddcat666
112916587c refactor(canvas): 预演台 - 重构工作台与场景交互链路 2026-10-06 09:11:15 +08:00
jiabx
4b1ce20d2d fix(agent): 审批暂停 - 暂停后不再接受新的模型步骤 (#675)
运行时在工具进入审批时调用 session.abort(),但中止是异步生效的,SDK 可能抢在它生效前再开一轮并请求 /model。服务端照常入队:多计一次费,返回的新工具调用顶掉待审批的调用,保存时以「approval does not match current call」的检查点校验失败,整轮中断,用户还没来得及审批。

三处防护:运行时在暂停后不再发模型请求;服务端在等审批期间拒绝模型步骤(不入队、不改状态);已因审批暂停的会话收尾报错不再判运行失败,由审批结论接管。
2026-10-05 13:56:07 +08:00
jiabx
a7f4b94525 fix(agent): 媒体准入 - 能力校验拒绝的参数改为可纠正的参数错误 (#674)
复现:generate_media 把 size 写成 9:16 这类比例值(模型只接受像素尺寸),或 durationSeconds 低于模型下限时,工具结果只有一句「工具执行失败」,整轮终止;模型不知道错在哪个参数,用户要求重试时原样再错。

原因:尺寸、时长、比例、分辨率不在模型支持范围时,能力校验的拒绝和其它准入失败一样被包成不可重试的 media_admission_failed。

修法:这类拒绝改报字段级参数错误,带上原因与取值来源,走已有的 fix_arguments 纠正通道;仍然没有任务被提交,也不产生费用。另外把准入拒绝的原始原因写进服务端日志(工具结果里的原因会脱敏,日志内容是服务端校验错误文本,不含用户内容或密钥)。
2026-10-05 13:43:08 +08:00
naidalao
7c3f06b151 feat(payment): 兑换码 - 增加可配置联动小铺入口 (#668)
Co-authored-by: linxi <linxi@enjoysoftware.cn>
2026-10-05 13:41:17 +08:00
jiabx
b4ba329ad5 fix(agent): 插话 - 独立运行时路径的送达与退回 (#673)
复现:Agent 运行中发送插话,独立 Agent 运行时(Pi)下既不送达模型也不退回用户,插话一直停在待送队列里。

原因与修法:插话送达点原本只有旧 Go 执行循环(advanceCloudAgent 开步前出队);Pi 运行时接手执行后调度循环不再推进。现把 Pi 路径的送达搬到 /model 模型步:出队、规范历史追加与 delivered 事件同在入队的一次 CAS 写入里,响应携带 steeringMessages 交给运行时 session.steer。完成、失败、取消、审批拒绝与步数耗尽统一退回;最终回答之后的插话在预算富余时续跑一步。完成闸一次带走多条插话时,合并后的续跑提示词也记入指纹,避免被恢复闸当成遗留提示词清空。
2026-10-05 13:39:57 +08:00
jiabx
10437bdf68 fix(agent): 看图 - 独立运行时的模型步骤带上获准图片清单 (#671)
复现:Agent 调用 canvas_inspect_image 看图后,下一步模型调用报「模型协议引用了未获准的图片」,整轮失败;只要 Agent 看过一次图就必然复现。

原因:看图之后服务端规范历史里会多一条带 resource: 图片占位的 user 消息;旧的 Go 执行循环在发请求前把这些占位对应的资源写进 input.referenceImages,独立 Agent 运行时(Pi)的模型步骤漏了这一步,预检发现占位不在获准清单里就拒绝了请求。

修法:Pi 路径的模型步在组装任务输入前复用同一个 cloudAgentImageReferences 校验与装配(资源归属、大小、图片数量上限),把获准图片清单随请求发出。
2026-10-05 13:28:24 +08:00
jiabx
907a3eb3fb fix(agent): 审批恢复 - 补齐被审批暂停跳过的并行工具调用结果 (#670)
模型一步里发出多个工具调用、排在前面的进入用户审批时,运行时中止本轮,后面的调用既没执行也没有结果;批准后恢复运行,历史里留着有调用没结果的条目,整轮以「工具调用缺少结果」失败。转换前给这些调用补一条「未执行」结果:历史恢复合法,模型也知道那一步没做过,需要时会重新调用。

后端重启后恢复运行等场景下会被直接采用的服务端规范历史同样可能留着这类条目,一并补齐。
2026-10-05 13:28:14 +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
f43c981c30 feat(canvas): 云端 Agent 画布 - 支持分镜连接、脚本节点与资产关系持久化 2026-10-04 02:21:36 +08:00
ddcat666
f170649e9d feat(agent): 云端 Agent 运行时 - 完善 Pi 桥接、上下文压力与临时故障重试 2026-10-04 02:20:30 +08:00
Catlaxy AI
53f0ed0730 fix(agent): Agent 取消 - 停止运行前先校验任务归属(#655)
fix(agent): Agent 取消 - 停止运行前先校验任务归属
2026-10-03 02:35:44 +08:00
ddcat666
f030204541 feat(media): Dola-pool 视频插件 - 新增独立 Seedance 任务协议并避免 Kling 轮询路径不兼容
新增 Dola-pool 官方插件包,按其接口文档配置创建、轮询和视频下载路径,并补充显式 duration、参考图映射与协议契约测试。
2026-10-02 18:10:34 +08:00
ddcat666
42f14cd73e fix(agent): 模型任务恢复 - 启用孤儿步骤任务接管避免测试超时 2026-10-01 14:11:20 +08:00
ddcat666
839db1c319 fix(agent): 图片审批 - 修改生成参数时不再因容量检查自锁
审批落库时已经持有存储锁,干跑创建任务又申请同一把锁。互斥锁不能重入,修改图片参数会一直停住,后端测试也会在 20 分钟后超时。
2026-10-01 13:18:06 +08:00
ddcat666
3aa874a70c feat(platform): Agent 与媒体能力 - 完善角色卡、音频协议与任务恢复链路 2026-10-01 09:42:51 +08:00
Rou
a6e3f3cca6 fix(platform): 存储与 Agent - 修复配额准入、Live2D 与用户筛选 2026-09-30 18:28:19 +08:00
ddcat666
eb13f73626 fix(canvas): Agent 模型调用 - 修复关闭思考被误判为开启 2026-09-30 14:39:56 +08:00
ddcat666
4c0aa682a5 fix(media): 媒体恢复 - 保留音频多结果并兼容单数响应 2026-09-30 14:39:56 +08:00
ddcat666
b080674524 feat(media): 音频生成 - 支持 IndexTTS2 情感控制参数 2026-09-30 14:39:56 +08:00
ddcat666
b2184a6e4a fix(deploy): 在线更新 - 兼容旧版 Host Updater 升级到独立 Agent 容器
v1.5.8.x 的 Host Updater 只注入 backend/web 镜像且不生成 Agent Token,目标 Compose 强制要求 CANVAS_YINGCE_AGENT_IMAGE 与 YINGCE_AGENT_TOKEN 导致预检失败。部署 Compose 缺省时回退到同版本 Agent 镜像标签与更新器 Token,新版更新器后续更新仍写入 digest 与独立 Token;拉取阶段同时拉取 yingce-agent 镜像,避免摘要校验找不到本地镜像。
2026-09-30 14:39:55 +08:00
yepwait
6bbc2849dd fix(canvas): 角色卡引用 - 修复三视图读取与本地图片生成 2026-09-30 11:47:00 +08:00
ddcat666
fda3b84277 fix(web): Web 检查 - 格式化拆分模块并修正源码断言
拆分出的前端模块未按 Prettier 格式化导致 CI 格式检查失败;源码断言改为忽略空白差异,导演台引导组件恢复别名导入。同时移除误提交的分析草稿、pnpm 锁文件和调试测试。
2026-09-30 10:32:17 +08:00
ddcat666
7f5d87ef1a refactor(*): 平台架构 - 拆分后端领域模块与画布前端组件并补充测试 2026-09-30 10:01:39 +08:00
ddcat666
e0a2697c60 fix(canvas): 画布背板 - 明确背板能力说明并允许拖动 Markdown 节点
背板能力卡改为说明可移动、可折叠的视觉分区用途与边界,Agent 能据此判断何时用背板归组。Markdown 节点正文不再拦截 mousedown,拖动节点和拖入背板恢复正常。
2026-09-30 03:42:36 +08:00
ddcat666
0636cf7c0c feat(skills): 内置技能 - 补齐总纲引用的方法卡与第三方许可声明,升级影策短剧工作流
内置技能包补齐 SKILL.md 名录中引用的 cards/*.md 方法卡,并为改编自开源项目的包附上 THIRD-PARTY-LICENSES.md。影策短剧制作工作流升级到 1.1.0,新增输入分流、故事圣经、状态机与镜头连续性硬门禁。新增测试拦截总纲引用了但包内缺失的方法卡。
2026-09-30 03:42:02 +08:00
ddcat666
220cc543e1 fix(agent): Agent 运行 - 截断工具参数纠偏重试并修复 ask_user 后续跑与清单状态
模型返回不完整的工具参数 JSON 时,Pi 桥接带 truncated_tool_arguments 纠偏上下文重做同一步,不再把整轮判为中断。ask_user 进入提问后结束本轮 Pi 调用;续轮会话快照缺失时改用服务端 canonical 历史。继承的待办清单挂到新一轮,等待用户确认时清单显示暂停而非停止。
2026-09-30 03:41:25 +08:00
ddcat666
10ea9d3fa0 feat(canvas): Agent 审批 - 节点直接生成时自动关闭同节点的待审批任务
用户在画布节点上直接提交生成后,同画布 Agent 对该节点等待中的 generate_media 审批关闭为 superseded_by_node,Agent 带着「用户已手动提交」的结果继续,不重复提交、不扣费。审批卡片识别目标节点正在生成时禁用「同意执行」并提示原因。
2026-09-30 03:40:14 +08:00
ddcat666
4272b0e499 fix(media): 资源访问 - 签名地址有效期跟随后台策略并放开服务器访问地址限制
平台展示与厂商读取的签名地址有效期改为读取「资源与请求策略」,默认均为 4 小时,不再硬编码 5 分钟。服务器访问地址只校验 http/https 格式,允许本机、局域网或 HTTP 地址,模型读取平台资源不再强制 HTTPS 公网地址。
2026-09-30 03:38:31 +08:00
ddcat666
4957f8bc22 feat(admin): Agent 并发 - 后台可调同时对话上限并展示 Agent 服务状态
新增运行策略 agentMaxSessions(默认 30,范围 1-64),保存后同时下发到内嵌进程闸门与独立 yingce-agent 的 /v1/limit,降低上限不会中断已开始的对话。系统性能页展示 Agent 服务健康、进行中/排队数量,并可直接修改上限。
2026-09-30 03:37:54 +08:00
ddcat666
a0f025aa96 feat(platform): 日志管理 - 统一日志出口并屏蔽查询与 Agent 流式事件日志
新增 internal/logging,slog、标准库 log、GORM 与 Gin 访问日志共用同一 Handler,由 CANVAS_LOG_LEVEL / CANVAS_LOG_FORMAT 控制。info 级别不再输出成功的查询类请求、成功 SQL、message_end 等 Agent 流式事件和常规画布自动保存;4xx/5xx、慢请求、慢 SQL、SQL 失败与 panic 仍会记录,SQL 不内联参数值。
2026-09-30 03:33:34 +08:00
ddcat666
cb146d27a1 feat(deploy): 画布 Agent - 独立 yingce-agent 容器并修复运行中断
生产会话不再因 stdout 管道提前关闭被误判失败。设置 YINGCE_AGENT_URL 后只走独立容器,失败不回退到内嵌进程。
2026-09-29 21:41:36 +08:00
ddcat666
22f8d25d26 fix(deploy): 修复 Host Updater Compose 项目隔离 2026-09-29 12:26:02 +08:00