mirror of
https://github.com/linshenkx/prompt-optimizer.git
synced 2026-09-27 04:41:13 +08:00
本次提交主要围绕上下文模式进行大规模重构与功能增强,并修复了关键的变量注入和模型初始化问题。
**核心重构与功能增强**
- **上下文模式架构优化**:
- 将 `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` 触发不必要的保存操作。
- 确保模型选择初始化完成后再执行回退逻辑。
- 调整相关代码格式(单引号转换为双引号)。