chick
af297ab4de
fix: remove antd deprecated prop warnings
2026-06-01 23:59:16 +08:00
chick
92c1ec696e
chore: add local source install script
2026-06-01 23:43:53 +08:00
chick
f66540a273
feat: add sub2api compatibility
2026-06-01 23:43:53 +08:00
kunkun
5f59b4bed3
Merge pull request #20 from aaronjmars/security/open-redirect-guard
...
fix(security): block open redirect in login redirect target
2026-06-01 11:17:39 +08:00
HouYunFei
e9fe5b0651
feat(video): 新增火山方舟 Agent Plan 接入 Seedance 2.0 视频生成功能
...
- 支持通过火山方舟 Agent Plan 接入 Seedance 2.0 视频生成,后端自动适配任务创建、轮询和结果回填接口
- 视频创作台和画布视频生成支持 Seedance 分辨率、比例、时长、生成声音、水印及参考图片、参考视频、参考音频输入
- 画布新增音频节点,并新增参考素材上传与公开访问接口,配合 PUBLIC_BASE_URL 供火山方舟拉取本地参考素材
- 管理后台模型渠道支持 Agent Plan Base URL 归一、Seedance 模型配置提示、渠道探测超时和已启用模型自动同步到公开可用模型
- 图片/视频参考素材按 图片1、视频1、音频1 编号注入提示词,图像请求尺寸和质量参数在请求前归一校验
- 修复 Docker 部署时 SQLite 相对路径可能写入错误目录的问题,并优化 AI 上游鉴权、限流和 Seedance 敏感参考视频错误提示
2026-06-01 11:03:46 +08:00
HouYunFei
3aee6d1eee
Merge branch 'fork/stupid-h4er/feat/ark-agentplan-seedance-video'
...
# Conflicts:
# docs/pending-test.md
2026-06-01 10:53:16 +08:00
stupid-h4er
c3b1ba2943
feat: label image references in generation
2026-05-31 00:56:40 +08:00
HouYunFei
c63b843ff1
chore(version): 更新版本号从 v0.1.0 到 v0.1.1
...
- 将 VERSION 文件中的版本号从 v0.1.0 更新为 v0.1.1
2026-05-30 13:13:13 +08:00
HouYunFei
50a3a94876
chore(version): 更新版本号从 v0.1.0 到 v0.1.1
...
- 将 VERSION 文件中的版本号从 v0.1.0 更新为 v0.1.1
2026-05-30 13:09:01 +08:00
HouYunFei
6867f3e1e6
feat(config): 支持通过URL参数自动配置API设置
...
- 新增通过URL查询参数baseUrl/baseurl和apiKey/apikey自动填充配置的功能
- 实现读取参数后从地址栏自动移除相关参数的安全机制
- 添加后台是否允许自定义渠道的检查逻辑
- 集成Ant Design的消息提示和对话框组件用于用户反馈
- 更新文档说明New API自动配置的使用方法和参数格式
- 优化配置初始化流程以处理外部软件跳转场景
2026-05-30 13:08:43 +08:00
haer
78738e060f
Merge branch 'basketikun:main' into feat/ark-agentplan-seedance-video
2026-05-29 23:48:13 +08:00
stupid-h4er
923e21c581
fix: normalize gpt image request size
2026-05-28 14:28:53 +08:00
HouYunFei
e740da6702
chore(Dockerfile): 将基础镜像从 Bun 切换到 Node.js 并更新启动命令
2026-05-28 10:36:27 +08:00
aeonframework
5ca5b72b01
fix(security): block open redirect in login redirect target
...
The login redirect accepted any value beginning with a single slash, so a
protocol-relative URL such as "//evil.com" (or a backslash variant) slipped
through and the browser resolved it to an external site. Both the Go OAuth
state decoder and the web login page used the same prefix-only check, so an
attacker could send a victim to /login?redirect=//evil.com — or supply it via
the Linux.do OAuth redirect param — and bounce them off-site after login.
Harden both layers: strip Tab/CR/LF (which browsers ignore inside URLs) and
reject protocol-relative and backslash-prefixed targets, allowing only genuine
same-site relative paths.
Detected by Aeon + semgrep (go.lang.security.injection.open-redirect).
Severity: medium
CWE-601 (URL Redirection to Untrusted Site)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-27 20:06:22 +00:00
stupid-h4er
76461e6dba
fix: clarify seedance reference video failures
2026-05-27 22:34:46 +08:00
stupid-h4er
6d185a6d93
fix: persist docker sqlite settings path
2026-05-27 22:11:36 +08:00
stupid-h4er
74ea4b81f2
fix: improve seedance reference handling
2026-05-27 21:55:05 +08:00
stupid-h4er
4bffb55695
feat: add seedance media params and model visibility
2026-05-27 13:02:36 +08:00
stupid-h4er
871bedc072
fix: add timeout for admin channel probes
2026-05-27 11:00:20 +08:00
stupid-h4er
3be0df0df6
fix: clarify ark agent plan model discovery
2026-05-27 10:52:59 +08:00
stupid-h4er
fa9a3c1920
fix: normalize ark agent plan base url
2026-05-27 10:08:01 +08:00
stupid-h4er
1b557a86d7
fix: skip text test for ark seedance channels
2026-05-27 10:01:15 +08:00
stupid-h4er
e37597f432
docs: add ark agentplan setup notes
2026-05-26 23:10:57 +08:00
stupid-h4er
1b2d473d9c
feat: add video node preview
2026-05-26 23:10:49 +08:00
stupid-h4er
c9fea71821
feat: add ark seedance video generation
2026-05-26 23:10:41 +08:00
stupid-h4er
1493aed81d
chore: inspect ai generation flow
2026-05-26 22:19:38 +08:00
HouYunFei
fcde508482
chore(version): 更新版本号并完善变更日志
...
- 更新版本号从 v0.0.9 到 v0.1.0
- 在变更日志中添加 v0.1.0 版本记录
- 记录优化我的画布、我的素材导出功能
- 记录修复画布撤销、配置节点等 bug 问题
2026-05-26 16:05:40 +08:00
HouYunFei
7e5179c54f
fix(canvas): 解决画布节点撤销操作后图片丢失问题
...
- 添加 cleanupCanvasFiles 回调函数用于清理画布资源
- 将 cleanupAssetImages 替换为 cleanupCanvasFiles 以统一资源清理逻辑
- 在节点变更和画布清空时使用新的清理函数
- 修复撤销操作后节点信息恢复但本地图片数据被清理的错误
2026-05-26 15:50:36 +08:00
HouYunFei
fda8efb362
fix(canvas): 修复画布视频设置浮层遮挡和交互问题
...
- 将视频设置浮层改为挂载到页面根层级并使用自建浮层交互
- 避免被节点悬浮工具栏遮挡或点击面板内容时意外关闭
- 在画布配置节点组件中为视频设置浮层添加 placement 属性
- 更新文档描述以反映浮层交互方式的改进
2026-05-26 15:28:35 +08:00
HouYunFei
7ac1fea662
refactor(canvas): 重构画布图像设置弹窗组件
...
- 使用 Portal 重新实现弹窗渲染机制
- 移除 Ant Design Popover 组件依赖
- 添加手动定位逻辑替代自动溢出调整
- 优化外部点击关闭事件处理机制
- 修复弹窗位置计算和滚动同步问题
- 简化组件参数并改进 DOM 结构
2026-05-26 15:17:29 +08:00
HouYunFei
005c396660
feat(image): 优化图片生成记录持久化和导出功能
...
- 新增生成记录配置持久化功能,保存提示词、参考图、模型、质量、尺寸和张数配置
- 结果图写入本地图片存储后只保存 storageKey,减少存储空间占用
- 点击历史记录可回填生成配置并预览结果
- 优化我的画布、我的素材导出功能
- 新增视频创作台页面
- 修复图片节点size参数传递问题
- 添加完整的生成日志数据结构和序列化处理
- 实现图片存储和删除的批量操作支持
2026-05-26 14:44:06 +08:00
HouYunFei
bf66a25936
feat(image): 优化图片生成记录持久化和导出功能
...
- 新增生成记录配置持久化功能,保存提示词、参考图、模型、质量、尺寸和张数配置
- 结果图写入本地图片存储后只保存 storageKey,减少存储空间占用
- 点击历史记录可回填生成配置并预览结果
- 优化我的画布、我的素材导出功能
- 新增视频创作台页面
- 修复图片节点size参数传递问题
- 添加完整的生成日志数据结构和序列化处理
- 实现图片存储和删除的批量操作支持
2026-05-26 14:09:10 +08:00
HouYunFei
de25ef515e
feat(assets): 使用 file-saver 库优化文件下载功能
...
- 引入 file-saver 库替代手动创建下载链接的方式
- 在 asset-transfer.ts 中使用 saveAs 替代 URL.createObjectURL 和手动点击链接
- 在 canvas-export.ts 中使用 saveAs 替代原有的文件下载逻辑
- 更新 package.json 添加 file-saver 依赖
- 更新 bun.lock 文件同步依赖变更
2026-05-26 13:21:52 +08:00
HouYunFei
9311b8a92b
feat(asset): 添加素材导入导出功能
...
- 实现了素材批量导出为包含 assets.json 和媒体文件的压缩包
- 实现了从压缩包导入素材到本地存储的功能
- 在素材页面添加了导出素材和导入素材的按钮入口
- 创建了 asset-transfer 模块处理素材打包和解包逻辑
- 支持图片和视频文件的存储路径映射和恢复
- 添加了文件安全命名和 MIME 类型识别功能
2026-05-26 13:13:05 +08:00
HouYunFei
1fb782819b
feat(canvas): 实现画布项目导出为ZIP压缩包功能
...
- 新增 canvas-export 工具模块,支持将画布项目打包为 ZIP 文件
- 修改导出功能,将原来的 JSON 格式改为 ZIP 压缩包,包含 projects.json 和相关媒体文件
- 添加对 fflate 库的依赖用于 ZIP 文件处理
- 更新画布库页面,支持多选项目批量导出
- 修改导入功能以支持读取新版 ZIP 格式的画布项目
- 新增 zip 处理工具库,封装压缩和解压操作
- 扩展文件存储服务,添加获取和设置 Blob 对象的方法
- 更新 AGENTS.md 文档,添加标准库使用原则
2026-05-26 13:00:16 +08:00
HouYunFei
567ead89b1
feat(canvas): 新增视频创作台页面并优化未登录状态的用户界面显示
...
- 新增视频创作台页面
- 修复图片节点size参数传递问题
- 未登录状态下画布右上角不再显示用户头像菜单、用户名称、算力点余额和退出登录入口
- 未登录状态下改为显示登录入口和快捷键按钮
- 用户状态组件中用户名默认值从"用户"改为空字符串
- 根据用户登录状态条件渲染不同的界面元素
2026-05-26 11:35:00 +08:00
HouYunFei
9754af3bf9
fix(image): 修复图片生成和编辑请求中尺寸参数传递问题
...
- 添加 resolveRequestSize 函数处理尺寸参数解析逻辑
- 将 pixelSize 变量重命名为 requestSize 以提高代码可读性
- 修复当尺寸为 auto 时不发送 size 参数的功能
- 确保所有非 auto 尺寸值都会正确传递到请求中
- 更新图片生成和编辑函数中的尺寸参数处理逻辑
2026-05-26 11:26:27 +08:00
HouYunFei
778fd065ec
fix(image): 修复图片生成和编辑请求中尺寸参数传递问题
...
- 添加 resolveRequestSize 函数处理尺寸参数解析逻辑
- 将 pixelSize 变量重命名为 requestSize 以提高代码可读性
- 修复当尺寸为 auto 时不发送 size 参数的功能
- 确保所有非 auto 尺寸值都会正确传递到请求中
- 更新图片生成和编辑函数中的尺寸参数处理逻辑
2026-05-26 10:19:41 +08:00
HouYunFei
f9e4c92ff1
refactor(video): 重构视频配置参数标准化逻辑
...
- 将视频配置参数标准化逻辑提取为独立的 buildVideoConfig 函数
- 添加视频秒数、尺寸、清晰度的标准化验证函数
- 限制视频秒数只允许 6/10/12/16/20 秒的预设值
- 验证视频尺寸格式是否为标准的宽高比格式
- 优化视频生成 API 调用的错误处理机制
- 统一错误消息显示,修复页面残留生图参数影响视频请求的问题
2026-05-25 17:49:12 +08:00
HouYunFei
1be6b4fa29
feat(video): 新增视频创作台页面
...
- 添加 /video 页面路由及完整视频生成界面
- 集成视频生成 API 调用及本地存储功能
- 实现提示词、参考图、视频参数设置界面
- 添加生成结果预览、下载和保存素材功能
- 支持本地生成记录管理及历史查看
- 在导航菜单中添加视频创作台入口
- 更新 CHANGELOG 包含新功能说明
2026-05-25 17:37:43 +08:00
HouYunFei
796882064b
feat(account): 新增用户账号与算力点体系
...
- 新增账号密码注册登录功能
- 集成 Linux.do OAuth 认证
- 添加管理后台配置模型算力点功能
- 实现计费查询支持
- 在画布右上角显示用户算力点余额
- 生成按钮展示本次预计消耗算力点
2026-05-25 17:20:03 +08:00
HouYunFei
8c506f92f9
feat(video): 对齐 grok-imagine-video 接口并优化视频生成功能
...
- 将默认视频模型从 sora-2 更改为 grok-imagine-video
- 新增分辨率选项包括 720p 和 480p,替换原有的质量选项
- 扩展视频尺寸选项,新增方形、宽屏、长图等预设尺寸
- 添加分辨率和尺寸手动输入功能,支持自定义宽高
- 更新视频生成 API 参数为 resolution_name、preset 和 input_reference[]
- 支持最多 7 张参考图片上传
- 优化视频设置浮层定位,避免被工具栏遮挡
- 识别后端错误响应格式,改进视频生成失败处理逻辑
2026-05-25 17:15:42 +08:00
HouYunFei
b21f8c3af9
feat(admin): 优化管理后台渠道模型选择功能
...
- 在管理后台新增/编辑渠道时,渠道可用模型支持通过弹窗按"新获取、已有"分组选择
- 弹窗内支持手动增加模型或拉取模型列表后再写回表单
- 编辑渠道时API Key留空不再触发必填校验,表示沿用已保存的密钥
- 新增渠道仍要求填写API Key以确保安全性
- 公开配置里的系统可用模型候选项改为由已启用渠道中选择的模型合并去重生成
- 最终开放哪些模型仍由公开配置里手动勾选决定
- 添加了Checkbox组件用于多选模型功能
- 实现了模型选择器的状态管理和数据过滤逻辑
2026-05-25 16:37:18 +08:00
HouYunFei
d8cb1d6ed2
fix(image): 修复图像生成中quality参数传递问题
...
- 添加QUALITY_ALIASES映射表支持质量别名
- 实现normalizeQuality函数进行参数归一化
- 在requestGeneration和requestEdit中验证quality参数
- 防止auto或异常值传递给上游API导致400错误
- 更新FormData和POST请求中的quality参数处理逻辑
2026-05-25 16:15:10 +08:00
HouYunFei
b8e50c10f6
feat(auth): 添加用户注册开关功能
...
- 在系统设置中新增 allowRegister 配置项控制用户注册
- 实现注册接口的开关检查机制
- 登录页面根据注册开关动态显示或隐藏注册选项
- 首次 Linux.do 登录创建用户时也受注册开关限制
- 更新系统配置文档说明新的认证配置项
2026-05-25 16:03:54 +08:00
HouYunFei
030541b99d
feat(canvas): 添加画布图片信息显示功能
...
- 在画布项目状态中添加 showImageInfo 属性
- 实现图片信息栏组件显示图片尺寸和文件大小
- 添加画布工具栏开关控制图片信息显示
- 将图片信息状态集成到项目历史记录和持久化
- 更新画布节点组件支持图片信息显示功能
2026-05-25 15:51:14 +08:00
HouYunFei
2934b1d0bc
refactor(ai): 重构AI接口算力点扣费逻辑并添加失败返还机制
...
- 移除预检查算力点步骤,改为请求前预扣算力点
- 添加请求失败时自动返还算力点的功能
- 修改copyAIResponse函数参数以支持失败回调处理
- 在响应状态异常时也执行算力点返还操作
- 从auth服务中移除EnsureUserCredits方法
- 新增RefundUserCredits方法用于返还用户算力点
- 添加AI_REFUND算力点日志类型常量
- 更新算力点日志类型说明及展示标签
2026-05-25 15:23:51 +08:00
HouYunFei
01f2a4d9d5
feat(ai): 实现AI模型调用的积分计费功能
...
- 后端根据请求体中的n参数计算AI调用次数并扣减用户积分
- 添加readAIRequestCount函数解析multipart/form-data和JSON格式的请求体获取调用次数
- 前端Canvas组件中显示预计消耗的积分数量
- 在助手面板、配置节点面板和提示面板中集成积分成本计算和展示
- 优化模型选择器在云端模式下的模型列表显示逻辑
- 添加CreditSymbol组件用于统一积分图标显示
- 实现requestCreditCost函数计算远程调用的积分消耗
- 更新文档中关于积分扣费和模型配置的相关说明
2026-05-25 15:01:06 +08:00
HouYunFei
823fb2523f
feat(canvas): 在画布用户状态栏新增算力点余额展示
...
- 在画布详情页右上角用户头像左侧新增当前算力点余额展示
- 未登录或无用户信息时显示 0
- 使用 Coins 图标配合数字显示算力点余额
- 通过 Tooltip 提供当前算力点余额提示信息
- 算力点数值采用千分位分隔格式化显示
- 仅在画布模式下显示算力点余额信息
2026-05-25 14:25:57 +08:00
HouYunFei
2181b3b885
feat(admin): 添加模型算力点配置和扣费功能
...
- 在管理后台设置页面添加模型算力点配置表格
- 实现后端AI接口调用时按模型扣除用户算力点
- 添加算力点余额检查和不足时的错误处理
- 在credit_logs中记录AI调用消费流水
- 更新前端远程调用后刷新用户信息显示
- 文档中补充模型算力点配置说明
2026-05-25 14:01:04 +08:00