115 Commits

Author SHA1 Message Date
linshen
9e4d60fc9c docs: sync documentation with v2.10.0 features
- Update site/src/main.js with image generation, Prompt Garden, Smart Favorites
- Update README.md and README.zh-CN.md with new features
- Update docs/project/ to v2.10.0 (project-status, prd, README)
- Update docs/README.md timestamp
2026-05-03 21:08:50 +08:00
linshen
6d75528793 feat(prompt-garden): integrate import and favorite flow
Wire Prompt Garden imports into workspace and favorite flows, add the import dialog/panel affordances, persist Garden metadata/media into favorites, and document the external import contract.
2026-05-03 13:15:16 +08:00
linshen
0b9cd227d9 docs(prompt-model): consolidate standardization status 2026-05-03 13:15:14 +08:00
linshen
4accdf1417 feat(prompt-garden): add discovery import entry
- Add environment defaults and Vite proxy configuration for Prompt Garden discovery
- Expose discovery import controls from workspace utility surfaces
- Wire image text-to-image import affordances and localized copy
- Document configuration and cover environment/UI behavior with tests
2026-05-02 22:20:01 +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
2e119a6d83 fix(core): align seedream image model capabilities 2026-04-20 22:26:52 +08:00
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
8cf43a3e3d test(e2e): streamline gated suites and replay stability 2026-04-06 14:13:29 +08:00
linshen
d0f1d45c17 fix(storage): harden startup safety and favorite asset handling 2026-04-06 14:13:28 +08:00
linshen
bd546ebe0f build(release): add repo-driven bilingual release notes 2026-04-05 08:24:26 +08:00
linshen
fe62586b19 fix(ci): remove repo-level electron mirror defaults 2026-04-03 00:42:00 +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
c33f5973a3 refactor(image): rebuild reference prompt pipeline
- Introduce the new reference prompt composition and migration template pipeline
- Replace the legacy image prompt extraction path and align template loading contracts
- Update text2image workspace integration and add reference pipeline coverage
2026-03-30 22:08:41 +08:00
linshen
cd7fd6bc88 docs(developer): sync prompt garden integration contract 2026-03-29 21:17:23 +08:00
linshen
e69086f075 build(deps): refresh workspace dependency baselines
- refresh direct dependency baselines across workspace packages
- require Node 22 consistently in docs, Docker, and package engines
- update lint/build tooling configs to match the new workspace baseline
- keep package manifests and lockfile aligned after the dependency refresh
2026-03-27 20:41:18 +08:00
linshen
9909abf58f docs: archive outdated workspace documents 2026-03-26 21:23:46 +08:00
linshen
1a307fa0c7 chore(repo): remove bmad and local ai tool artifacts 2026-03-26 20:47:18 +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
SuperDuckGOGOGO
98a6b4f398 feat(core): support custom model params from env (#273)
Allow Docker and other runtime environments to inject JSON request parameters for suffixed custom models so provider-specific defaults like NVIDIA NIM thinking flags persist outside the UI. Add parsing, sanitization, tests, and docs for the new VITE_CUSTOM_API_PARAMS_<suffix> flow.
2026-03-13 13:51:06 +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
01ff1435f6 docs(user): add context mode guides 2026-02-02 20:12:51 +08:00
linshen
89a6f0de9c feat(ui): require prompt-garden v1 import schema
Require v1-only response schema (no legacy content/title), support text/messages prompts, import variables into submode temporary variables, and document Mustache-only placeholders.
2026-01-29 21:30:00 +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
ba3c4b7c88 fix(ui): persist manual prompt edits to history
Ensure Save Changes creates a new version across basic and image workspaces.
2026-01-22 21:47:20 +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
8467b96263 feat(test): 实现智能测试系统并改进测试策略
- 实现智能测试系统,统一测试入口
- 完成 Pro 路由重构和 Image 模式评估测试
- 为 Image 模式添加 data-testid 支持
- 完善 E2E 测试并修复选择器策略
- 优化 Seedream、OpenAI 和 SiliconFlow 适配器
- 移除调试日志,保留错误和警告日志
- 重命名 Pro 模式子模式(system/user → multi/variable)
- 清理测试代码并改进稳定性
2026-01-10 11:23: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
6d21babfdd refactor(ui): 引入 Pinia 状态管理并重构服务访问
- 引入 Pinia 状态管理:创建 promptDraft store 和多个 session stores
- 重构服务访问:移除 $services 插件,统一服务访问方式
- 修复 session 存储竞态条件:使用 Pinia 的响应式系统
- 归档 Pinia 重构文档:记录完整的迁移过程
- 修正 MCP server bin 入口配置
2026-01-01 14:23: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
a3dc3285d0 feat: 完成收藏管理重构
- 🏗️ 实现三层分类体系:functionMode、optimizationMode、category
- 🏷️ 构建独立标签库系统,支持标签全生命周期管理
- 📁 增强分类管理,支持排序、使用统计、删除保护
- 🎨 重构UI组件:SaveFavoriteDialog、TagManager、CategoryManager
- 🔄 实现向后兼容的数据迁移机制
- 🧪 添加全面测试覆盖:754+测试,100%通过
- 📝 完善文档:CHANGELOG + 用户指南

Breaking Changes:
- 移除 isPublic 字段
- FavoritePrompt 接口变更(functionMode必填,metadata重组)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 14:50:56 +08:00
linshen
609f454d6a refactor(ui): 全面优化收藏管理、交互与组件库,统一消息提示
## 主要变更

### 收藏管理界面重构与优化
- **布局与组件规范化**:
    - 统一组件命名风格(NCard, NButton等),100% 使用 Naive UI 原生组件替代自定义div+class,删除 22 个冗余自定义样式类。
    - 工具栏重构为两行布局(视图切换、搜索、操作按钮 / 分类筛选、标签筛选、统计信息),解决单行拥挤问题。
    - 网格布局改进,使用 CSS Grid 的 `auto-fill + minmax` 实现真正的响应式,删除 `NGrid/NGridItem` 依赖。
    - 列表视图重构,使用 `NListItem` 插槽替代 `NThing`,删除 9 个自定义布局样式类。
    - 卡片组件优化,使用 `NCard` 插槽,固定高度 280px,内边距优化为 12px,标题自动省略,内容预览增加到 3 行,标签区域单行显示。
- **功能增强与交互优化**:
    - 新增手动创建收藏功能,支持完整的表单编辑。
    - 允许收藏重复内容,支持为相同内容设置不同标题、分类、标签,移除 `FavoriteAlreadyExistsError` 校验。
    - 收藏夹打开时自动刷新最新数据。
    - 新增标签多选过滤功能。
    - 分类筛选升级为树状选择器,支持层级分类。
    - 简化收藏卡片操作,将菜单改为直观按钮组。
    - 编辑/创建对话框布局优化,增加功能模式选择。
    - 所有操作按钮添加 `NTooltip` 悬浮提示,删除操作增加 `NPopconfirm` 二次确认,操作按钮默认隐藏(移动端始终显示)。
    - 修复收藏管理器 props 声明以支持 watch。
    - 重构 FavoriteManager 为完整 Modal 组件,将 CategoryManager Modal 移至外层,避免事件拦截。

### 统一与优化按钮样式
- 为 `TestControlBar` 中的主要操作按钮和对比模式切换按钮添加 `round` 属性,统一为圆角。
- 去除所有按钮文字的箭头符号(→)。

### 编辑界面与核心显示逻辑统一
- 移除全屏界面 (`OutputDisplayFullscreen`) 和保存收藏对话框 (`SaveFavoriteDialog`) 的对比功能。
- 统一所有新建/编辑界面只保留复制和编辑功能。
- `OutputDisplayCore` 的 `editable` 模式默认显示源码视图,新增模式切换时的视图自动同步逻辑。

### 消息提示系统整合
- 删除 `useSafeMessage.ts`,统一所有组件(`Toast.vue`, `FavoriteManager.vue`, `OutputDisplayCore.vue`, `FavoriteButton.vue`)使用 `useToast()` 作为消息 API。

### 其他修复与优化
- 修复 `InputPanel` 栅格布局,提交按钮宽度从 `span=4` 增加到 `span=5`,解决文字溢出。
- 修复 `useImageWorkspace` 中事件监听器注册时机,解决 TDZ (Temporal Dead Zone) 错误。
- 实现完整的收藏分类管理系统 (CRUD),新增 `CategoryManager` 组件。
- 更新国际化文件 (zh-CN/en-US/zh-TW)。
- 间距从 8px 优化为 6px,标签从最多 2 个恢复到 3 个,添加明确字体大小和行高控制,卡片添加 `overflow: hidden`。
2025-10-18 11:25:30 +08:00
linshen
5de5614664 refactor(core): 重构LLM服务为Adapter模式架构
重大架构升级:
- 引入Adapter模式,实现Provider解耦
- 新增7个Provider适配器(OpenAI、Gemini、Anthropic等)
- 精简LLMService从2000+行到300+行
- 引入TextModelConfig新类型系统,支持向后兼容
- 完善类型定义和测试覆盖

架构改进:
- 抽象基类AbstractTextProviderAdapter提供模板方法
- TextAdapterRegistry统一管理所有适配器
- 支持动态模型获取(OpenAI兼容API)
- 提供配置转换器实现平滑升级

新增文件:
- packages/core/src/services/llm/adapters/ (8个文件)
- packages/core/src/services/model/converter.ts
- packages/core/src/services/model/text-model-defaults.ts
- docs/architecture/llm-refactor.md
- 9个新增测试文件

修改文件:
- packages/core/src/services/llm/service.ts
- packages/core/src/services/model/types.ts
- packages/core/src/index.ts
- 31个测试文件更新
- UI组件和composables适配新类型

BREAKING CHANGE: 模型配置结构从ModelConfig升级为TextModelConfig
(已提供converter.ts确保向后兼容和自动转换)

测试结果:
 TypeScript类型检查通过 (core + ui)
 563个测试通过,90个跳过
 Core包构建成功
2025-10-04 01:01:08 +08:00
linshen
1ad32ca217 refactor: 完全移除 Vercel/Docker 代理功能以修复 SSRF 安全漏洞
修复 #179

## 变更内容

### 核心代码清理 (-2473行)
- 删除 api/proxy.js、api/stream.js、api/vercel-status.js 端点
- 删除 node-proxy/ 服务器实现
- 移除 environment.ts 中的代理检测逻辑
- 简化所有图像适配器和 LLM 服务,直接使用 baseURL
- 移除模型配置中的 useVercelProxy/useDockerProxy 字段

### 基础设施更新
- 更新 Dockerfile 移除 node-proxy 构建
- 更新 nginx.conf 移除代理路由
- 更新 supervisord.conf 移除 node-proxy 进程

### UI 优化
- 移除模型管理界面中的代理选项
- 清理国际化文件中的代理相关翻译
- 删除备份文件 ModelManager.bak.vue

### 文档同步
- 更新技术开发指南,说明功能移除原因
- 更新 Vercel 部署文档,移除代理相关说明
- 更新图像模式文档

## 安全说明

由于内置代理存在 SSRF (服务端请求伪造) 安全风险,完全移除相关功能。
推荐用户使用:
1. 桌面版应用 (无跨域限制)
2. 自建反向代理 (完全控制)
3. LLM 提供商的 CORS 友好端点

## 向后兼容性

历史数据中的 useVercelProxy/useDockerProxy 字段为可选,不会导致破坏性变更。
2025-09-30 22:08:00 +08:00
linshen
b5eba3dfb7 fix(docker): MCP路由绕过Basic认证以支持MCP Inspector连接
修复问题:
- Docker部署启用ACCESS_PASSWORD后,/mcp路由继承了Basic认证配置
- 导致MCP Inspector连接时返回401错误

技术方案:
- 在nginx.conf的/mcp location中添加auth_basic off指令
- MCP协议本身不支持HTTP Basic认证,需要明确禁用
- Web应用路由的访问控制保持不变

文档更新:
- 在MCP服务器用户文档中添加故障排除说明
- 包含中英文文档和mkdocs文档

关联issue: #169
2025-09-29 23:56:47 +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
6e4917852a feat: 实现全局功能模式系统与上下文模板架构
* 新增全局功能模式切换(basic/pro)
  - 实现 useFunctionMode 组合式函数
  - 支持模式记忆与持久化存储
  - 自动模板类型映射与切换

* 重构模板系统架构
  - 新增6类模板类型:基础3类 + 上下文3类
  - 实现上下文模板(contextSystemOptimize、contextUserOptimize、contextIterate)
  - 统一存储键管理,解决跨包重复定义问题

* 增强上下文驱动优化
  - 新增14个上下文版本模板(中英双语)
  - 支持会话上下文、工具上下文传递
  - 实现变量优先级管理系统

* 优化用户体验
  - 模式切换自动通知与反馈
  - 模板选择状态分离保存
  - UI组件响应式更新

* 改进代码质量
  - 遵循SOLID、DRY、KISS原则
  - 完善TypeScript类型定义
  - 清理冗余测试文件

测试结果:所有功能完美工作,优化效果显著提升
2025-09-14 00:07:01 +08:00