127 Commits
Author SHA1 Message Date
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
linshen 3abc01b7c4 refactor(组件): 优化模态框和TemplateSelect组件,增强历史管理,标准化模态框组件
- 统一模态框组件背景点击处理逻辑为`onBackdropClick`方法,使用`show` prop和`update:show`事件控制可见性,修复Vue渲染问题;
- `HistoryDrawerUI`组件新增`history`属性和相关事件处理,提升历史记录管理能力;
- 优化`TemplateSelect`组件,直接监听`props.services.value.templateManager`,简化服务监听逻辑;
- `usePromptOptimizer`调用使用`toRef`引用相关属性,提升代码可读性和一致性。
2025-06-28 21:13:21 +08:00
linshen 2f4d7429ef feat: 更新文档与组件,引入应用初始化器与服务依赖注入,完成Vue Composable架构重构
- 更新 `composables-refactor-plan.md` 与 `experience.md`,记录重构成果、问题与后续计划,强调顶层声明和响应式连接。引入 `useAppInitializer`,及其对架构统一和代码复用的贡献。
- 更新多个组件与Composable文件,使其通过 `inject` 获取服务实例引用,解决了`ref` 迁移到 `reactive` 和异步回调中调用Composable函数导致的错误,优化了模板管理器的使用方式,并移除对服务单例的直接依赖。
- 修复 `templateLanguageService` 依赖注入失败的 bug,更新组件导出和模板管理器,优化代码结构与可读性。
- 将背景与目标修改为当前状态与问题,明确上层应用尚未适配底层重构的现状,并记录Web应用和浏览器插件启动失败问题,提出后续修复步骤。更新实施计划,强调对齐上层应用与底层服务架构的必要性。
2025-06-28 19:43:11 +08:00
linshen 31b807ba0b feat: 重构核心服务以支持Electron环境,并增强历史管理器功能
- 核心服务:
    - 移除单例导出,引入工厂函数模式以提升灵活性和可测试性。
    - 显式接收依赖并处理重构中的依赖问题,更新文档以反映新的服务创建方式和依赖注入策略。
    - 添加相应的代理和管理器工厂函数,优化服务初始化逻辑,确保在Electron环境下的配置同步。
- 历史管理器:引入 `IModelManager` 支持模型管理,修改构造函数并恢复模型名称获取逻辑。
- 构建配置:
    - 更新 `.gitignore` 文件,添加桌面应用相关构建和分发文件的忽略规则。
    - 在 `package.json` 中新增桌面应用构建和开发命令。
    - 更新 `pnpm-lock.yaml` 以包含新依赖。
- 重构计划文档:移除循环依赖描述,增加重构反思与后续决策,优化 `ensureInitialized()` 调用,修正错误处理行为并提升测试代码严谨性。
2025-06-28 11:21:33 +08:00
linshen ba8be35209 feat(ui): 实现UI主题系统并优化组件交互
本次提交包含对UI层的一系列改进,主要集中在可维护性和用户体验上。

主要变更如下:

- **实现UI主题系统**:
  - 在多个组件中,将硬编码的CSS类替换为语义化的主题类 (例如 `theme-background-surface`, `theme-button-toggle-active`)。
  - 此项重构旨在简化未来主题的添加和维护,并解决第三方插件(如 `prose`)的样式冲突问题。

- **优化 `OutputDisplay` 交互逻辑**:
  - `OutputDisplayCore` 组件引入 `userHasManuallyToggledReasoning` 状态,以区分用户手动操作和系统自动行为,避免在流式输出时意外干扰用户对“思考过程”面板的控制。
  - “对比(Diff)”模式的切换按钮现在通过 `v-if` 控制,仅在存在可对比内容时渲染。

- **组件API与结构重构**:
  - `OutputDisplay` 组件使用 `defineOptions({ inheritAttrs: false })` 和 `v-bind="$attrs"` 来正确处理多根节点的属性继承,遵循了Vue的最佳实践。

- **文档同步**:
  - 更新了 `experience.md` 和 `output-display-v2-design.md`,以反映本次代码变更中包含的设计决策和技术方案。
2025-06-26 22:58:55 +08:00
linshen cfc815afe2 refactor(UI): 重构 OutputDisplay 组件至 V2 架构
本次提交对 OutputDisplay 组件系统进行了全面的 V2 架构重构,以提升可维护性和用户体验。

- **核心重构**: 引入 `OutputDisplayCore` 作为核心引擎,实现了更清晰的组件职责分离。

- **UI/UX 优化**:
  - 使用固定的顶部工具栏替换了旧的悬浮工具栏,显著改善了核心功能的可发现性。
  - 将“思考过程”面板独立为可折叠区域,优化了布局。

- **样式修复与文档整合**:
  - 修复了多项自定义主题下的样式冲突问题。
  - 将所有相关设计文档合并为一份单一的权威文档。
2025-06-25 22:05:46 +08:00
linshen e807f9e054 feat(OutputDisplay): 开发并集成OutputDisplay组件,优化流式输出与推理内容支持
- 创建OutputDisplay组件,替换现有的PromptPanel,支持推理内容的显示与编辑
- 实现流式内容的优化,提升用户体验,确保内容实时更新
- 添加国际化支持,确保中英文翻译的完整性
- 更新相关文档,记录新组件的使用示例与最佳实践
- 完成全面的单元测试,确保所有功能正常工作
2025-06-24 22:38:41 +08:00
linshen 2e9dfd20c7 feat(LLMService): 重构消息发送逻辑,支持结构化响应与think标签处理
- 更新 `LLMService` 类,新增结构化消息发送方法,返回包含推理内容的响应
- 增强错误处理,确保API调用失败时提供友好的错误提示
- 实现流式处理中的think标签支持,优化推理内容与正文的分离
- 更新相关接口与类型定义,确保兼容性与可读性
- 添加新的单元测试与集成测试,验证结构化响应与think标签处理的正确性
- 更新文档,说明新的API使用方式与最佳实践
2025-06-23 21:54:34 +08:00
Johnnyandlinshen 6f490b36ed feat(template): 修复在切换模板语言后,模板选择器不响应式更新 (#120)
* feat(template): 修复在切换模板语言后,模板选择器不响应式更新

- 在关闭模板管理后,对模板选择器的模板列表进行更新
- 在模板选择器中,对展示的模板进行更新

* fix(template): 修复数组内容深度比较和代码冗余问题

- 修复 BugBot 发现的模板内容数组引用比较问题
  * 实现 deepCompareTemplateContent 函数支持 string/Array 类型深度比较
  * 避免数组引用相同但内容不同时的错误判断
  * 防止数组内容相同但引用不同时的不必要更新

- 消除父子组件间的代码冗余
  * 移除 App.vue 中重复的模板更新逻辑
  * 明确职责分工:子组件负责刷新逻辑,父组件负责触发时机
  * 通过 v-model 实现状态同步,避免双重更新

- 完善组件接口和文档
  * 正确暴露 TemplateSelect 组件的 refresh 方法
  * 添加详细的职责分工注释和使用说明
  * 更新 experience.md 记录此次重要修复

解决的问题:
- Template Update Logic Fails
- Deep Array Comparison Bug
- Array Comparison Bug Causes Unnecessary Updates
- Template Selector Update Method Mismatch

测试状态: 所有核心功能测试通过

* fix(template): 修复模板选择器类型过滤器验证问题

- 修复 BugBot 发现的模板类型过滤器忽略问题
  * 在 refreshTemplates 函数中添加类型验证逻辑
  * 确保更新后的模板匹配当前组件的类型过滤器
  * 避免选择不匹配类型的模板导致的显示错误

解决问题: Template Selection Ignores Type Filter
测试状态:  UI 组件测试全部通过 (23/23)

---------

Co-authored-by: linshen <32978552+linshenkx@users.noreply.github.com>
2025-06-27 09:43:28 +08:00
linshen 75537963d4 feat(docs): 更新项目核心经验文档,优化内容结构与布局规范
增加Flex布局和API集成的最佳实践,优化错误处理和测试规范,确保文档简洁易懂,提升开发效率。
2025-06-24 16:27:33 +08:00
linshen ff21975d9d feat(template): 重构模板管理,每个功能提示词版本单独一个文件
- 移除默认模板文件,改为使用静态加载器加载模板
- 在模板元数据中添加语言字段,支持中英文模板切换
- 更新模板验证逻辑,确保语言字段的正确性
- 修改相关测试用例,验证新功能的正确性和稳定性
2025-06-19 22:17:23 +08:00
linshen 7cfbea000c feat(project): 添加版本同步机制并更新相关文件
- 新增版本同步脚本 sync-versions.js,实现自动同步 package.json 版本号到指定文件
- 更新 package.json,添加 version:sync 和 version 脚本
- 修改 App.vue 文件,添加 GitHub按钮
- 更新国际化文件,明确模板占位符格式
- 新增 version-sync.md 文档,说明版本同步机制的使用和管理
2025-06-08 22:57:08 +08:00
linshen 76438cab16 docs(更新): 项目文档全面更新至 v1.0.6 版本
- 更新了 README、项目状态、技术开发指南等文档
- 新增 LLM 参数配置详细指南
- 调整了项目结构说明
- 更新了快速开始和环境变量配置说明
- 增加了对新功能和改进的记录
2025-06-07 16:30:40 +08:00
linshen 688bb2e2bf feat(core): 添加高级LLM参数配置功能
- 在模型配置中引入 `llmParams` 字段,允许用户为每个模型单独设置高级LLM参数
- 更新文档,详细说明 `llmParams` 的使用方法及示例
- 在模型管理器中实现对 `llmParams` 的验证和处理逻辑
- 增强 LLMService 以支持从 `llmParams` 中提取参数,优化模型行为控制
- 更新 UI 组件以支持高级参数的配置和展示,提升用户体验
2025-06-07 16:30:39 +08:00
linshen d849024cb1 feat(docker): 添加基本认证功能和环境变量配置
- 在 Dockerfile 中添加 htpasswd 工具和 dos2unix
- 更新 docker-compose.yml 文件以支持 ACCESS_USERNAME 和 ACCESS_PASSWORD 环境变量
- 修改 dev.md 和 README 文件,增加访问密码配置说明
- 更新 Nginx 配置以引入基本认证
- 将版本号更新至 1.0.6
2025-05-28 23:18:23 +08:00
google-labs-jules[bot] a9b11081f2 feat(vercel): 密码保护功能实现
- 使用 Next.js Middleware
- 添加自适应语言的验证页面
2025-05-28 23:18:20 +08:00
linshen 80a5b7e789 fix(core): 更新版本号并增强UI配置导入安全性
- 将版本号更新至1.0.5
- 添加UI配置键和值的安全性验证,防止恶意键和无效值的导入
- 改进错误处理逻辑,增强导入过程的健壮性
- 添加相关单元测试以确保新功能的正确性
2025-05-26 22:48:06 +08:00
linzehao 1587554c02 docs(vercel): 添加 Vercel 部署指南 2025-04-17 23:44:20 +08:00
linshen bf9d98eb69 ✨ 新增 Vercel 跨域代理支持和环境检测功能
- 在核心服务中添加 Vercel 环境检测和代理工具函数
- 更新 LLM 服务,支持通过 Vercel 代理解决跨域问题
- 扩展模型配置类型,新增 `useVercelProxy` 选项
- 在 ModelManager 组件中添加 Vercel 代理可用性检测和配置
- 更新技术开发指南,详细说明跨域代理解决方案
- 调整 Vercel 配置,支持 API 代理和环境变量设置
2025-03-03 00:25:02 +08:00
linshen 8260ea0d8b docs: Remove deprecated documentation files
- Delete outdated documentation files from the docs directory
- Remove files related to previous project iterations
- Clean up project documentation structure
- Prepare for updated documentation approach
2025-02-23 21:09:30 +08:00
linshen 5dac3a33e6 docs: Revamp README with comprehensive project overview and enhanced documentation
- Update README with more engaging and informative content
- Add emoji icons to improve readability
- Restructure sections for better navigation
- Include project structure, development commands, and technology stack
- Enhance deployment and configuration instructions
- Add roadmap and contribution guidelines
- Improve overall presentation and clarity
2025-02-15 22:10:51 +08:00
linshen 2e6246aa7a feat: Enhance error handling, testing, and extension development
- Implement comprehensive error handling strategies in app-flow.md
- Add detailed testing workflows for unit, integration, and E2E tests
- Update Chrome extension manifest and icon configurations
- Improve UI package configuration and component structure
- Update project progress and tech stack documentation
- Optimize extension package icon and HTML setup
2025-02-15 21:17:23 +08:00
linshen 7a5836191d docs: Update project documentation with comprehensive architecture and development guidelines
- Revamp README with new monorepo structure and detailed project overview
- Enhance file structure documentation with package-specific details
- Update frontend development guidelines with modern best practices
- Refactor progress tracking document with detailed milestones and risk assessment
- Expand tech stack documentation with in-depth technology descriptions
- Improve app flow documentation with TypeScript-based code examples
2025-02-14 22:27:34 +08:00
linshen 9be9f6b3ae refactor: Migrate project to monorepo structure with pnpm workspaces
- Convert project to monorepo with separate web and extension packages
- Update package.json scripts to support pnpm workspace commands
- Remove individual configuration files from root directory
- Adjust Vercel configuration for monorepo deployment
- Prepare for Chrome extension development
- Remove existing web application source files in preparation for restructuring
2025-02-13 22:51:28 +08:00
linshen fbffa67fa6 feat: 更新项目进度追踪文档,增加服务层重构信息并更新完成任务数量 (master)
本次提交主要更新了 `scratchpad.md` 文件,具体变更如下:

- 更新了已完成任务数量和进度百分比。
- 增加了已完成的服务层基础重构任务,包括基础设施搭建、核心服务迁移、错误处理机制和基础单元测试覆盖。
- 更新了进行中的任务,包括提示词服务增强和历史记录功能。
- 更新了待开发任务列表,增加了提示词功能增强相关子任务。
- 更新了项目指标,包括页面加载时间和API响应时间。
- 更新了项目更新记录,添加了服务层基础重构的记录。
- 更新了近期计划,将重点放在提示词服务增强和历史记录功能完善上。
- 更新了里程碑计划,将里程碑1修改为服务层优化。
- 增加了项目经验总结,包括开发效率、错误管理、代码质量和项目管理。

此外,对 `.cursorrules` 文件进行了更新,添加了AI编程规则指南;对 `docs/progress.md` 文件进行了更新,记录了当前的项目进展和下一步计划。
2025-01-21 23:52:14 +08:00
linshen 5468f272da feat: 重构项目,调整服务层架构 (master)
本次提交对项目进行了大规模重构,主要调整了服务层架构,以实现更清晰的职责划分和更好的可维护性。
具体变更包括:

- 移除 `src/api/llm.js` 文件,相关 API 密钥管理逻辑已迁移到 `src/services/model/manager.js` 中。
- 移除 `src/config/llm.js` 文件,LLM 配置逻辑已迁移到 `src/services/model/manager.js` 和 `src/services/llm/service.js` 中。
- 移除 `src/services/llm.js` 文件,LLM 服务逻辑已迁移到 `src/services/llm/service.js` 中。
- 移除 `src/services/promptManager.js` 文件,提示词模板管理逻辑已迁移到 `src/services/prompt/service.js` 中,历史记录管理已迁移到 `src/services/history/manager.js` 中。
- 重构 `src/components/ModelManager.vue` 组件,使用新的模型管理服务。
- 重构 `src/App.vue` 组件,使用新的服务层架构。
- 修改 `tests/unit/services/llm.test.js` 文件,适应新的服务层架构。
- 修改 `tests/integration/services/llm/common.test.js`, `tests/integration/services/llm/custom.test.js`, `tests/integration/services/llm/deepseek.test.js`, `tests/integration/services/llm/gemini.test.js` 文件,适应新的服务层架构。
- 修改 `tests/unit/App.test.js` 文件,适应新的服务层架构。
- 修改 `src/components/OutputPanel.vue` 组件,添加复制选中内容功能。
- 更新 `experience.md`,记录重构经验。
- 更新 `scratchpad.md`,添加重构计划和日志。

本次重构的主要目标是:

- 更清晰的职责划分:将模型管理、LLM 服务、提示词模板管理和历史记录管理分离到独立的模块中。
- 更好的可维护性:通过模块化设计,降低代码耦合度,提高代码可读性和可维护性。
- 更高的可扩展性:新的架构更易于添加新的模型和功能。

本次重构对现有功能没有影响,所有测试均已通过。
2025-01-21 23:25:18 +08:00
linshen e049b3b0ee 添加项目文档 2025-01-20 19:42:59 +08:00