61 Commits

Author SHA1 Message Date
Your Name
979c960359 feat: add StepFun image provider
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-04-29 15:51:23 +08:00
Your Name
e58d37015e fix: route grsai gpt image provider
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-04-23 14:33:20 +08:00
Your Name
dfc5f704b4 chore: sync latest app updates
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-04-12 23:45:00 +08:00
Your Name
dae5581c76 fix: recognize runway video models in canvas chat
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-03-20 23:51:43 +08:00
Your Name
bbdda81686 feat: add midjourney provider and failover exclusion
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-03-07 16:25:48 +08:00
Your Name
d104efd7e9 feat: add openai compatible image provider
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-03-07 10:51:56 +08:00
Your Name
e3abf6dc2b feat: make video loading placeholder model-aware
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-03-06 01:58:39 +08:00
Your Name
25f88e8d3d feat(video): add ruxa-video provider end-to-end 2026-03-05 11:16:24 +08:00
Your Name
6967fd6683 fix(chat): delay image placeholder until agent analysis stage is visible
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-03-02 22:36:26 +08:00
Your Name
d68512b71a fix(chat): always show model badge for image replies
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-21 03:10:37 +08:00
Your Name
23521d8362 feat: add doubao video provider and persist video task recovery
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-18 21:00:07 +08:00
Your Name
10b44ddfcd 新增FAL视频服务商并优化模型选择弹窗与头像配置
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-14 20:53:47 +08:00
Your Name
ed9a03b1c7 feat: 新增FAL生图服务商并打通聊天与画布链路
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-14 20:06:05 +08:00
Your Name
b5991d2a2a fix(chat): prevent image placeholder from sticking after generation
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-12 15:14:48 +08:00
Your Name
c9c0356fe3 增强Agent分析链路并兼容手动模型触发
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-12 13:39:54 +08:00
Your Name
e038ba3593 优化生图占位图显示时机先展示Agent对话
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-08 22:22:21 +08:00
Your Name
0f1ca3f590 重构生图占位状态机并修复结果展示时序
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-07 21:10:17 +08:00
Your Name
3a20c5a36d 新增RUXA生图服务商并打通聊天/画布链路
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-07 20:09:31 +08:00
Your Name
9fae58cfd3 fix: close image placeholder on generation end
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Emit generation end markers for success/failure and scope marker handling to the latest request so placeholders stop on errors.
2026-02-03 20:45:47 +08:00
Your Name
20efbbbb53 fix: trigger image placeholder after analysis
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Send a dedicated generation-start marker when image generation begins and stop embedding markers in assistant text.
2026-02-03 19:45:49 +08:00
Your Name
2e6f421b6d fix: improve canvas drag drop and placeholder timing
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Harden desktop drag-and-drop on the canvas and ensure auto image placeholders wait for visible assistant text.
2026-02-03 19:36:12 +08:00
Your Name
0cc791a71e fix: delay image placeholder until text shows
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Guard the auto image-loading placeholder so it starts only after a visible text reply and cancel pending timers when the image arrives.
2026-02-03 16:59:23 +08:00
Your Name
f2d7aff7c6 feat: 添加去水印功能 - 图片工具栏新增去水印按钮,系统设置新增PicWish API配置
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-03 10:32:54 +08:00
Your Name
dd0b8e7357 debug: 添加占位图状态调试日志
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
2026-02-02 00:34:25 +08:00
Your Name
b8279e4b93 fix: 修复 huanke-gemini 占位图不显示问题
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
- 在 messages.tsx 中将 huanke-gemini 和 gemini-image 纳入 isGeminiModel 判断
- 在 chat.tsx 中将 huanke-gemini 和 gemini-image 记录为 gemini 类型的生成任务
- 确保使用 huanke-gemini 时显示 Gemini 图片生成占位图
2026-02-02 00:23:31 +08:00
Your Name
2a14ae8445 fix: 过滤清理后为空的消息,避免显示空对话框
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:42:23 +08:00
Your Name
7943b7fa5b fix: 简化占位图逻辑,确保文字回复显示
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
1. 简化 useEffect 中的占位图逻辑
2. 当收到 AI 文字回复后,立即隐藏占位图让用户看文字
3. 修复 hasRestoredPending 逻辑,收到 AI 回复后不再显示恢复的占位图

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 10:52:51 +08:00
Your Name
52286c40f8 fix: 修复占位图不消失的问题
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
只用 isGeneratingImageFlag 来控制生图占位图的显示,
不再检查消息中的 GENERATING_IMAGE 标记,
因为该标记会一直存在于消息中

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 10:44:48 +08:00
Your Name
2fc702b543 fix: 优化占位图显示时序
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
1. AI 文字回复显示后延迟 3 秒再显示动态占位图
2. 延迟期间隐藏占位图,让用户有时间阅读文字
3. 只有 isGeneratingImageFlag=true 时才显示图片生成占位图

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 10:42:28 +08:00
Your Name
b3d37f815a fix: 使用独立的 appendedMessages 状态避免与 useChat 冲突
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
参考 lobe-chat-pro 的架构,将 data-appendMessage 消息存储在
独立的状态中,通过 mergedMessages 合并后传递给组件,
避免直接修改 useChat 的内部状态导致消息丢失

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 10:29:21 +08:00
Your Name
3737b1ce99 fix: 修复占位图逻辑和移除导致错误的刷新
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
1. 移除 onFinish 中的 router.refresh(),它导致 React 错误
2. 简化占位图逻辑:hasImageContent 优先级最高
3. 当有图片内容时,无论其他标记如何,都隐藏占位图

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 10:20:59 +08:00
Your Name
2d0b556ee9 fix: 当 isGeneratingImageFlag=true 时强制显示占位图
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
问题:hasImageContent 检测到历史消息中的图片导致占位图提前消失
解决:isGeneratingImageFlag 优先级最高,为 true 时忽略 hasImageContent

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:58:50 +08:00
Your Name
ed30ca214d debug: 添加 isGeneratingImageFlag 调试日志
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:54:23 +08:00
Your Name
c6180e8610 fix: 修复智能自动模式占位图提前消失问题
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
问题:
- appendMessage 放入队列延迟处理导致 GENERATING_IMAGE 标记无法被及时检测
- status 变成 ready 时占位图消失,但图片还在生成中

解决方案:
- 添加 isGeneratingImageFlag 状态来跟踪图片生成进度
- 在收到包含 GENERATING_IMAGE 标记的消息时立即设置标志
- 在收到包含图片的消息时清除标志
- 将标志传递给 Messages 组件用于占位图显示判断

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:49:52 +08:00
Your Name
1dd9500f22 debug: 添加消息数组追踪日志
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:40:20 +08:00
Your Name
fbe797d436 fix: 简化智能自动模式占位图逻辑
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
问题修复:
1. 移除复杂的延迟状态管理
2. 使用 isGeneratingImage 标记来区分阶段
3. 简化占位图显示条件

流程:
1. 提交/streaming -> 显示思考动画
2. 收到对话消息+GENERATING_IMAGE标记 -> 显示生图占位图
3. 收到图片 -> 隐藏占位图

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:34:39 +08:00
Your Name
98807b135a fix: 对话消息出现后延迟6秒再显示生图占位图
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
流程:
1. 用户发送请求 → 显示思考动画
2. 对话消息出现 → 思考动画消失,显示对话文字
3. 等待6秒 → 显示生图占位图
4. 图片生成完成 → 占位图消失

修改:
- 添加 showImagePlaceholderDelayed 状态
- 收到 GENERATING_IMAGE 标记后延迟6秒设置状态
- 生图占位图根据延迟状态显示

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:28:38 +08:00
Your Name
58d0b8b5dd fix: 智能自动模式分阶段显示占位图
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
流程:
1. 用户发送请求 → 显示'AI正在思考'(Qwen3在分析)
2. 对话消息出现(带GENERATING_IMAGE标记)→ 切换到生图占位图
3. 图片生成完成 → 隐藏占位图

修改:
- 检测 GENERATING_IMAGE 标记来区分阶段
- 分析阶段显示 ThinkingMessage
- 生图阶段显示 ImageGenerationLoading

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:24:53 +08:00
Your Name
231d726b37 fix: 完善智能自动模式对话流程
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
修复内容:
1. 前端:检查用户最后一条消息是否有图片(而不是整个对话最后一条)
2. 前端:useEffect 依赖项添加 selectedModelId
3. 后端:错误回退时也生成友好消息
4. 后端:保存消息时添加完整的数据库字段
5. 分析器:增加颜色调整关键词匹配(改成X色、换成X色)

现在大模型(Qwen3 VL)会生成自然对话回复

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:18:30 +08:00
Your Name
ddada59db1 fix: 使用特殊标记保持占位图显示
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
问题:对话消息发送后占位图消失
解决:
1. 后端在对话消息末尾加上 <!-- GENERATING_IMAGE --> 标记
2. 前端检测到此标记时继续显示占位图
3. 渲染时清理掉这个标记(用户看不到)
4. 数据库保存时不带标记(纯对话)

流程:
1. 用户发送请求
2. AI回复对话(带标记)+ 占位图继续显示
3. 图片生成后显示

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:12:08 +08:00
Your Name
ff9f45858b feat: 智能自动模式先对话再生图
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
流程:
1. 用户发送请求(图片+文字)
2. AI立即回复对话('好的,我来帮你...')
3. 显示占位图(正在生成中...)
4. 图片生成后显示

修改:
- 后端:先发送对话消息,再调用生图API
- 前端:检查用户消息后所有assistant消息是否有图片
- 只有图片出现才隐藏占位图,对话文字不影响

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:00:21 +08:00
Your Name
73d1ab7912 fix: 智能自动模式对话和图片合并发送
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
修复流程:
1. 用户发送请求
2. 显示占位图
3. 图片生成后显示(对话文字 + 图片)

- 将对话消息和图片合并成一条消息
- 对话文字在前,图片在后
- 占位图显示到图片出现为止

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 01:56:18 +08:00
Your Name
6462fe2456 feat: 智能自动模式先对话再生图
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
修复内容:
1. 修复变量名 smartAutoHistoryImage -> smartAutoHistoryImages
2. 修复 model-router.ts 循环依赖问题
3. 智能自动模式显示占位图(当用户发送图片时)
4. 先发送对话消息(如:好的,我来帮你...),再生成图片
5. 让用户感受到是在和AI对话,而不是机器执行

流程:
用户发送请求 -> AI回复对话 -> 显示生图占位图 -> 显示生成结果

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 00:08:37 +08:00
Your Name
64dbbd8e6e fix: 智能自动模式使用通用思考动画
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
- 智能自动模式后端还在分析意图时,显示通用思考动画
- 避免在后端未确定生图前就显示生图占位图
- 等后端确定是生图模型后,自然切换到对应占位图

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:46:30 +08:00
Your Name
81d2489649 refactor: clean up debug logs and simplify message handling
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 22:36:29 +08:00
Your Name
258c4ce173 fix: clean up timer logic to prevent memory leaks
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 22:33:55 +08:00
Your Name
eca231575d fix: show loading placeholder when streaming but last message is user message
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 22:29:00 +08:00
Your Name
390ab1b935 fix: add timeout protection for loading placeholder and improve image content detection
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 22:17:18 +08:00
Your Name
f5c87efba7 fix: 统一图片预览按钮样式,防止文字换行
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
- 添加 whitespace-nowrap 防止按钮文字换行
- 减小按钮尺寸:图标 14px->12px,文字 text-xs->text-[10px]
- 减小按钮间距和内边距,适应不同宽度的图片
- 添加 flex-wrap 允许按钮换行到下一行
2026-01-12 14:14:47 +08:00
Your Name
864057c9cd fix: 修复阿里生图模型占位图不显示的问题
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
- 将 isAlibabaImageModel 添加到图片模型判断逻辑中
- 更新 hasImageContent 检测逻辑,支持多种图片格式
- 添加 isAlibabaImageModel 到 useEffect 依赖数组
2026-01-12 12:20:29 +08:00