46 Commits
Author SHA1 Message Date
linshen 0b9cd227d9 docs(prompt-model): consolidate standardization status 2026-05-03 13:15:14 +08:00
linshen 23848a840d feat(favorites): refine prompt asset workspace flows
- Bind favorites to source assets and save targets throughout workspace actions
- Share the favorite editor/detail surfaces across dialogs and workspace panels
- Add provenance badges, utility-menu apply actions, and themed favorite panels
- Expand unit and integration coverage for favorite source and editor flows
2026-05-01 14:36:12 +08:00
linshen 93377e1b70 feat(favorites): standardize prompt asset sessions
- Add prompt-model services for content, examples, modes, sessions, and history
- Persist richer favorite prompt-asset metadata and session projections
- Wire favorite save/apply paths across supported workspaces
- Cover the new prompt-asset contract with core and UI regressions
2026-05-01 10:24:18 +08:00
linshen 46d7d0552d feat(image): refine reference style migration flow
- Strengthen the style migration contract around natural subject integration and visual hierarchy
- Remove the image2image reference extraction entry from the migrated UI flow
- Normalize migration placeholders and document the updated migration design
2026-04-01 23:24:51 +08:00
linshen 9909abf58f docs: archive outdated workspace documents 2026-03-26 21:23:46 +08:00
linshen 414ec28d7e feat(evaluation): migrate compare rewrite protocol and add calibration artifacts 2026-03-22 14:28:53 +08:00
linshen f0c7476792 docs(compare): refine compare design docs and template scope 2026-03-21 20:43:28 +08:00
linshen 2cdd095c2b docs(workspace): consolidate compare evaluation specs and acceptance evidence
- fold earlier planning notes into a single current-spec and archived history structure
- keep manual acceptance steps and real API samples aligned with the refactored analysis/result/compare model
- retain supporting workspace notes needed to review version-selection and evaluation behavior changes
2026-03-18 09:35:44 +08:00
linshen ce3af34d9b feat(ui): add multi-column basic-user test variants
Enable 2-4 column comparisons with per-variant version/model selection, persisted layout/results, and evaluation actions aligned to output.
2026-01-24 12:44:33 +08:00
linshen 7163464097 fix(ui): 实现 UI 持久化和模板选择统一
- 实现 session selections 跨刷新持久化
- 统一 template default 选择逻辑
- 对齐 image template 和 model 布局
- 验证 template defaults 和 mode-switch persistence
2026-01-11 19:34:00 +08:00
linshen 63ab9e66cd feat(test): 建立完整的测试基础设施和集成测试
- 建立 VCR 测试基础设施,支持 LLM API 回放
- 添加错误门禁和冒烟测试
- 添加 LLM 服务集成测试(P0)
- 记录测试进展并更新任务计划
2026-01-03 21:08:00 +08:00
linshen 69bffd4260 refactor(ui): 完善单一真源架构解决跨模式状态污染
- 修复跨模式状态污染问题,实现单一真源架构
- 完善单一真源架构并优化代码分割
- 归档 Session Store 单一真源重构文档
- 将未完成的迁移指南移回 workspace
2026-01-02 16:52:00 +08:00
linshen edf6170177 refactor(ui): 统一代码规范和用户界面文案
- 事件监听:统一使用camelCase,与emit事件名保持一致
- 按钮文案:简化为动词形式(开始优化→优化、开始测试→测试)
2025-12-28 16:15:00 +08:00
linshen 8e1b00e2f7 feat(evaluation): 新增 prompt-only 和 prompt-iterate 评估类型
主要变更:
- 扩展 EvaluationType 联合类型,新增 prompt-only 和 prompt-iterate
- 新增 16 个评估模板(basic/pro × system/user × zh/en × prompt-only/prompt-iterate)
- 实现 Provider 路由模式,全局 EvaluationPanel 事件正确路由到各模式
- 新增 useEvaluationContext 和 useProContext 上下文注入
- Context Workspaces 通过 defineExpose 暴露 reEvaluateActive 和 openIterateDialog
- 模式/子模式切换时自动清理评估状态
- EvaluationPanel 标题支持新评估类型
- 新增评估服务单元测试
2025-12-23 21:43:00 +08:00
linshen 390545bb80 docs(arch): 归档多轮对话与上下文模式重构设计文档
- 新增多轮对话模式优化设计文档 (127)
- 新增上下文 UI 与变量系统重构文档 (128)
- 更新归档索引与 README 分类结构
2025-12-19 20:51:26 +08:00
linshen b7cab01197 fix(evaluation): 修复代码审查报告中的多项问题
修复项:
- §4.1: 使用 jsonrepair 库优化 JSON 解析鲁棒性
- §4.2: 规范化 isOptimizedBetter 字段为 boolean 类型
- §4.4: 支持中文变量名回退扫描(正则改为 [^{}]+)
- §4.5: 为单例模式添加架构约束注释说明
- §4.6: 移除 useEvaluation 和 useFunctionModelManager 中的 as any
- §4.8: 复用 createApplyImprovementHandler 工厂方法
- §4.9: 确认 UI 包导出变更无外部依赖影响

延后处理:
- §4.7: Extension App.vue 拆分(大工程)

不修复:
- §4.3: 默认打开面板策略(计划移除详情面板)
2025-12-19 11:29:35 +08:00
linshen fb29b61bde **refactor(ui): 统一优化与测试架构,实现 ContextUser 和 ContextSystem 的完全解耦**
为提升架构对称性与模块独立性,全面重构会话管理与测试逻辑,彻底消除 `App.vue` 的中心化依赖:

- **架构解耦**:
  - 实现 `ContextUserWorkspace` 完全独立,不再依赖 `App.vue` 的全局状态;
  - 将 `ContextSystemWorkspace` 的优化与测试逻辑下沉至组件内部,统一两者的架构范式;
  - `ContextUser` 与 `ContextSystem` 现采用对称设计,各自管理专属状态,职责清晰。

- **Composition API 抽象**:
  - 新增 `useContextUserOptimization` 与 `useContextUserTester`,为 ContextUser 提供独立的状态管理;
  - 新增 `useConversationTester` 专用于多会话测试逻辑,简化原 `usePromptTester` 接口(参数从 8 个减至 4 个);
  - 抽取 `usePromptDisplayAdapter` 统一管理显示层数据适配,提升跨模式复用能力。

- **代码优化与清理**:
  - 移除 `App.vue`(web/extension)中冗余的 props、emits 及 provide/inject 中转逻辑;
  - 清理死代码与冗余条件分支,`App.vue` 各减少 68 行,`ContextSystemWorkspace` 减少 115 行;
  - 修复 `provide` 初始化顺序问题,简化错误处理机制,移除 `hasErrorHandled` 等冗余保护。

- **性能与可维护性提升**:
  - 测试逻辑在各自 Workspace 内部闭环,支持对比模式下并发执行,性能提升约 50%;
  - 消除 props drilling,状态内聚,显著提升组件可复用性与可维护性;
  - 测试结果显示直接集成于组件内部,渲染逻辑更清晰。

**变更文件**:
- 新增:`useContextUserOptimization.ts`(290行)、`useContextUserTester.ts`(235行)、`useConversationTester.ts`、`usePromptDisplayAdapter.ts`
- 重构:`ContextUserWorkspace.vue`、`ContextSystemWorkspace.vue`、`App.vue`(web/extension)
- 新增架构设计文档 2 份

**影响范围**:
仅限 ContextUser 模式与 ContextSystem 模式内部重构,基础模式不变,行为向后兼容。

**测试验证**:
- ✅ Lint:0 错误,0 警告
- ✅ UI Tests:237 通过
- ✅ Core Tests:724 通过

> 架构目标达成:组件高内聚、低耦合,`App.vue` 职责简化,系统整体可扩展性增强。
2025-11-16 18:30:25 +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 3832c1a6e9 feat(ui): 将 selectedOptimizationMode 改为 computed,动态计算优化模式
- 将 selectedOptimizationMode 从 ref 改为 computed,基于 functionMode 动态返回对应的 subMode 值
- 更新相关逻辑以确保在不同模式下自动同步优化模式
- 修改 useContextManagement 和 usePromptOptimizer 接口,建议传入 computed 值以提高灵活性
- 保持向后兼容性,确保现有功能正常运行

此更改提升了代码的可维护性和响应性,确保优化模式的动态计算与功能模式一致。
2025-11-15 14:45:32 +08:00
linshen b6b3765516 feat(ui): 实现 CodeMirror 6 变量高亮系统与完整测试套件
核心功能:
- 将 VariableAwareInput 从原生 textarea 升级到 CodeMirror 6
- 新增变量实时高亮功能 (全局/临时/预定义/缺失)
- 新增智能自动完成功能 (输入 {{ 触发)
- 新增缺失变量快捷添加功能
- 完善变量提取安全性机制
- 新增临时变量双向同步机制

测试覆盖:
- 新增集成测试覆盖完整用户工作流
- 新增 VariableAwareInput 组件单元测试
- 新增 useVariableDetection 组合式函数测试
- 新增选择安全机制和 CodeMirror 扩展测试
- 增强测试环境配置支持国际化和 Naive UI
- 总计 25 个测试文件 242 个测试用例全部通过

技术实现:
- 新增 useVariableDetection.ts 变量检测引擎
- 新增 codemirror-extensions.ts 扩展集合
- 重构 VariableAwareInput.vue 使用 CodeMirror 6
- 增强 ContextUserWorkspace.vue 临时变量管理
- 完善 TestAreaPanel.vue 变量同步事件
- 新增 variableDetection 国际化文案

架构亮点:
- 模块化架构设计,职责分离清晰
- 完善的变量边界保护机制
- 实时高亮与智能补全体验
- 类型安全的 TypeScript 实现
2025-10-25 18:58:33 +08:00
linshen cf2a6b2b79 feat(ui): 重构变量系统并实现测试区独立变量管理
## 核心功能

### 变量系统重构
- 移除会话变量系统,实现独立的测试变量功能
- 将 useContextManagement 从 web 模块迁移到 ui 模块
- 升级 usePromptTester 支持测试变量注入和上下文

### 测试区临时变量管理
- 临时变量数据结构升级为 { value, timestamp }
- 按时间戳降序排序显示(最新在前)
- 支持手动增删改操作
- 添加变量对话框,支持变量名验证
- 删除按钮,支持单个变量删除
- 与优化后提示词解耦,不再自动绑定

### 变量提取功能
- 新增 variable-extraction 组件目录
- VariableAwareInput: 支持文本选择提取变量
- VariableExtractionDialog: 变量提取对话框
- useTextSelection: 文本选择管理
- useInputHistory: 输入历史管理
- 支持全局/临时变量类型选择
- 支持全部替换功能

## 技术改进

### 组件优化
- TestAreaPanel.vue: testVariables 从 Record<string, string> 升级为 Record<string, TestVariable>
- InputPanel.vue: 集成 VariableAwareInput 组件,支持变量提取
- ContextUserWorkspace.vue: 新增 temporaryVariables 状态管理

### 国际化完善
- 补充缺失的 test.invalidVariables 和 test.getVariablesFailed 键
- 新增变量提取相关的完整国际化文本
- 覆盖中文简体/繁体/英文三种语言
- 同步三语言国际化键值(en-US/zh-CN/zh-TW)

## 其他更新
- 修复 web/extension 中未使用变量和错误 API 调用
- 更新测试文件的组件导入路径
- 清理过度 debug 日志
- 更新相关文档(ui-refactor-plan.md, variable-system-redesign.md)

## 相关 Issue
- 解决测试区变量显示依赖优化结果的问题
- 实现变量独立管理需求
- 补充缺失的国际化文本

**测试:所有测试通过(core: 367, ui: 95)**
2025-10-25 14:54:38 +08:00
linshen 947ede8a1d feat(ui): 实现三大功能模式的独立子模式持久化功能
- 新增三个子模式管理Composable (useBasicSubMode/useProSubMode/useImageSubMode)
- 实现基础/上下文/图像模式的完全独立状态存储
- 添加UI_SETTINGS_KEYS常量用于子模式存储键管理
- 更新App.vue初始化逻辑支持三模式独立恢复
- 修复图像模式刷新后文件上传按钮不显示的bug
- 完善历史记录和收藏恢复时的子模式持久化
- 新增国际化文本支持子模式切换提示
- 归档完整开发文档到126-submode-persistence

核心特性:
- 状态隔离: 三个功能模式维护完全独立的子模式状态
- 跨页面同步: 使用自定义事件实现组件间状态同步
- 双层状态一致性: 导航层和组件层状态保持同步
- 异步初始化: 非阻塞式状态恢复机制
2025-10-25 10:31:14 +08:00
linshen 2ffb7556ee feat: 实现图像模式与多模态功能架构
- 新增图像模式支持文生图(T2I)和图生图(I2I)功能
- 实现图像服务层,支持Gemini/Seedream/OpenAI等多适配器
- 升级功能模式架构:basic/pro/image三重模式系统
- 新增图像模型管理器与专用UI组件
- 优化存储键管理,统一图像模式相关配置
- 完善国际化支持,新增图像模式相关翻译
- 增强模型管理器,支持文本/图像双模型管理
2025-09-20 21:55:26 +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
linshen 2d726d4447 feat: 全面优化导航栏UI、用户体验与项目架构
## 🚀 核心功能与UI/UX增强
- 提升导航栏视觉体验:增加高度、内边距与按钮间距,添加边框分割线,提升层次感。
- 全新语言切换设计:引入 LanguageSwitchDropdown 组件,采用直观的地球+语言符号图标,提供清晰的"A"和"中"字符标识,并集成 vue-i18n 国际化支持。
- 修复并优化主题切换:解决 SVG 图标颜色失效问题,使用直接 style 属性替代 CSS 类,确保每个主题拥有独特彩色图标。
- 优化 GitHub 按钮:移除文字显示,仅保留专业 SVG logo,并统一组件风格与对齐。
- 增强 ActionButton 组件:新增 'quaternary' 类型支持,将 icon 属性改为可选,提升组件灵活性和类型安全,并统一 App.vue 使用 ActionButton 架构。
- 调整 UpdaterIcon 尺寸:符合辅助功能区设计规范。

## 🧹 代码清理与架构优化
- 彻底移除废弃组件:包括 AdvancedModeToggle.vue, LanguageSwitch.vue 及相关导入,精简代码库。
- 统一 App.vue 架构:通过 Extension 复用 Web 版本实现一码多端。
- 更新组件导出配置:移除废弃组件依赖。

## 🌐 国际化与测试覆盖
- 完善中英文语言文件:优化主题切换相关翻译,统一多语言文本显示格式和用户体验。
- 新增 LanguageSwitchDropdown 组件单元测试:验证语言切换逻辑和下拉菜单交互功能,提供质量保障。

## 📚 项目归档与文档更新
- 创建 124-navigation-optimization 完整归档文档:包含项目概述、技术实现详解、开发经验总结,记录 21 个任务 100% 完成的系统化过程。
- 更新 Archives 和 Workspace 的 README.md:新增 UI 优化系列并修正引用,清理临时文档。
- 建立可复用设计模式:如布局锚点策略,为后续 UI 项目提供系统化最佳实践参考。

## ✨ 技术亮点
- 遵循 SOLID 设计原则和 KISS 简洁性原则。
- 实现响应式设计,支持多屏幕尺寸。
- 提供完整的 TypeScript 类型支持。
- 具备优秀的视觉一致性和用户体验。
2025-08-31 22:44:54 +08:00
linshen 54fd56b120 feat: 完成Naive UI重构最终修复和统一维护架构
主要变更:
- Extension App.vue统一维护:完整复制Web版本实现跨平台功能一致性
- TypeScript类型修复:useAppInitializer添加显式返回类型解决推断问题
- 主题系统优化:清理naive-theme.ts不存在属性,完善5主题配置
- ESLint配置:新增Vue文件解析支持,提升代码质量检查
- 接口适配完善:补充IImportExportable方法,增强服务层兼容性
- 依赖更新:同步ESLint相关包版本,确保构建稳定性

技术影响:
- 跨平台维护成本降低,Extension与Web功能完全同步
- TypeScript编译错误清零,开发体验提升
- 主题切换功能在所有5个主题下验证通过
- 代码质量工具链完善,支持Vue3+TS混合开发

测试验证:完成19/19规范任务,开发服务器localhost:18182稳定运行
2025-08-31 15:42:46 +08:00
linshen 231a39a6d3 feat(AdvancedModeToggle): 完成Naive UI迁移与项目归档
组件Naive UI迁移详情:
- 将原生button替换为NButton组件。
- 集成Naive UI主题系统,移除所有自定义CSS。
- 添加loading状态管理以防止重复点击。
- 保持100%向后兼容的Props和Events接口。
- 实现响应式设计,支持移动端显示。
- 优化状态指示器使用Tailwind CSS类名。

关键成果:
- 代码量从142行优化至87行,减少38.7%。
- CSS代码从98行减少至12行,减少87.8%。
- 实现100% Naive UI组件覆盖率。
- 发现并记录NFlex导出和Toast上下文重要问题。

项目归档与文档更新:
- 创建 docs/archives/124-advanced-mode-toggle-migration/ 完整归档。
- 归档内容包括:项目总结、技术指标对比、价值分析(README.md);详细实施过程、Git历史分析、技术决策(implementation.md);重要经验教训、踩坑记录、最佳实践(experience.md)。
- 更新工作区文档,将项目状态标记为“已完成”,添加归档项目引用和里程碑时间线,建立完整的项目追溯体系。
2025-08-30 20:45:52 +08:00
linshen fe4d158ac3 feat: Naive UI 组件重构与问题修复
主要变更内容:
- 将所有UI组件从自定义实现迁移到Naive UI设计系统
- 移除废弃的theme.css,实现纯themeOverrides主题系统
- 新增useNaiveTheme组合式函数统一主题管理
- 更新42+个组件使用Naive UI设计规范
- 删除过时的OutputPanel组件
- 添加完整的主题配置系统和相关文档记录
- 将Toast组件完全迁移到Naive UI NMessage系统
- 重构useToast组合式函数使用原生useMessage API
- 补全6个缺失组件的导出:ConversationMessageEditor、FullscreenDialog等
- 修复useClipboard中缺失的Ref类型导入
- 修复naive-theme.ts中不支持的borderColorHover属性
- 组件导出覆盖率从76%提升到92%

此次变更实现了UI架构现代化,提升了界面一致性和可维护性,并消除了混合架构的遗留问题。
2025-08-24 20:41:43 +08:00
linshen ad9327ec36 docs(archives): 完成高级功能开发的完整归档
- 新增123-advanced-features-implementation归档目录
  - 高级变量管理功能完整实现记录
  - 工具调用功能完整实现记录
  - 界面重新设计和优化记录
- 更新archives索引,统计信息调整为124个归档
- 转移未完成任务到developer/todo.md
- 提取通用经验到general-experience.md
- 重置workspace环境为模板状态

涵盖功能:
- 自定义变量CRUD系统和多轮会话测试
- OpenAI/Gemini统一工具调用支持
- 渐进式UI设计和导航菜单集成
- 向后兼容架构扩展模式
2025-08-24 10:13:46 +08:00
linshen 4f38852971 feat: 完整实现工具调用功能并修复测试环境问题
## 🎯 核心功能
- **LLM服务工具调用**: 支持OpenAI和Gemini的完整工具调用流程
- **UI工具管理**: ContextEditor工具管理面板,内置天气工具模板
- **工具同步机制**: 优化和测试阶段的工具信息双向同步
- **工具上下文注入**: 优化模板支持工具信息注入,提升优化质量

## 🔧 技术实现
- **统一工具调用接口**: ToolCall、ToolDefinition类型定义
- **Gemini工具调用适配**: 格式转换和流式处理支持
- **工具统计显示**: ConversationManager显示工具数量和名称
- **模板处理增强**: formatToolsAsText方法支持工具上下文

## 🧪 测试和修复
- **单元测试**: 工具调用核心功能测试覆盖
- **集成测试**: Gemini和OpenAI真实API工具调用验证
- **测试环境修复**: 修复Clipboard API mock,解决UI测试错误
- **全局测试设置**: 统一浏览器API mock管理

## 📊 代码统计
- 新增文件: 19个(包括测试和文档)
- 修改文件: 13个
- 新增代码: 876行,删除: 62行
2025-08-23 21:27:59 +08:00
linshen f061808015 feat(ui): 实现高级模式完整功能体系
主要功能增强:
• 高级模式系统 - 支持复杂优化场景的完整解决方案
• 变量管理系统 - 自定义变量CRUD、导入导出、预览替换
• 上下文管理 - 多轮对话编辑、快速模板、折叠展开
• 高级测试面板 - 支持变量管理的测试环境

核心组件新增:
• ConversationManager - 上下文管理组件
• ConversationMessageEditor - 消息编辑器
• VariableManager系列 - 完整变量管理组件套件
• AdvancedTestPanel - 高级测试面板

界面优化改进:
• 将"会话管理"重命名为"上下文管理"
• 变量统计显示优化,hover显示变量列表
• 操作按钮重新排序:模板→导入→导出→同步→折叠
• 移除冗余的"应用到测试"功能,统一使用"同步到测试"
• 新增折叠展开功能,优化空间利用

技术架构完善:
• 扩展OptimizationRequest支持advancedContext
• 完善历史记录metadata支持优化模式追踪
• 新增多语言快速模板管理系统
• 优化Electron代理支持复杂对象序列化
2025-08-23 17:02:56 +08:00
linshen 0717550400 docs(archives): 添加 Docker API代理功能实现文档
- 新增 122-docker-api-proxy 目录,包含项目概述、技术实现、开发经验等文档- 详细介绍了 Docker 环境下的 API 代理解决方案,包括架构设计、关键技术要点、实施步骤等
- 提供了完整的开发经验和最佳实践总结,为类似项目提供了参考
- 更新了档案总表,增加了 122号项目的记录
- 移除了旧的架构对比和关键修复文档,精简了工作空间资料
2025-08-17 15:23:56 +08:00
linshen 80977ec8a1 feat(proxy): 优化 Docker 代理功能并完善错误处理 (develop)
本次提交主要对 Docker 代理功能进行了优化,并完善了相关的错误处理逻辑。具体内容包括:

- 精确匹配 API 代理路径,使用 `location =` 确保 Nginx 配置中的代理路径精确匹配,避免被其他正则匹配拦截。
- 添加对本地主机 URL 的自动转换支持,在 Docker 容器内部访问宿主机时,自动将 `localhost`、`127.0.0.1` 等地址转换为 `host.docker.internal`。
- 优化 ModelManager 组件,将 `useDockerProxy` 选项添加到模型配置中,调整 API URL 和 API Key 的输入位置,增强用户体验。
- 完善错误处理逻辑,为 Node Proxy 服务增加更详细的错误处理,并提供统一的 JSON 错误响应格式。
- 在开发环境的 `docker-compose.dev.yml` 文件中添加 `host.docker.internal` 映射,允许容器访问宿主机。
- 更新了相关文档,包括架构对比、实施计划和设计文档,详细描述了 Docker 代理功能的实现原理和使用方法。
- 调整了文档的分类和归档方式,将经验记录归档到 archives 目录。
2025-08-17 10:37:12 +08:00
linshen 8ac9665781 feat(core): 添加 Docker API 代理支持
- 新增 Node.js代理服务实现 API 请求和流式响应的代理
- 修改 nginx配置,增加 API 代理路径
- 更新前端 ModelManager 组件,集成 Docker 代理选项
- 优化错误处理和日志记录,确保生产就绪
- 添加详细的文档和测试报告
2025-08-16 20:55:37 +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 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 161916f2ae docs(experience, workspace, archives): 更新文档,优化多形态架构和测试流程
更新经验总结,添加多形态产品架构设计和环境感知组件的最佳实践
初始化桌面应用更新系统相关文档,设计发布与更新方案
添加导入导出架构重构文档,包含实施细节、经验和测试验证
引入 AI 自动化测试框架提升测试覆盖率和可靠性

feat(testing): 完成Electron AI自动化测试,创建测试指南

完成9个测试场景,验证端到端AI优化和Ollama集成
创建Electron MCP测试指南和最佳实践文档
总结Electron测试与浏览器测试的关键差异,建立自动化测试方法论
2025-07-12 13:21:18 +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 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 acf592ab2c refactor(template): 优化模板管理与服务注入,增强错误处理并添加故障排除清单
- 添加模板管理故障排除清单,以帮助用户解决模板管理中遇到的常见问题。
- 统一服务注入逻辑,移除不必要的props定义,增强错误处理机制。
- 优化模板管理,统一服务注入与存储键管理。
- 更新 `TemplateSelect.vue`,移除 `services` prop,改用 `inject` 注入服务。
- 整合 `useTemplateManager`,统一模板选择保存逻辑及存储键管理。
- 新增 `storage-keys.ts`,集中管理存储键常量,避免重复定义,便于维护与遍历。
- 更新相关组件以适配新的模板管理方式,确保模板选择状态正确保存和恢复。
- 修正了模板类型错误的问题,确保在管理界面切换分类后添加的模板类型与当前显示的分类一致。
- 修复了模板管理器打开位置错误的问题,确保从不同入口打开模板管理器时,定位到正确的分类。
- 优化了模板保存和导入逻辑,增加了错误处理和提示。
- 确保所有异步模板操作都使用了 `await` 关键字,避免潜在的时序问题。
- 移除了 `usePromptOptimizer` 中 `selectedOptimizationMode` 的默认值,强制传入该参数。
- 优化了 `TemplateSelect` 组件中 `optimizationMode` prop 的处理,设为 `required`。
2025-06-29 10:10:26 +08:00