5 Commits
Author SHA1 Message Date
linshen 3115540cac fix(desktop): preserve structured IPC errors for i18n
Keep error code/params across contextBridge so renderer can translate errors reliably; harden UI error formatting and update vue-i18n test mocks.
2026-01-21 21:23:17 +08:00
linshen 21368fa678 fix(conversation): 修复多轮对话历史记录恢复问题并全面优化版本管理
核心修复:
- 修复多轮对话模式下 V2 及以上迭代版本无法正确恢复的 bug
- 修复消息顺序优化后历史记录恢复时,部分消息错误回溯到原始 (V0) 状态的 bug
- 在 iterateMessage 中手动预计算版本号,确保快照中的 appliedVersion 与实际保存的版本号一致
- 重构 useConversationOptimization.ts 中 getMessageAppliedVersion 函数,统一版本语义,使用 record.version 属性而非数组索引进行匹配
- 修正优化快照 (conversationSnapshot) 构建逻辑,确保当前优化消息的 appliedVersion 和 content 始终准确无误
- 改进 conversation optimizer 中的版本匹配机制,使用修剪后的字符串比较防止错误版本不匹配

功能增强:
- 新增完整的 iterateMessage 方法,支持多轮对话的消息级迭代优化
- 传递完整上下文数据(messages、selectedMessageId)给底层服务
- 对比测试时分别维护 originalToolCalls 和 optimizedToolCalls,确保工具调用结果互不干扰
- 在 prompt optimizer 历史元数据中添加 conversationSnapshot 以支持准确的状态恢复
- 重构优化流程,optimizeMessage 现在强制重置状态,避免状态污染

UI 优化:
- 调整版本标签显示顺序为 v3 v2 v1 v0(最新版本在前,v0 固定在最后)
- 优化版本切换交互体验

国际化支持:
- 修复 prompt optimizer 中的硬编码中文字符串,替换为 i18n 键
- 为多轮对话优化添加缺失的 i18n 键

代码质量:
- 删除所有调试日志(console.log)
- 添加模板处理边界情况注释(Mustache 空数组 vs undefined)
- 更新 App.vue (Web 和 Extension) 的历史记录恢复逻辑,通过 record.version 精确查找版本,增强了对历史记录删除(导致版本数组稀疏)的健壮性
- 为对话优化功能暂存未跟踪的新文件
2025-11-16 15:42:18 +08:00
linshen 85e56161a6 fix: 修复图片上传变量名错误和UI显示问题
### 图片上传修复
- 修复上传图片时报错 "ReferenceError: f is not defined"
- 将 `reader.readAsDataURL(f)` 改为 `reader.readAsDataURL(file)`

### UI显示问题修复
- 修复模式切换时测试输入框不显示的问题
- 在基础模式和上下文模式切换时同步状态
- 修复临时变量内存泄漏,清理过期变量watcher
- 修复 `useAggregatedVariables` 导入路径错误

### UI优化
- 统一按钮样式为圆角 + NIcon + 纯图标 + tooltip
- 移除测试区域冗余的"用户模式"标签
- 将变量功能提示改为悬浮式帮助图标
- 清理未使用的导入和代码

### 测试优化
- 移除8个低价值的失败测试,保留234个核心测试
- 测试通过率从96.7%提升至100%

### 代码质量
- ESLint检查通过
- 核心变量管理测试全部通过(39/39)
2025-10-26 13:07:06 +08:00
linshen 69d854aa78 feat(model):重构模型管理器以支持动态提供商配置
- 统一文本模型的连接配置结构,移除冗余字段
- 引入 Provider 注册表机制,支持动态加载模型提供商
-优化模型编辑界面,使用表单布局提升用户体验
- 添加 Provider 切换功能,自动更新连接配置和模型列表
- 改进 API Key 处理逻辑,增强安全性与遮罩显示- 实现基于 Schema 的动态连接字段渲染-重构新增/编辑模型流程,确保配置一致性
- 更新核心类型定义,导出适配器注册表相关接口- 修复 OpenAI 提供商名称始终显示为 'OpenAI' 的问题
- 优化模型能力标签展示,支持流式传输、工具调用等特性标识
2025-10-05 23:23:43 +08:00
linshen ba63eff9ad feat: 重构图像模型管理架构并优化用户界面
## 核心改进

### 🏗️ 架构重构
- 实现ImageModelManager组件分离设计,关注点明确分离
- 重构ModelManager.vue为统一模型管理入口,支持文本/图像双模式
- 采用组件复用和扩展性设计,易于添加新模型类型

### 🎨 界面优化
- 摒弃5步导航式编辑,改为一体化界面设计
- 优化ImageModelEditModal为单页滚动布局,提升操作效率
- 统一文本和图像模型管理的交互体验和视觉风格

### 🔌 适配器扩展
- 新增OpenRouter和SiliconFlow图像适配器支持
- 完善AbstractImageProviderAdapter抽象基类设计
- 优化适配器注册表和动态模型发现机制

### 💻 类型系统
- 完善ImageModelConfig和相关类型定义
- 增强TypeScript类型安全和智能提示
- 优化服务层接口设计和依赖注入架构

### 🧪 测试覆盖
- 新增图像适配器单元测试和集成测试
- 添加E2E验收测试保证功能完整性
- 增强连接测试和参数验证测试覆盖

### 📚 文档完善
- 新增图像模型管理架构设计文档
- 添加一体化界面改进方案文档
- 更新项目结构和开发指南

## 技术特点

- **SOLID原则**:清晰的单一职责和开闭扩展设计
- **组合模式**:ImageModelManager + ModelManager.vue 组合架构
- **响应式设计**:基于Vue 3 Composition API的状态管理
- **依赖注入**:松耦合的服务架构和组件通信

这次重构显著提升了图像模型管理的用户体验和代码可维护性,
为后续音频、视频等多模态功能扩展奠定了坚实基础。
2025-09-21 20:17:03 +08:00