49 Commits
Author SHA1 Message Date
arkcia 390377932b fix(template): preserve advanced template imports 2026-08-25 21:45:37 +08:00
linshen 0c3679511d fix(test): complete Basic/System image attachment support (#196) 2026-07-18 18:13:41 +08:00
linshen 3126ae4530 feat(test): support image attachments in Basic/System tests (#196) 2026-07-17 23:25:52 +08:00
linshen 0e4f58292a fix(desktop): route unsigned macOS updates to releases (#313)
Refs #313
2026-07-16 22:49:54 +08:00
linshen 1554e8a4a0 fix(desktop): support page zoom shortcuts 2026-06-22 21:47:36 +08:00
linshen 69db225a1a feat(model): support headers and text quick switching
- Add custom request header parsing and provider metadata resolution

- Add quick switching controls for text model workspaces

- Keep model UI labels and custom header output tidy
2026-05-10 23:08:14 +08:00
linshen b0680cda7e feat: add deployment-aware remote backups 2026-05-08 21:17:23 +08:00
linshen 50b05a0868 fix: normalize LLM image inputs 2026-05-06 23:37:23 +08:00
linshen 61f4fe4af2 fix(desktop): register preference IPC handlers
Register the desktop preference IPC bridge, add coverage for preload/main handler parity, and keep the favorite preview extension host props aligned.
2026-05-03 13:15:19 +08:00
linshen 0c9ddd5063 fix(data): include image model configs in backups
Include image model configuration data in app-wide export/import flows and initialize the image model manager before wiring backup services.
2026-05-03 13:15:18 +08:00
linshen 11a817f833 feat(favorites): manage prompt asset versions
- Store and expose prompt-asset version history through core and desktop bridges
- Add version browsing and preview surfaces to the favorite editor/detail UI
- Simplify version navigation around a dedicated preview modal
- Cover version persistence and UI behavior with focused regressions
2026-05-01 19:18:33 +08:00
linshen 868d36b026 fix(desktop): bypass proxy for local llm endpoints 2026-04-18 17:13:58 +08:00
linshen d0f1d45c17 fix(storage): harden startup safety and favorite asset handling 2026-04-06 14:13:28 +08:00
linshen 90b957c983 feat(image): deliver multi-image generation workflow
- add multi-image request types, routing, favorites integration, and desktop bridges
- support multimodal streaming prompt optimization with ordered image inputs
- enable Seedream multi-image generation and redesign the multi-image workspace
- add coverage for routing, persistence, workspace guards, and end-to-end flows
2026-04-06 14:13:28 +08:00
linshen 3663f96251 fix(desktop): add missing prompt message IPC bridge 2026-03-13 17:33:29 +08:00
linshen c916d9eef3 fix(config): add missing provider env mappings
Enable Anthropic env-based default model creation and align provider lists/matching across desktop logs, MCP selection, and docs.
2026-02-10 18:04:29 +08:00
linshen 69f9115ffd fix(desktop): add localized right-click edit menu 2026-02-01 10:34:02 +08:00
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 320957c385 feat(data): add desktop storage info to data manager 2026-01-20 20:43:00 +08:00
linshen 8c17e9c9e7 fix(desktop): align IPC for image errors and tools
- Align desktop IPC with structured image errors\n- Support LLM tools streaming over IPC
2026-01-18 13:17:00 +08:00
linshen f75cf68ed6 fix(desktop): 修复 llm-sendMessageStream IPC 处理器回调名称不匹配问题
- onContent → onToken (符合 StreamHandlers 接口)
- onThinking → onReasoningToken
- onFinish → onComplete

修复评估功能在 Desktop 版本中报错 "callbacks.onToken is not a function" 的问题
2025-12-19 11:29:33 +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 68540b244d feat: 将项目协议从 MIT/ISC 迁移到 AGPL-3.0
- 替换 LICENSE 文件为 AGPL-3.0 完整协议文本
- 更新所有 package.json 的 license 字段为 AGPL-3.0-only
- 更新 README 文件协议说明,采用简洁易懂的描述方式
- 为关键入口文件添加 AGPL-3.0 标准协议头部注释
- 明确说明 AGPL-3.0 允许商业使用但要求网络服务开源

BREAKING CHANGE: 协议从宽松的 MIT/ISC 变更为强 Copyleft 的 AGPL-3.0
2025-10-30 22:41:45 +08:00
linshen c8e06bdfb0 feat: 优化上下文模式架构,增强变量管理并修复核心功能
本次提交主要围绕上下文模式进行大规模重构与功能增强,并修复了关键的变量注入和模型初始化问题。

**核心重构与功能增强**
- **上下文模式架构优化**:
  - 将 `ContextWorkspace` 拆分为 `ContextSystemWorkspace` 和 `ContextUserWorkspace`,使组件职责更单一,消除内部条件逻辑。
  - 优化组件目录结构,按功能模块组织(如 `components/context-mode/`, `components/variable/`)。
  - 新增 `PromptPreviewPanel` 组件和 `usePromptPreview` composable,提供提示词实时预览功能。
  - 引入 `useContextManagement` composable,统一管理上下文状态和会话变量。
  - 为上下文模式添加 E2E 测试。
- **类型与构建**:
  - 扩展 `ContextMode` 相关类型定义,更新组件 Props 和 Events 类型。
  - 修复所有移动组件的相对导入路径和 `index.ts` 导出路径。

**主要问题修复**
- **修复上下文-用户模式会话变量注入问题**:
  - **核心问题**: `testPromptWithType` 中错误地展开了 `ComputedRef` 对象而非其值,导致 `variables` 对象混入 Vue 响应式系统内部属性,Mustache 模板引擎无法正确访问嵌套的会话变量值。
  - **修复内容**:
    - 优化 `App.vue` 变量合并逻辑,使用 `currentContextVariables.value` 获取实际值。
    - `useContextManagement.ts` 新增 `updateContextVariable` 函数,统一管理会话变量。
    - 简化 `TestAreaPanel.vue` 架构,移除 `userInputValues` 临时存储,改为单一数据源。
    - `ContextUserWorkspace.vue` 添加 `variable-change` 事件转发。
  - **影响范围**: 上下文-用户模式的变量替换功能、测试面板的会话变量输入、会话级变量管理和持久化。
  - **测试验证**: 会话变量正确注入到测试请求,全局变量和预定义变量正常工作,变量合并优先级正确(全局 < 会话 < 预定义),Mustache 模板引擎正确替换占位符。

- **修复模型选择初始化竞态条件**:
  - **问题描述**: 模型选择初始化时可能出现竞态条件,导致在初始化完成前触发不必要的保存操作或回退逻辑错误。
  - **修复内容**:
    - 引入 `isModelSelectionReady` 和 `isInitializing` 标志来精确跟踪初始化状态。
    - 防止在初始化阶段的 `watch` 触发不必要的保存操作。
    - 确保模型选择初始化完成后再执行回退逻辑。
    - 调整相关代码格式(单引号转换为双引号)。
2025-10-21 22:29:31 +08:00
linshen 2a0151ab81 feat(favorite): 实现收藏功能核心服务与IPC通信
- 新增 ensureDefaultCategories 方法确保默认分类存在
- 优化标签添加逻辑,实现幂等性处理- 移除重复的 FavoriteTagAlreadyExistsError 错误类型
- 仅在新增标签时更新统计信息,避免重复计算
- 在桌面端主进程新增完整的收藏管理 IPC 处理器
- 在预加载脚本中暴露收藏管理器接口给渲染进程
- 优化保存收藏对话框的标签处理逻辑
- 新增标签去重与类型安全处理
- 在分类管理组件中引入 watch API
- 完善收藏功能的错误处理与数据序列化机制
2025-10-19 23:36:40 +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 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 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 e329acc123 feat(core): 添加多自定义模型支持
- 实现了无限数量自定义模型的支持
- 添加了环境变量自动发现和注册功能- 优化了模型配置生成逻辑
- 增加了严格的配置验证和错误处理
- 改进了性能和内存使用
- 完善了相关文档和测试
2025-08-02 20:22:48 +08:00
linshen e862c20e4d refactor(updater, ui): 优化更新流程、移除冗余状态管理
- 重构更新器,移除状态缓存,优化检查流程,改为每次启动时重新检测。
- 优化预览版提示逻辑和界面样式,增加版本号和提示信息的视觉区分。
- 移除`useElectronAPI` Hook,简化 Electron API 访问,直接使用 `window.electronAPI`。
- 调整 Release Notes 生成逻辑,修复检出代码问题,获取完整 git 历史和所有 tags。
- 优化版本忽略功能,`useUpdater`改为单例模式,支持预览版过滤。
- 移除build:parallel脚本中的build:desktop-only任务。

docs(dev): 更新桌面端自动更新系统设计文档

- 新增系统设计文档,描述自动更新系统的架构和界面布局。
- 补充 electron-updater 版本号说明,推荐使用 SemVer 2.0.0 标准。
2025-07-13 20:23:32 +08:00
linshen ba1b862d43 feat(updater, ui): 重构更新逻辑并优化体验
- 重构更新逻辑,移除私有仓库支持,简化流程。
- 优化版本比较和更新检测,精简UI组件。
- 增加日志输出,改进错误处理和用户提示。
- 新增版本忽略功能,允许用户忽略特定版本更新。
- 更新 GitHub 发布工作流,移除私有仓库逻辑。
- 更新文档,新增开发经验总结。
2025-07-13 15:44:15 +08:00
linshen 523dd6f29f fix(updater): 修复下载失败无反馈、设置恢复及IPC事件缺失问题
- 新增下载错误提示,优化用户体验,完善国际化支持。
- 修复异常情况下用户设置未恢复问题,优化状态管理。
- 修复 IPC 事件常量缺失问题,更新前端监听事件名称。
- 实施原子操作架构重构,修复关键逻辑缺陷、状态同步、并发检查等问题。
- 添加UPDATE_DOWNLOAD_STARTED事件确保UI状态同步,重构前端API调用。

feat(docs): 新增版本更新系统修复文档

- 新增经验总结、开发草稿本、任务清单、环境变量配置说明及示例。
- 在主进程添加环境变量调试信息,帮助诊断配置问题。
2025-07-13 11:35:51 +08:00
linshen 3d1077ec11 fix(updater, desktop, ui): 优化自动更新系统,修复bug并改进用户体验
- 修复下载失败、依赖冲突、版本比较等问题
- 优化更新系统,新增多版本忽略功能
- 重构更新检查逻辑,采用请求-响应模式
- 优化UI,同时显示正式版和预览版信息,简化操作流程
- 增强设置修改的安全性,去除冗余选项
- 完善错误处理和日志记录,便于问题追踪

feat(updater, ui): 重构更新界面并优化更新检查逻辑

- 重构更新检查逻辑,采用请求-响应模式
- 优化UI,同时显示正式版和预览版信息
- 添加独立的下载按钮和GitHub链接
- 优化版本信息的视觉呈现

refactor(updater): 深度重构自动更新系统

- 优化组件架构设计,提高代码复用性和独立性
- 完善错误处理机制,确保关键信息不丢失

ci(release): 优化版本发布流程和配置

- 动态配置 package.json 文件
- 增加详细的版本类型判断和处理
- 优化 release notes 内容和 GitHub Release 信息
- 为desktop构建添加 GitHub token 环境变量
2025-07-12 22:43:19 +08:00
linshen e54f1c77e0 feat(app): 集成自动更新、日志系统,优化构建和发布配置
- 集成electron-updater实现自动更新,支持检查、下载和安装;增强安全性,仅允许http/https链接。
- 实现自定义日志系统ConsoleLogger,劫持控制台日志,添加全局错误处理。
- 优化构建产物,更新发布配置和打包细节,移除package.json中的发布配置。
- 更新Electron应用图标结构,重构prompt-optimizer-data.json存储路径。
- 添加日志查看/清理脚本,更新UI组件和国际化支持。
2025-07-12 18:25:23 +08:00
linshen 71600b5081 feat: 重构导入导出架构
## 核心架构重构
- 创建IImportExportable接口,定义统一的导入导出规范
- 新增ImportExportError错误类,提供专门的错误处理
- 将导入导出逻辑从集中式DataManager分散到各个服务
- DataManager职责精简:从375行减至67行(-308行),仅负责协调

## 存储键架构优化
- 移动storage-keys.ts从ui包到core包,实现统一管理
- 修复存储键双重用途问题:物理存储键vs逻辑JSON导出键
- PreferenceService添加'pref:'前缀处理物理存储
- 解决数据导出不完整的关键架构缺陷

## 服务层改造
### ModelManager
- 实现IImportExportable接口(+209行,-153行)
- 添加exportData/importData/validateData方法
- 保持向后兼容的数据格式

### TemplateManager
- 实现分布式导入导出逻辑
- 移除过度设计的configurable storageKey
- 统一使用PreferenceService管理用户偏好

### HistoryManager
- 添加完整的导入导出实现
- 支持数据验证和错误处理

### PreferenceService
- 实现统一的用户设置导入导出
- 处理存储键前缀转换逻辑
- 支持builtin-template-language等核心设置

## Electron桌面端更新
- main.js: 新增148行IPC处理逻辑
- preload.js: 新增177行API暴露
- 更新所有service proxy类支持新接口
- 保持IPC通信的类型安全

## 测试体系完善
- 新增各服务专门的import-export.test.ts文件
- 创建data/import-export-integration.test.ts集成测试
- 建立AI自动化测试框架验证存储键一致性
- 更新现有测试适配新架构

## 文档与架构说明
- 创建import-export-interface-design.md设计文档
- 添加storage-key-architecture.md架构说明
- 建立AI自动化测试文档体系
- 更新workspace文档记录重构过程

BREAKING CHANGE: 导入导出接口从集中式DataManager重构为分布式服务实现,
各服务现在必须实现IImportExportable接口,存储键架构发生变化
2025-07-12 11:56:14 +08:00
linshen 037e67be3a feat: 添加应用窗口图标支持,优化图标文件存在性检查 2025-07-06 14:21:41 +08:00
linshen 07475aba2f feat: 增强Electron环境下的外部链接处理,优化GitHub仓库打开逻辑 2025-07-06 13:35:33 +08:00
linshen ea77ff44ec feat: 增强IPC序列化与数据一致性,修复备份恢复机制,添加安全序列化函数以清理IPC传递的Vue响应式对象,确保数据完整性 2025-07-05 23:01:51 +08:00
linshen b5f3b263f7 feat: 优化桌面应用打包方式,改为ZIP格式以简化存储路径和代码架构 2025-07-05 21:05:32 +08:00
linshen bb2cf778d5 feat: 添加IPC架构分析文档,优化Vue响应式对象的序列化处理,修复应用退出时无限循环问题 2025-07-05 17:36:51 +08:00
linshen 8a35c010cc feat: 新增文件存储支持与历史记录管理优化
- 在`.gitignore`中添加了`prompt-optimizer-datas`以排除相关数据文件。
- 更新`INDEX.md`,新增桌面版文件存储实现的相关信息,确保文档的完整性。
- 在`index.ts`中导出了`FileStorageProvider`,支持文件存储功能。
- 修改`factory.ts`,新增对文件存储类型的支持,并优化错误处理逻辑。
- 在集成测试中模拟了历史记录的保存与验证,确保功能的正确性。
- 更新了多个测试用例,确保历史记录管理逻辑的准确性与一致性。

这些变更旨在提升数据存储的灵活性与历史记录管理的可靠性,确保用户体验的优化。
2025-07-05 16:24:21 +08:00
linshen 67d1d82230 feat: 优化模板加载日志与IPC错误处理
- 在`static-loader.ts`中优化了模板加载成功日志的输出格式,确保信息更加清晰易读。
- 在`main.js`中完善了`model-getEnabledModels`的IPC处理逻辑,增加了错误处理,确保在发生错误时能够返回友好的错误响应。
- 在`preload.js`中更新了`getEnabledModels`和`get`方法的错误处理逻辑,确保在出错时抛出异常,提升了代码的健壮性。
2025-07-05 10:02:56 +08:00
linshen bd55449736 feat: 更新语言切换功能与接口一致性
本次提交主要完成了以下变更:

- 在`README.md`中新增了功能提示词管理语言切换按钮修复的条目,确保文档的完整性。
- 重构了`ElectronModelManagerProxy`和`ElectronTemplateLanguageServiceProxy`,将多个同步方法改为异步方法,确保与主进程的IPC调用一致。
- 更新了`TemplateManager`和`languageService`的接口定义,确保所有方法均为异步调用,提升了代码的一致性和可维护性。
- 在`main.js`和`preload.js`中完善了IPC处理逻辑,确保语言相关功能的正确转发。

这些更新旨在提升项目的可维护性和用户体验,确保开发者能够更专注于核心功能的开发。
2025-06-29 22:26:51 +08:00
linshen 6c6b68726f feat: 接口驱动架构改造与TemplateManager重构
本次提交主要完成了以下变更:

- 在`experience.md`中新增接口驱动架构改造的核心原则、最佳实践和审核检查清单,确保所有模块通过明确定义的接口进行交互。
- 重构`TemplateManager`,移除复杂的异步初始化逻辑,简化其依赖关系,确保其只关注核心业务。
- 在`scratchpad.md`中更新当前任务进展,记录了对各个服务的重构状态和计划步骤。
- 在`todo.md`中添加了紧急任务和重要任务,确保架构改造的顺利进行。

这些更新旨在提升项目的可维护性和一致性,确保开发者能够更专注于核心功能的开发。
2025-06-29 20:31:42 +08:00
linshen d1f6c62390 feat: 重构UI层状态持久化架构,增强Electron API交互与Prompt服务
- 导出偏好设置服务类型和实现,增强服务可用性。
- 实现`ElectronPreferenceServiceProxy`和`PreferenceService`,提供偏好设置管理功能。
- 更新组件,使用偏好设置服务替代原有存储逻辑,提升代码可维护性和一致性。
- 集成偏好设置服务的IPC处理逻辑,确保主进程正确处理相关请求。
- 新增重构UI层状态持久化架构任务,目标是将UI层对`useStorage`的直接依赖替换为`PreferenceService`。
- 优化IPC通信,新增对流式处理的支持,增强Prompt服务功能。
- 集成Prompt服务的IPC处理逻辑,并新增成功和错误响应辅助函数,简化IPC处理逻辑,提升代码可读性和一致性;同时优化多个IPC处理函数,确保在发生错误时能够统一返回错误信息,增强错误管理。
- 新增对`iteratePrompt`、`testPrompt`、`getHistory`、`getIterationChain`等方法的支持,暴露Prompt服务接口,方便前端调用,扩展前端与主进程的交互能力。
- 删除不再使用的Markdown输出规则和AI开发工作流程文档,提升项目的可维护性和文档的清晰度。
2025-06-29 17:02:33 +08:00
linshen 8b55f0e574 feat: 修复Monorepo构建与依赖解析问题,优化开发命令,更新依赖,完善文档,简化项目结构,统一异步调用,优化错误处理
本次提交主要完成了以下变更:

- 在`package.json`中新增`dev:desktop:parallel:fixed`命令,解决并行进程导致的样式丢失问题。
- 更新`experience.md`文档,记录Monorepo中构建与依赖管理的最佳实践和遇到的问题。
- 在`scratchpad.md`中详细记录了修复过程和解决方案,确保后续开发者能够参考。
- 更新pnpm锁定文件,添加dotenv和@prompt-optimizer/core依赖。
- 更新Electron版本至^37.1.0,修复桌面端IndexedDB问题。
- 简化项目结构,删除 `pnpm-lock.yaml` 文件和冗余文档。
- 将多个同步方法改为异步方法,确保模板管理器的操作能够正确处理异步逻辑。
- 优化模板获取和列表加载的逻辑,统一使用 `await` 关键字,避免潜在的时序问题。

这些更新旨在提升项目的稳定性和开发效率,确保最佳实践得到贯彻。
2025-06-29 15:00:27 +08:00
linshen 31b807ba0b feat: 重构核心服务以支持Electron环境,并增强历史管理器功能
- 核心服务:
    - 移除单例导出,引入工厂函数模式以提升灵活性和可测试性。
    - 显式接收依赖并处理重构中的依赖问题,更新文档以反映新的服务创建方式和依赖注入策略。
    - 添加相应的代理和管理器工厂函数,优化服务初始化逻辑,确保在Electron环境下的配置同步。
- 历史管理器:引入 `IModelManager` 支持模型管理,修改构造函数并恢复模型名称获取逻辑。
- 构建配置:
    - 更新 `.gitignore` 文件,添加桌面应用相关构建和分发文件的忽略规则。
    - 在 `package.json` 中新增桌面应用构建和开发命令。
    - 更新 `pnpm-lock.yaml` 以包含新依赖。
- 重构计划文档:移除循环依赖描述,增加重构反思与后续决策,优化 `ensureInitialized()` 调用,修正错误处理行为并提升测试代码严谨性。
2025-06-28 11:21:33 +08:00