4 Commits
Author SHA1 Message Date
linshen c75afa89e9 feat(i18n): establish english-first locale baseline
- split UI locale packs into en-US, zh-CN, and zh-TW modules
- switch runtime defaults, docs, and repository guidance toward an English-first baseline
- update core, MCP, and UI runtime copy to remove hardcoded Chinese fallbacks
- add locale parity and no-hardcoded-runtime guardrails across the repo
2026-04-08 20:18:27 +08:00
linshen 1f1348a4b8 fix(test): 修复单元测试中的 mock 问题
- core: 修复 openai-adapter.test.ts 中 OpenAI SDK mock 方式
  - 使用工厂函数返回真正的类而非 vi.fn().mockImplementation()
  - 修复 "is not a constructor" 错误

- ui: 修复 setup.ts 中 Observer mock 问题
  - ResizeObserver、IntersectionObserver、MutationObserver 使用真正的类实现
  - 解决 vueuc 和 CodeMirror 在模块顶层实例化 Observer 时的构造函数错误

- ui: 简化 codemirror-extensions.spec.ts 测试
  - 移除需要完整 DOM 环境的过度测试(EditorView 实例化测试)
  - 保留工厂函数的单元测试,避免测试第三方库行为
2025-12-07 20:49:42 +08:00
linshen f0c5caf221 refactor(ui): 重构变量管理系统和编辑器代码结构
**架构重构**
- 从集中式变量管理迁移到分层架构(临时/全局/预定义)
- 废弃 ContextEditorState.variables,保持向后兼容
- 移除组件间不必要的 services prop 传递
- 添加 VariableManager 工厂函数和异步初始化机制
- 完善国际化支持,统一术语("上下文变量" → "临时变量")

**补全逻辑优化**
- 移除预定义变量的自动补全功能,简化补全列表
- 调整补全优先级:临时变量 (boost: 3) > 全局变量 (boost: 2) > 预定义变量 (boost: 1)
- 修改 global-variables 传递为仅自定义变量
- 新增 createVariableCompletionOption 函数,统一处理补全逻辑
- 智能检测光标后已有的右括号数量,动态计算需要插入的右括号数量

**UI 和代码结构优化**
- 新增 useContextEditorUIState composable 统一管理编辑器 UI 状态
- 消除 extension/web App.vue 中约 40 行重复代码
- 使用配置驱动方式简化标签页可见性逻辑
- 移除 watch(props.visible) 中的冗余 else 分支
- 合并重复的 CSS 规则
- 将卡片标题从"变量值设置"更改为"临时变量",更准确地反映功能定位
- 移除重复的"管理变量"按钮,避免与上方"全局变量"按钮功能重复

**代码清理和测试增强**
- 清理未使用的 handleOpenVariableManager 函数
- 消除重复的补全选项构建逻辑,提高代码可维护性
- 新增右括号补齐测试用例,增强现有测试使用实际编辑器视图模拟
- 更新所有相关测试用例,所有测试通过
- 提升整体代码可维护性和简洁性

影响范围:core, ui, web, extension
2025-10-26 21:14:39 +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