Files
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
..