159 Commits

Author SHA1 Message Date
Your Name
b4c18bd554 feat: add image gen failover and loading placeholder
Enable model fallback for image generation and show the generation placeholder in the canvas chat.
2026-02-03 16:45:11 +08:00
Your Name
bb4f51d198 feat: improve canvas workflow and auto title
Hide internal prompts from users, auto-focus new images, avoid overlap, enable drag-and-drop upload, and fix canvas navigation reloads.
2026-02-03 16:33:51 +08:00
Your Name
335dc925d5 fix: prefer full object names in picker
Adjust the picker prompt to return full products even when the click is on a part.
2026-02-03 15:53:56 +08:00
Your Name
fd5f93ba58 fix: adjust canvas layout after nav removal
Move canvas floating panels up and align logo/icon styling with the left rail navigation.
2026-02-03 15:28:20 +08:00
Your Name
04706deb17 feat: move nav to left rail and slim width
Shift the vertical navigation to the left, narrow the rail, and sync light/dark styling with layout offsets.
2026-02-03 15:21:02 +08:00
Your Name
28d0f445c5 feat: move navigation to right sidebar
Switch top navigation to a vertical right rail with icon+label and adjust page layouts to reserve sidebar space.
2026-02-03 15:15:06 +08:00
Your Name
33f2a729d6 fix: PicWish API返回的是file字段不是image字段 2026-02-03 14:45:06 +08:00
Your Name
31664cb4fd fix: 去水印支持base64格式图片,先上传S3再调用API 2026-02-03 10:52:47 +08:00
Your Name
0b8eb6edea fix: 去水印功能先上传图片到S3确保公网可访问 2026-02-03 10:45:22 +08:00
Your Name
1ba3d7ec83 feat: 图片编辑器添加去水印功能,去水印结果保存到相册,使用动态占位图 2026-02-03 10:38:49 +08:00
Your Name
f2d7aff7c6 feat: 添加去水印功能 - 图片工具栏新增去水印按钮,系统设置新增PicWish API配置 2026-02-03 10:32:54 +08:00
Your Name
ff359fe03b feat: 将图片上传大小限制从 8MB 提升到 20MB 2026-02-03 10:23:34 +08:00
Your Name
221579abb2 fix: 在图片上绘制红色标记点让AI识别,识别后直接添加到对话框 2026-02-02 12:14:00 +08:00
Your Name
13e72c9134 fix: 去掉矩形轮廓框,优化物品识别prompt更聚焦点击位置 2026-02-02 12:10:35 +08:00
Your Name
f7debfb55f fix: 复用现有 Qwen VL 模型调用方式 2026-02-02 12:06:57 +08:00
Your Name
3558eed251 fix: 改用 URL 方式发送图片给 Qwen-VL,修复数据库查询 2026-02-02 12:05:50 +08:00
Your Name
914529a9d3 fix: 修复 pick-object API 的数据库查询语法错误 2026-02-02 11:55:28 +08:00
Your Name
47afddfd73 feat: 添加物品拾取功能(MVP版本)
- 新增 ObjectPickerOverlay 组件,支持点击图片拾取物品
- 新增 /api/pick-object API,调用 Qwen-VL 识别物品
- Canvas Store 扩展拾取模式状态管理
- ImageNode 工具栏新增拾取按钮
- CanvasChatPanel 集成物品标签,发送时自动构建精准prompt
- 图片压缩至 600px 以内加速 AI 分析
- 物品名称限制 8 字,位置固定 4 字标准词库
2026-02-02 11:50:30 +08:00
Your Name
ba99ad212e fix: 删除聊天框图片标签时不再删除画布中的图片
- 修改全局键盘事件处理,增加对 contentEditable 元素的检测
- 在删除图片标签时阻止事件冒泡,防止触发画布的删除操作
2026-02-02 10:42:15 +08:00
Your Name
8ff91edb11 fix: Gemini 图片生成流程添加智能对话回复
- 在 Gemini/Huanke-Gemini 图片生成流程中添加 conversationalReply 发送逻辑
- 与 Alibaba 图片生成流程保持一致
- 确保无限画布中的智能自动模式能显示 AI 对话回复
2026-02-02 00:43:57 +08:00
Your Name
e631cc45f3 feat: 支持 huanke-gemini 图片生成 provider
- 将 huanke-gemini 加入 Gemini 图片生成处理流程
- 禁用 Base64 图片传输,统一使用 URL 格式
- gemini-image 和 huanke-gemini 内部会自行处理图片上传到 S3
- 添加 huanke-gemini 模型调试日志
2026-02-02 00:19:25 +08:00
Your Name
2dfe29bf17 fix: 添加 huanke-gemini 到供应商类型校验与数据库 schema 2026-02-01 23:42:51 +08:00
Your Name
9d4579eb53 feat: 添加环科Gemini生图API支持(禁用Base64,使用URL格式) 2026-02-01 23:08:59 +08:00
Your Name
7680cbe02e fix: 修复 JSX 语法错误 2026-02-01 23:00:08 +08:00
Your Name
3855cb05cd feat: 添加智能自动模式的默认生图模型配置 2026-02-01 22:51:33 +08:00
Your Name
51196ea0dd feat: 添加无限画布设置(启用/禁用、默认模型) 2026-02-01 22:41:42 +08:00
Your Name
211db5a620 fix: 使用useParams确保客户端导航时id正确更新 2026-02-01 22:19:35 +08:00
Your Name
efa1234a93 fix: 使用key强制组件在画布ID变化时重新挂载 2026-02-01 19:48:55 +08:00
Your Name
97daaeeb36 fix: 切换画布时清空状态并重新加载数据 2026-02-01 19:46:00 +08:00
Your Name
1e557c620a fix: 移除错误的模型ID映射,直接使用qwen3-vl-plus 2026-02-01 19:39:57 +08:00
Your Name
94640002d0 fix: 多图支持和画布自动命名模型ID映射
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:58:27 +08:00
Your Name
2f667cede8 feat: LLM 驱动的精准提示词优化
1. 使用 Qwen VL 根据历史对话动态优化提示词
2. 强调精准局部编辑,只修改用户指定的部分
3. 保护其他元素不被误改
4. 包含具体的编辑要求和避免项

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:28:39 +08:00
Your Name
7ed0dad3f6 fix: Smart Auto Mode 变量初始化顺序错误
在 Smart Auto Mode 内部单独获取历史消息,避免依赖
后面才定义的 messagesFromDb 变量

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:18:06 +08:00
Your Name
544a1cd46a feat: 智能分析器支持历史对话上下文
1. analyzeIntent 接收历史对话消息
2. 传递最近10条对话给 LLM 分析
3. 帮助 AI 理解用户连续对话的意图(如再调亮一点)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:13:44 +08:00
Your Name
1f26ec911c fix: 修复 auto-title API 模型查找
1. 正确访问 model 和 provider 对象结构
2. 直接使用返回的 provider 信息,无需再次查询

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:03:34 +08:00
Your Name
aac42de4c5 debug: 添加 auto-title 模型查找详细日志
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 15:57:43 +08:00
Your Name
517d8e493c fix: auto-title API 使用数据库配置的千问VL模型
1. 从数据库查找支持视觉的模型(qwen-vl 系列)
2. 使用对应 provider 的配置调用 API
3. 添加详细日志便于调试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:51:00 +08:00
Your Name
e84b002302 fix: 画布 API 支持 upsert 操作
当画布不存在时自动创建,而不是返回 404

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:36:18 +08:00
Your Name
5b4e350568 debug: 添加 chat API 请求验证日志
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:28:43 +08:00
Your Name
057014900c feat: 完善画布功能按钮与后端 API 对接
1. 修复 CanvasChatPanel 中的图片上传 - 使用 parts 数组而非 attachments
2. 扩展 chat schema 支持更多图片格式(gif, bmp, svg)
3. 实现尺寸调整功能 - 添加对话框选择尺寸
4. 更新 imageGenerationService.resizeImage 使用 canvas API 调整尺寸
5. 所有图片编辑功能已对接:抠图、变清晰、扩展、角度编辑、场景裂变、尺寸调整

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:18:16 +08:00
Your Name
05236a7b86 fix: 在 onFinish 后从数据库重新加载消息
这是根治方案 B:
1. 添加 GET /api/messages 端点从数据库获取消息
2. 在 onFinish 后延迟 500ms,然后从数据库重新加载消息
3. 更新 setMessages 和清空 appendedMessages

这确保了 data-appendMessage 保存到数据库的消息能正确显示

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 10:58:08 +08:00
Your Name
231d726b37 fix: 完善智能自动模式对话流程
修复内容:
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: 使用特殊标记保持占位图显示
问题:对话消息发送后占位图消失
解决:
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
920fb5aa95 fix: 添加延迟让前端渲染对话消息
在发送对话消息后等待500ms,让前端有时间渲染第一条消息,
然后再开始第二轮(图片生成),这样不会在同一个回复里重叠

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:04:31 +08:00
Your Name
ff9f45858b feat: 智能自动模式先对话再生图
流程:
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: 智能自动模式对话和图片合并发送
修复流程:
1. 用户发送请求
2. 显示占位图
3. 图片生成后显示(对话文字 + 图片)

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

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 01:56:18 +08:00
Your Name
6462fe2456 feat: 智能自动模式先对话再生图
修复内容:
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
0901bc6329 feat: 支持历史多张图片的连续编辑
- 从历史对话中提取多张图片,支持多图融合编辑
- 收集同一条消息中的所有图片(用户上传或AI生成)
- 将所有历史图片注入到后续编辑请求中
- 日志输出图片数量便于调试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:41:07 +08:00
Your Name
691e9862e7 feat: 自动使用历史图片进行连续对话编辑
- 用户没有发送新图片时,自动使用历史中最近的图片
- 支持连续对话场景:换颜色、调整、重做等
- 优先使用AI生成的图片,其次是用户上传的图片
- 让对话更自然,不需要每次都重新上传图片

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:37:23 +08:00
Your Name
760509100c fix: 保持用户消息原样显示,AI自然对话后再执行编辑
- 用户发送的消息不再被修改,保持原样显示
- 优化后的提示词只用于API调用,不影响用户消息
- AI会先用自然语言回复用户,再显示编辑结果

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:29:30 +08:00