linshen
2fb11e13ba
fix(ui): 修复模型连接测试的关键问题并增强代码质量
...
修复问题:
1. 修复 API 参数调用错误 - addModel 方法缺少 key 参数导致验证失败
2. 修复 API Key 脱敏问题 - 测试连接时使用脱敏后的 Key 导致认证失败
3. 修复状态管理时序问题 - 使用 nextTick 替代不可靠的 setTimeout
增强功能:
1. 强化连接测试的前置校验逻辑,增加配置完整性检查
2. 优化并发控制,测试期间自动禁用按钮,防止重复请求
3. 统一守卫逻辑到单一数据源,遵循 DRY 原则
4. 改进 paramOverrides 更新逻辑,支持参数删除操作
技术改进:
- 使用 Vue nextTick API 替代 setTimeout,提升可靠性
- 实现临时模型测试模式,避免污染原始配置
- 增强 canTestFormConnection 校验,包含配置完整性检查
- 正确处理 API Key 脱敏/恢复逻辑
影响范围:
- packages/core/src/services/model/manager.ts
- packages/ui/src/composables/useTextModelManager.ts
- packages/ui/src/components/TextModelEditModal.vue
- packages/ui/src/components/TextModelManager.vue
2025-10-08 02:00:08 +08:00
linshen
935c6e3c5b
perf(ui): 优化模型编辑性能,移除不必要的网络请求
...
- 移除编辑模型时自动刷新动态模型列表的逻辑
- 编辑模式不再阻塞等待API响应,提升用户体验
- 保留手动刷新功能,用户可按需获取最新模型列表
- 解决点击编辑按钮时的卡顿问题
🚀 编辑体验优化:从网络依赖转为即时响应
2025-10-08 00:04:16 +08:00
linshen
c779b66203
refactor(core): 移除流式支持标识并修复TypeScript类型错误
...
- 移除TextModel接口中的supportsStreaming属性,简化模型能力定义
- 重构OpenAI适配器,简化模型配置和连接验证逻辑
- 修复useTextModelManager.ts中的TypeScript类型安全问题
- 更新所有相关测试文件,移除supportsStreaming相关断言
- 统一测试代码格式,确保编译通过
BREAKING CHANGE: 移除了supportsStreaming能力标识,所有模型默认支持流式响应
2025-10-07 23:56:00 +08:00
linshen
e7f3d23454
fix(ui):优化模型管理器组件结构和功能
...
- 将文本模型和图像模型管理分离到独立组件
- 更新图像模型编辑模态框的自动完成属性
-重构模型管理器UI布局和交互逻辑
- 移除冗余的SVG图标重复代码- 改进模型管理器的标签页切换功能
-优化模型管理器的依赖注入和事件处理
- 简化模型管理器的代码结构提高可维护性
2025-10-07 11:28:10 +08:00
GitButler
eced9ca198
GitButler Workspace Commit
...
This is a merge commit the virtual branches in your workspace.
Due to GitButler managing multiple virtual branches, you cannot switch back and
forth between git branches and virtual branches easily.
If you switch to another branch, GitButler will need to be reinitialized.
If you commit on this branch, GitButler will throw it away.
Here are the branches that are currently applied:
- l-branch-1 (refs/gitbutler/l-branch-1)
branch head: 69d854aa78
- packages/ui/src/i18n/locales/zh-TW.ts
- packages/ui/src/components/TextModelList.vue
- packages/ui/src/components/ImageModelEditModal.vue
- packages/ui/src/i18n/locales/en-US.ts
- packages/ui/src/composables/useTextModelManager.ts
- packages/ui/src/components/ModelManager.vue
- packages/ui/src/i18n/locales/zh-CN.ts
- packages/ui/src/components/TextModelManager.vue
- packages/ui/src/components/TextModelEditModal.vue
- packages/ui/src/types/vue-i18n.d.ts
For more information about what we're doing here, check out our docs:
https://docs.gitbutler.com/features/virtual-branches/integration-branch
2025-10-07 10:25:45 +08:00
linshen
69d854aa78
feat(model):重构模型管理器以支持动态提供商配置
...
- 统一文本模型的连接配置结构,移除冗余字段
- 引入 Provider 注册表机制,支持动态加载模型提供商
-优化模型编辑界面,使用表单布局提升用户体验
- 添加 Provider 切换功能,自动更新连接配置和模型列表
- 改进 API Key 处理逻辑,增强安全性与遮罩显示- 实现基于 Schema 的动态连接字段渲染-重构新增/编辑模型流程,确保配置一致性
- 更新核心类型定义,导出适配器注册表相关接口- 修复 OpenAI 提供商名称始终显示为 'OpenAI' 的问题
- 优化模型能力标签展示,支持流式传输、工具调用等特性标识
2025-10-05 23:23:43 +08:00
linshen
5de5614664
refactor(core): 重构LLM服务为Adapter模式架构
...
重大架构升级:
- 引入Adapter模式,实现Provider解耦
- 新增7个Provider适配器(OpenAI、Gemini、Anthropic等)
- 精简LLMService从2000+行到300+行
- 引入TextModelConfig新类型系统,支持向后兼容
- 完善类型定义和测试覆盖
架构改进:
- 抽象基类AbstractTextProviderAdapter提供模板方法
- TextAdapterRegistry统一管理所有适配器
- 支持动态模型获取(OpenAI兼容API)
- 提供配置转换器实现平滑升级
新增文件:
- packages/core/src/services/llm/adapters/ (8个文件)
- packages/core/src/services/model/converter.ts
- packages/core/src/services/model/text-model-defaults.ts
- docs/architecture/llm-refactor.md
- 9个新增测试文件
修改文件:
- packages/core/src/services/llm/service.ts
- packages/core/src/services/model/types.ts
- packages/core/src/index.ts
- 31个测试文件更新
- UI组件和composables适配新类型
BREAKING CHANGE: 模型配置结构从ModelConfig升级为TextModelConfig
(已提供converter.ts确保向后兼容和自动转换)
测试结果:
✅ TypeScript类型检查通过 (core + ui)
✅ 563个测试通过,90个跳过
✅ Core包构建成功
2025-10-04 01:01:08 +08:00
linshen
ee1f8a8eb6
feat(agents): 添加多个BMAD核心代理配置文件- 新增analyst代理和市场,专注于业务分析研究
...
- 新增architect代理,负责系统架构设计和技术选型
- 新增bmad-master代理,作为通用任务执行器
- 新增bmad-orchestrator代理,用于协调多代理工作流- 新增dev代理,专注于全栈开发和代码实现
- 新增pm代理,负责产品管理和PRD创建- 新增po代理基础配置
- 添加团队配置文件:team-all、team-fullstack、team-ide-minimal、team-no-ui- 配置各代理的依赖项、命令和个性化设置
- 定义代理激活指令和核心原则
- 设置工作流和模板引用路径
- 配置文件解析和请求匹配规则
2025-10-02 15:27:08 +08:00
linshen
7bf8059eb2
fix(ui): 修复全屏对话框内容溢出问题
...
采用多层滚动容器设计解决全屏显示时超长内容溢出父容器边界的问题:
**核心改进:**
- 使用 Naive UI 的 NFlex 组件替代原生 div/NSpace,实现更规范的 flexbox 布局
- 建立正确的高度约束链:每层容器都设置 min-height: 0 和 overflow 控制
- 实现分层滚动策略:内层主滚动 + 外层兜底滚动
**滚动容器设计:**
1. 渲染/对比模式:MarkdownRenderer/TextDiffUI 自身提供滚动(overflow: auto)
2. 原文编辑模式:NInput textarea 会撑开容器,由 FullscreenDialog 提供兜底滚动
3. 外层约束容器:OutputDisplayFullscreen/Core 使用 overflow: hidden 防止意外滚动
**修改文件:**
- FullscreenDialog.vue: 使用 NFlex + overflow: auto 提供兜底滚动
- OutputDisplayFullscreen.vue: 使用 NFlex 包裹,修复 content 绑定为 internalContent
- OutputDisplayCore.vue: 主内容区从 NSpace 改为 NFlex,优化布局约束
- MarkdownRenderer.vue: 优化 NScrollbar 实现,移除冗余的高度和滚动样式
2025-10-02 12:08:04 +08:00
linshen
c1bf0f2f8b
feat(ui): 为模板编辑器添加全屏编辑功能
...
- 在简单模板和高级模板消息编辑区域添加全屏编辑按钮
- 新增全屏编辑器模态框,提供更大的编辑空间
- 添加字符计数显示功能
- 优化文本域自动高度调整(minRows/maxRows)
- 使用 NSpace、NText 等 Naive UI 组件替换原生 HTML 标签
- 添加中英繁三语翻译支持
2025-10-02 11:28:27 +08:00
linshen
261370fe56
feat(ui): 移除模板选择成功后的toast提示
...
- 移除了模板选择成功后的冒泡提示
- 简化了模板管理器中的提示逻辑
- 优化了用户体验,减少不必要的提示干扰
2025-10-02 11:17:03 +08:00
linshen
3516bad483
test(ui): 更新语言切换测试以支持繁体中文
...
修复测试断言以匹配当前的3种语言配置(简体中文、繁体中文、英文)
- 在 i18n 测试配置中添加 zh-TW 语言
- 更新断言:语言选项数量从 2 改为 3
- 验证所有三种语言选项的正确性
2025-10-02 01:02:18 +08:00
linshen
e820082116
style(app): 移除ConversationManager容器的最小高度限制
...
移除 minHeight: '150px' 约束,允许组件高度更灵活地适应内容,
提升高级模式下的布局自适应性。
影响范围:
- packages/web/src/App.vue
- packages/extension/src/App.vue
2025-10-02 00:50:07 +08:00
linshen
e51825c19a
fix(templates): 同步图像优化模板的中英文版本
...
## 主要变更
### 1. 更新英文模板以匹配中文版本
- **image2image-optimize**: 补充完整的意图识别体系(添加/删除/替换/增强)和详细的创作指引
- **chinese-model-optimize**: 补充结构化输出要求(3-6句、每句1个核心维度、每个名词2-3个修饰词)
- **photography-optimize**: 补充结构化输出要求和推荐摄影结构
### 2. 新增创意文生图模板
- 添加 creative-text2image 中英文模板
- 基于本源解构与奇幻重构的创造性提示词生成
- 更新 index.ts 导入导出新模板
### 3. 优化现有中文模板
- 完善图生图模板的意图识别能力
- 统一输出格式要求
## 影响范围
- 图像优化模板系统
- 不影响现有功能,仅增强模板质量
## 技术细节
- 所有模板保持中英文内容完全对应
- 统一结构化输出标准
- 强化自然语言表达,避免参数化语法
2025-10-01 23:30:03 +08:00
linshen
8ac4cd795c
fix: 修复网页标签切换后流式输出暂停问题
...
移除流式输出中的人为延迟(setTimeout 10ms),解决标签页切换到后台时
浏览器限制导致的输出暂停问题。
修改内容:
- streamOpenAIMessage: 移除推理和内容输出的延迟
- streamOpenAIMessageWithTools: 移除推理和内容输出的延迟
- streamGeminiMessage: 移除文本输出的延迟
- streamGeminiMessageWithTools: 移除文本输出的延迟
修复效果:
- 标签页切换到后台时流式输出继续进行
- 切回标签页时立即显示完整结果
- 提升整体性能和用户体验
Fixes #171
2025-10-01 10:49:15 +08:00
linshen
692ae08dfc
feat(i18n): 添加繁體中文語言支援
...
- 在語言切換下拉選單中新增繁體中文選項
- 建立繁體中文語言包檔案 (zh-TW.ts) 並完成所有UI文字翻譯- 更新i18n插件配置以支援繁體中文,包括語言類型定義和訊息載入
- 設定繁體中文的語言檢測規則,支援 zh-TW、zh-HK 及包含 Hant 的語言代碼
- 配置繁體中文的fallback規則,優先回退到簡體中文再回退到英文
- 更新README文件,新增繁體中文語言支援說明和當前支援語言列表
2025-10-01 10:18:59 +08:00
linshen
34802fe5a5
feat(image-workspace): 实现文本模型选择器自动刷新功能
...
- 添加文本模型下拉获得焦点时的自动刷新逻辑- 新增 refreshTextModels 方法用于刷新文本模型选项
- 在模型管理器关闭后同步刷新文本模型
-为文本模型选择组件添加 focus事件处理
- 注册和移除 image-workspace-refresh-text-models 全局事件监听器
- 更新文本模型选项时校验当前选择并设置回退选项- 确保模型管理器初始化后再获取启用的模型列表
2025-10-01 10:16:16 +08:00
linshen
00c3ec9b39
docs(readme): 更新图像生成功能说明
...
- 添加模型参数配置功能描述
- 补充预览与下载功能说明- 调整功能列表展示顺序
2025-09-30 23:09:52 +08:00
linshen
7b71801c85
docs: 更新 README 反映高级功能和图像生成已完成
...
## 变更内容
### 核心特性更新
- ✅ 添加图像生成功能说明(T2I和I2I)
- ✅ 添加高级测试模式功能说明
- ✅ 将这些功能从"预览版(Beta)"升级为正式功能
### 高级功能章节重构
**之前状态**: "高级功能预览(Beta)" - 标注为开发中
**当前状态**: "高级功能" - 正式发布
#### 图像生成模式
- 文生图(T2I):文本提示词生成图像
- 图生图(I2I):基于本地图片变换优化
- 多模型支持:Gemini、Seedream等
- 模型参数:支持各模型特有参数配置(尺寸、风格等)
- 预览与下载:实时预览生成结果,支持下载保存
#### 高级测试模式
- 上下文变量管理:自定义变量、批量替换
- 多轮会话测试:模拟真实对话场景
- 工具调用支持:Function Calling集成
- 灵活调试能力
### 开发路线更新
- ✅ 高级模式:变量管理、上下文测试、工具调用
- ✅ 图像生成:文生图(T2I)和图生图(I2I)支持
- ❌ 移除"支持图片输入和多模态处理"(已完成)
## 文档同步
- README.md (中文版)
- README_EN.md (英文版)
- 添加图像模式文档链接
关联文档: docs/image-mode.md
2025-09-30 23:03:08 +08:00
linshen
ad15374019
docs: 更新 README 移除已废弃的 Vercel 代理说明
...
## 变更内容
### 修正关键认知错误
- Docker部署同样是纯前端应用,会受到浏览器CORS限制
- 只有桌面版和API中转服务能真正解决CORS问题
### 中文 README (README.md)
- 移除 Q3 中关于 Vercel 代理的说明
- 移除 Q4"Vercel代理有什么缺点或风险?"整个问题
- 更新 Q3 推荐方案:桌面版(最推荐)、自建API代理
- 添加重要提示:所有Web版都受CORS限制
- 更新 Q4(原Q5):明确Docker部署用于解决Mixed Content问题
- 重新编号 Q5 → Q4
### 英文 README (README_EN.md)
- 同步移除 Vercel 代理相关说明
- 更新为推荐桌面版、自建代理两种方案
- 添加Web版CORS限制说明
- 明确Docker部署的实际作用
- 重新编号问题序号
## 新的推荐方案
**解决商业API跨域问题:**
1. **桌面版应用**(最推荐) - 原生应用,无CORS限制
2. **自建API代理** - 专业方案,完全可控
**解决本地模型Mixed Content问题:**
- 桌面版(最推荐)
- Docker部署(HTTP协议)
- Chrome插件
关联提交: c7194ba (代理功能移除)
2025-09-30 22:53:41 +08:00
linshen
1ad32ca217
refactor: 完全移除 Vercel/Docker 代理功能以修复 SSRF 安全漏洞
...
修复 #179
## 变更内容
### 核心代码清理 (-2473行)
- 删除 api/proxy.js、api/stream.js、api/vercel-status.js 端点
- 删除 node-proxy/ 服务器实现
- 移除 environment.ts 中的代理检测逻辑
- 简化所有图像适配器和 LLM 服务,直接使用 baseURL
- 移除模型配置中的 useVercelProxy/useDockerProxy 字段
### 基础设施更新
- 更新 Dockerfile 移除 node-proxy 构建
- 更新 nginx.conf 移除代理路由
- 更新 supervisord.conf 移除 node-proxy 进程
### UI 优化
- 移除模型管理界面中的代理选项
- 清理国际化文件中的代理相关翻译
- 删除备份文件 ModelManager.bak.vue
### 文档同步
- 更新技术开发指南,说明功能移除原因
- 更新 Vercel 部署文档,移除代理相关说明
- 更新图像模式文档
## 安全说明
由于内置代理存在 SSRF (服务端请求伪造) 安全风险,完全移除相关功能。
推荐用户使用:
1. 桌面版应用 (无跨域限制)
2. 自建反向代理 (完全控制)
3. LLM 提供商的 CORS 友好端点
## 向后兼容性
历史数据中的 useVercelProxy/useDockerProxy 字段为可选,不会导致破坏性变更。
2025-09-30 22:08:00 +08:00
linshen
6dc151d189
feat(desktop): 支持macOS Intel芯片版本构建
...
新增功能:
- 同时构建 x64 (Intel) 和 arm64 (Apple Silicon) 架构
- macOS用户可根据芯片类型选择对应版本下载
技术实现:
- 修改electron-builder配置,为dmg和zip目标指定多架构支持
- 更新GitHub Release工作流,区分Intel和Apple Silicon版本说明
- 优化安装指南,帮助用户选择正确架构
关联issue: #165
2025-09-30 00:12:42 +08:00
linshen
b5eba3dfb7
fix(docker): MCP路由绕过Basic认证以支持MCP Inspector连接
...
修复问题:
- Docker部署启用ACCESS_PASSWORD后,/mcp路由继承了Basic认证配置
- 导致MCP Inspector连接时返回401错误
技术方案:
- 在nginx.conf的/mcp location中添加auth_basic off指令
- MCP协议本身不支持HTTP Basic认证,需要明确禁用
- Web应用路由的访问控制保持不变
文档更新:
- 在MCP服务器用户文档中添加故障排除说明
- 包含中英文文档和mkdocs文档
关联issue: #169
2025-09-29 23:56:47 +08:00
linshen
22a1e4ac3f
fix(core): 修复图像模型配置的删除和容错处理
...
## 问题
- 开发期间修改配置ID后,旧配置存储在本地但数据结构不完整
- 删除损坏配置时报错"Configuration does not exist"
- 即使删除成功,配置仍然存在于列表中
## 根本原因
- 存储key和配置ID不一致:旧配置自带ID字段与存储key不匹配
- 删除操作使用修复后的ID查找,无法匹配存储中的实际key
## 解决方案
### 1. deleteConfig - 容错处理
- 移除严格的存在性检查,不再抛出异常
- 允许删除不存在的配置(降级处理)
- 添加详细的日志输出用于诊断
### 2. getConfig - 安全修复
- 尝试修复损坏的配置结构
- 即使修复失败也返回配置,确保可以删除
- 补齐缺失的provider/model字段
### 3. getAllConfigs - 关键修复
- **强制使用存储key作为配置ID**(最关键)
- 保证读写一致性:删除时使用的ID = 存储中的key
- 对无法修复的配置返回占位对象,标记为disabled
### 4. ensureSelfContained - 容错降级
- 捕获修复失败的异常
- 创建占位配置,包含完整的provider/model结构
- 自动标记为disabled,引导用户删除
## 效果
- ✅ 损坏配置可以正常显示和删除
- ✅ 删除操作不再报错
- ✅ ID一致性得到保证
- ✅ 向后兼容,支持配置结构变更
- ✅ 用户无需手动清理本地存储
2025-09-29 23:40:24 +08:00
linshen
719ce8daa9
refactor(ui):重构图像工作区导入语句
...
- 将 IMAGE_MODE_KEYS 的导入语句独立出来
- 调整导入顺序以提高代码可读性- 保持核心功能逻辑不变
2025-09-29 23:11:47 +08:00
linshen
9c7b7d7fe5
refactor(ui):重构选择器选项数据结构和访问器
...
- 引入标准化的 SelectOption、ModelSelectOption 和 TemplateSelectOption 类型定义
- 创建 DataTransformer 工具类用于将原始数据转换为标准选项格式
- 添加 OptionAccessors 简化 SelectWithConfig 组件的属性访问
- 统一模板和模型选择器的数据处理逻辑
- 移除重复的选项格式化函数,提升代码复用性
- 增强类型安全性并保持向后兼容性
- 更新 ImageWorkspace 和 App 组件以使用新的数据结构
- 导出新的工具类和类型定义供外部使用
2025-09-27 23:36:39 +08:00
linshen
285b2c50bf
refactor(ui): 重构组件架构并新增上下文模板类型支持
...
- feat(TemplateManager): 新增3个上下文相关模板类型
- contextSystemOptimize: 上下文系统优化模板
- contextUserOptimize: 上下文用户优化模板
- contextIterate: 上下文迭代模板
- 完善类型映射和选择逻辑
- refactor(App): 组件统一化重构
- 将ModelSelectUI和TemplateSelectUI替换为SelectWithConfig
- 实现统一的选择器组件,提高代码复用性
- 新增响应式数据管理和状态同步机制
- 优化模板和模型选择的刷新逻辑
- 改进v-model绑定方式,符合Vue 3最佳实践
- improve: 状态管理优化
- 新增templateOptions和textModelOptions响应式数据
- 实现自动状态同步和选择验证
- 优化错误处理和边界情况处理
2025-09-27 22:59:44 +08:00
linshen
0d2322b118
feat(ui): 更新图像模式模板选择逻辑与组件交互
...
- 在storage-keys.ts中新增文本到图像和图像到图像的模板选择存储键
- 在App.vue中优化模板管理器关闭逻辑,确保图像模式下模板列表刷新
- 在ImageWorkspace.vue中引入SelectWithConfig组件,增强模板选择的灵活性与可配置性
- 在useImageWorkspace.ts中完善模板恢复逻辑,支持不同模式下的模板选择持久化
- 在ModelManager.vue中支持外部事件切换页签,提升用户体验
- 增强了模板选择的用户交互反馈,确保更好的使用体验
2025-09-27 22:28:18 +08:00
linshen
9fa70ef2f1
feat(template): 重构图像优化模板,新增多种优化选项
...
- 更新图像优化模板,移除不再使用的DALL-E优化模板
- 新增摄影优化和设计文本编辑优化模板,增强图像生成的灵活性
- 优化现有模板描述,强调自然语言表达,避免使用技术参数
- 更新模板内容,确保符合中文和英文的文化背景与美学要求
- 改进输出要求,确保生成的提示词清晰、具体且易于理解
2025-09-27 22:00:15 +08:00
linshen
fbf6b92cdb
feat(ui): 更新主题颜色配置以支持多种视觉模式- 调整了浅色主题的主色调及相关组件颜色
...
- 新增了米杏模式的主题配置选项
- 优化了深色主题下的色彩对比度和可读性
- 统一了各组件在不同主题下的视觉表现- 增强了主题颜色在各种状态下的交互反馈- 改进了滚动条、边框和文本颜色的细节处理-为按钮、输入框等组件添加了更丰富的主题变量
2025-09-27 20:59:12 +08:00
linshen
2e6931780d
feat(ui): 新增经典主题风格及相关国际化支持
...
- 在naive-theme.ts中添加经典主题配置,包含颜色和样式设置
- 在MainLayout.vue中优化布局,增加主内容包装器以支持新主题
- 在ThemeToggleUI.vue中实现经典主题图标的渲染逻辑
- 更新en-US.ts和zh-CN.ts文件,新增经典主题的国际化翻译
此次更新增强了用户界面的主题选择功能,提供了更多样化的视觉体验。
2025-09-27 00:16:11 +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
linshen
2ffb7556ee
feat: 实现图像模式与多模态功能架构
...
- 新增图像模式支持文生图(T2I)和图生图(I2I)功能
- 实现图像服务层,支持Gemini/Seedream/OpenAI等多适配器
- 升级功能模式架构:basic/pro/image三重模式系统
- 新增图像模型管理器与专用UI组件
- 优化存储键管理,统一图像模式相关配置
- 完善国际化支持,新增图像模式相关翻译
- 增强模型管理器,支持文本/图像双模型管理
2025-09-20 21:55:26 +08:00
linshen
6e4917852a
feat: 实现全局功能模式系统与上下文模板架构
...
* 新增全局功能模式切换(basic/pro)
- 实现 useFunctionMode 组合式函数
- 支持模式记忆与持久化存储
- 自动模板类型映射与切换
* 重构模板系统架构
- 新增6类模板类型:基础3类 + 上下文3类
- 实现上下文模板(contextSystemOptimize、contextUserOptimize、contextIterate)
- 统一存储键管理,解决跨包重复定义问题
* 增强上下文驱动优化
- 新增14个上下文版本模板(中英双语)
- 支持会话上下文、工具上下文传递
- 实现变量优先级管理系统
* 优化用户体验
- 模式切换自动通知与反馈
- 模板选择状态分离保存
- UI组件响应式更新
* 改进代码质量
- 遵循SOLID、DRY、KISS原则
- 完善TypeScript类型定义
- 清理冗余测试文件
测试结果:所有功能完美工作,优化效果显著提升
2025-09-14 00:07:01 +08:00
linshen
232f04db60
mkdocs: 初始化 mkdocs 文档库
...
- 新增多个文档文件,覆盖基本使用、高级功能、部署指南等
- 创建数据管理、模型配置、历史记录等详细指南
- 添加上下文管理、工具调用、变量系统等高级功能文档
- 提供快速开始、常见问题、故障排除等实用信息
2025-09-13 23:43:27 +08:00
linshen
162cacc951
refactor(ui): 优化ConversationManager布局设计与交互体验
...
- 重构ConversationManager为紧凑行式布局,提升空间利用效率
- 新增角色标签下拉切换功能,简化角色编辑操作
- 输入框改为单行自适应,减少视觉占用
- 操作按钮hover显示,降低界面噪声
- 统一ContextEditor、PromptPanel卡片样式
- 同步Extension和Web版本布局一致性
2025-09-11 23:51:07 +08:00
linshen
dd391984ac
feat: 增强上下文管理功能
...
- 优化变量管理API调用,简化为allVariables.value
- 添加上下文加载状态跟踪(isContextLoaded),区分首次加载和已加载状态
- 实现自动默认模板填充,首次打开上下文编辑器时根据优化模式自动加载模板
- 添加optimizationContext变化监听,实现自动持久化功能
- 改进ContextEditor变量统计,只计算真正的全局自定义变量
- 增强错误处理,变量管理器刷新失败时不阻塞流程
影响范围:
- packages/extension/src/App.vue
- packages/web/src/App.vue
- packages/ui/src/components/ContextEditor.vue
2025-09-11 23:45:31 +08:00
linshen
43152b1e5c
fix(i18n): 修复ContextEditor相关国际化字段缺失问题
...
- 新增contextEditor.userTemplates字段支持用户模板显示
- 新增contextEditor.variableStatus字段作为变量状态列标题
- 同步更新中英文国际化文件
修复的字段:
- userTemplates: '用户模板' / 'User Templates'
- variableStatus: '状态' / 'Status'
解决问题:
- 修复用户提示词优化模式下模板分类显示异常
- 修复变量管理表格状态列标题显示异常
- 确保中英文环境下的一致性体验
2025-09-11 23:40:36 +08:00
linshen
171f00e98b
feat(desktop): 新增系统代理自动检测与应用功能
...
- 实现基于Electron session.resolveProxy()的系统代理自动检测
- 集成undici全局分发器,为所有Node.js网络请求启用代理支持
- 支持PROXY/HTTPS/SOCKS/SOCKS5等多种代理协议
- 提供优雅降级机制,代理设置失败时自动回退到直连模式
- 添加调试模式支持,通过DEBUG_PROXY环境变量启用详细日志
技术实现:
- 新增setupGlobalProxyDispatcherFromSystem()函数处理代理配置
- 使用undici.ProxyAgent统一管理代理连接
- 在服务初始化前设置全局代理,确保所有API调用生效
- 完善错误处理,任何步骤失败都不影响应用正常启动
适用场景:
- 企业网络环境中的代理访问需求
- 开发调试时的本地代理配置
- 需要代理的受限网络环境
2025-09-11 23:29:51 +08:00
linshen
ab51293d17
refactor(desktop): 简化Electron IPC流式通信架构
...
- 重构ElectronPromptServiceProxy,移除复杂的事件监听管理逻辑
- 统一流式方法接口,从事件驱动模式改为直接回调模式
- 优化preload层StreamID自动生成和资源清理机制
- 新增testCustomConversationStream工具调用支持
- 提升代码可维护性,消除重复的IPC事件处理代码
技术改进:
- 简化proxy层:移除手动IPC事件监听,统一使用回调接口
- 优化preload层:内部管理StreamID生成和事件生命周期
- 完善错误处理:双重保护机制和自动资源清理
- 符合SOLID原则:职责分离,降低耦合度
2025-09-11 23:11:46 +08:00
linshen
c0f1b124cd
feat(i18n): 添加用户模板相关翻译
...
- 在 en-US.ts 和 zh-CN.ts 文件中添加了 userTemplates 的翻译
-英文翻译为 "User Templates"- 中文翻译为 "用户模板"
2025-09-11 22:56:53 +08:00
linshen
6cd57f35b8
feat(ui): 添加快速模板预览功能
...
- 在 ContextEditor 组件中添加模板预览弹窗- 实现模板预览的显示逻辑和界面布局
- 添加模板预览相关的数据结构和方法- 优化模板卡片的展示样式
2025-09-11 22:26:16 +08:00
linshen
11e90d5dbb
refactor(extension, web): 重构高级模式下的提示词测试功能- 引入快速模板管理器,支持动态加载默认模板
...
- 统一处理对话上下文和变量,提高代码复用性- 优化工具调用逻辑,仅在高级模式下启用
- 调整测试流程,统一使用自定义会话测试
2025-09-11 21:50:36 +08:00
linshen
2b5d4ac1d6
feat(readme): 添加高级功能预览并更新项目计划
...
- 在 README 中添加高级功能预览章节,介绍上下文变量管理、工具调用支持和高级测试模式等新功能
- 更新项目计划,增加对高级模式、图片输入、工作区管理等功能的支持
- 在 README_EN 中添加相应的英文内容
2025-09-07 22:19:33 +08:00
linshen
e7687dfd8c
feat: 新增toolsContext预定义变量支持
...
- 在核心常量中添加toolsContext变量定义
- 用于快速模板中的{{toolsContext}}变量替换
- 支持系统自动注入可用工具信息
- 更新变量编辑器和导入器
- 将toolsContext加入预定义变量过滤列表
- 防止用户创建同名自定义变量产生冲突
- 完善国际化支持
- 中英文添加toolsContext变量说明文案
- 标注为系统自动注入的工具信息
- 更新相关测试用例
- 集成测试中同步更新预定义变量列表
- 确保测试覆盖新增变量的处理逻辑
这个变更为工具上下文模板提供了完整的变量系统支持。
2025-09-11 21:11:03 +08:00
linshen
ccc4d98d0d
feat: 重构快速模板系统,提升上下文工程能力
...
- 重新设计系统提示词模板,从基础测试转向实用示例
- 添加默认问答、工具上下文问答、专业咨询等6个代表性模板
- 新增猫娘风格少样本示例、思维链推理、安全边界等演示
- 所有模板以用户消息结束,便于AI响应
- 优化用户提示词模板设计
- 聚焦单一{{currentPrompt}}变量的不同处理模式
- 包含直接执行、工具上下文执行、结构化输出等6种模式
- 展示专家咨询、思维链分析、多方案对比等技术
- 统一模板标识符规范
- 中英文版本首个模板ID统一为"default"
- 支持自动化初始化和回退机制
- 增强模板管理器功能
- 新增getTemplate()方法支持ID查找
- 完善导出接口便于外部调用
- 改进上下文初始化逻辑
- Web应用使用快速模板替代硬编码默认值
- 根据优化模式动态加载对应模板
- 优化术语一致性
- 统一使用"工具上下文"概念提升理解准确性
- 移除混淆性的"工具调用"表述
2025-09-07 13:35:44 +08:00
linshen
83a21238cc
build: 更新项目版本号至2.0.0
...
-将 @prompt-optimizer/desktop 包的版本号从 1.4.4 修改为 2.0.0
- 将扩展程序的版本号从 1.4.4 修改为 2.0.0
- 将 prompt-optimizer 项目的版本号从 1.4.4 修改为 2.0.0
2025-09-07 12:55:47 +08:00
linshen
ac621fd011
fix: 提升上下文管理、国际化与测试覆盖,优化数据服务
...
主要变更:
- **上下文变量管理**: 完善上下文变量的作用域隔离,修复ContextEditor中硬编码i18n字符串问题,添加缺失的国际化键,更新术语并将“变量覆盖”更名为“上下文变量”,并修正变量状态显示逻辑。通过关键架构修复,防止上下文变量污染全局变量库。
- **国际化优化**: 移除国际化文件中冗余的“变量状态”字段,确保文本简洁性和一致性。
- **数据服务重构**: 移除DataManager中的getContextRepo方法,直接通过services引用上下文仓库;统一DataManager.vue组件中服务不可用时的错误提示信息。
- **功能测试与文档**: 新增并完成08-12号测试场景的功能验证,涵盖上下文持久化、变量管理、工具集成、导入导出等核心功能。同时清理了临时文档目录,并更新了测试自动化相关文档结构。
验证结果:
- **国际化**: 所有国际化文本正常显示,无控制台错误。
- **作用域隔离**: 上下文变量已成功隔离,不会出现在全局变量管理器中。
- **功能完整**: 上下文变量增删改查及持久化功能正常,数据管理服务及相关功能稳定运行。
- **测试覆盖**: 所有新旧测试场景设计合理且功能验证通过,高级模式集成(variables/messages/tools)成功,实时持久化、变量优先级系统、工具调用链路稳定,Compare模式测试、导入导出功能正常运行。
2025-09-07 12:32:54 +08:00
linshen
f04b88436a
feat: 实现完整的上下文持久化与变量管理系统
...
新增核心功能:
- 基于单文档存储的上下文仓库(ContextRepo),支持CRUD和导入导出
- 预定义变量保护机制,防止系统变量被意外覆盖
- 上下文级变量管理,支持独立的变量作用域
- 完整的Electron IPC代理层,支持跨进程通信
- DataManager集成上下文服务,统一数据导入导出接口
技术实现亮点:
- 使用updateData原子操作确保并发安全
- 三种导入模式(replace/append/merge)灵活应对不同场景
- 完整的TypeScript类型安全和错误处理体系
- 38个单元测试用例覆盖所有核心功能
- 国际化支持,移除所有硬编码字符串
架构优化:
- 严格遵循SOLID原则的模块设计
- Repository模式实现数据持久化抽象
- 工厂模式支持多环境部署(Web/Desktop)
- 统一的IImportExportable接口规范
UI增强:
- 上下文编辑器支持实时持久化和变量管理
- 数据管理器新增上下文导入导出功能
- 完整的中英文国际化资源
文件变更:
- 新增: packages/core/src/services/context/* (核心服务)
- 新增: packages/core/tests/unit/context/* (单元测试)
- 更新: DataManager支持上下文服务集成
- 更新: Electron主进程和预加载脚本IPC处理
- 更新: UI组件支持上下文功能和国际化
此次提交完成了上下文持久化功能的完整实现,为用户提供了
强大的对话上下文管理和变量系统,显著提升了应用的易用性。
2025-09-07 10:23:25 +08:00
linshen
9a4de02438
feat: 完成上下文编辑器重构、组件清理与文档整合
...
此次提交整合了上下文编辑器的大规模重构、废弃组件的清理以及workspace文档的更新,旨在提升系统性能、代码可维护性和开发体验。
### 主要更新
- **上下文编辑器重构**:
- 移除 ConversationMessageEditor, ConversationSection 等废弃组件。
- 清理 ConversationManager 和 ContextEditor 未使用的 props。
- 实现无障碍功能增强和焦点管理。
- 创建新的工具 composables 和组件类型。
- 添加全面的测试覆盖和性能监控。
- **组件与代码清理**:
- 移除重构前的 `VariableManager.vue` 组件及其导出(497行),由 `VariableManagerModal.vue` 替代。
- 删除已废弃的 `AdvancedTestPanel.vue` 组件及其导出,已被 `TestAreaPanel` 统一组件完全替代。
- 清理未使用的 `VariableImportExport.vue` 组件、相关测试文件和类型定义。
- 遵循 YAGNI 原则,确保移除的组件在任何地方均未被使用。
- 构建包大小减少约 55KB(3552KB -> 3497KB)。
- **Workspace文档整合**:
- 归档完整的 Naive UI 迁移项目 (包含8个综合文档)。
- 补充上下文编辑器重构缺失的spec工作流文档。
- 建立 `docs/examples/` 目录提供配置模板。
- 更新归档 `INDEX.md` 多维度快速查找索引。
- 清理 workspace 目录中15个重复文档。
### 技术改进与优化
- 优化 Git 配置,将 `tsconfig.tsbuildinfo` 从追踪中移除并增强 `.gitignore` 规则覆盖所有 `tsbuildinfo` 文件。
- 添加高级 TypeScript 类型和组件接口,实现工具调用显示和变量导入导出组件。
- 增强变量管理与编辑器集成,并保持 `VariableManager.ts` 服务层(仍在使用)。
- 添加全面的单元测试和e2e测试覆盖,改进开发文档和API指南。
- 所有现有功能完整性验证通过,无构建错误或运行时错误。
2025-09-06 23:45:42 +08:00