linshen
11a817f833
feat(favorites): manage prompt asset versions
...
- Store and expose prompt-asset version history through core and desktop bridges
- Add version browsing and preview surfaces to the favorite editor/detail UI
- Simplify version navigation around a dedicated preview modal
- Cover version persistence and UI behavior with focused regressions
2026-05-01 19:18:33 +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
d0f1d45c17
fix(storage): harden startup safety and favorite asset handling
2026-04-06 14:13:28 +08:00
linshen
90b957c983
feat(image): deliver multi-image generation workflow
...
- add multi-image request types, routing, favorites integration, and desktop bridges
- support multimodal streaming prompt optimization with ordered image inputs
- enable Seedream multi-image generation and redesign the multi-image workspace
- add coverage for routing, persistence, workspace guards, and end-to-end flows
2026-04-06 14:13:28 +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
2a0151ab81
feat(favorite): 实现收藏功能核心服务与IPC通信
...
- 新增 ensureDefaultCategories 方法确保默认分类存在
- 优化标签添加逻辑,实现幂等性处理- 移除重复的 FavoriteTagAlreadyExistsError 错误类型
- 仅在新增标签时更新统计信息,避免重复计算
- 在桌面端主进程新增完整的收藏管理 IPC 处理器
- 在预加载脚本中暴露收藏管理器接口给渲染进程
- 优化保存收藏对话框的标签处理逻辑
- 新增标签去重与类型安全处理
- 在分类管理组件中引入 watch API
- 完善收藏功能的错误处理与数据序列化机制
2025-10-19 23:36:40 +08:00
linshen
d784c99d88
feat(favorite, ui): 完善收藏功能,引入独立标签管理、国际化支持及全面集成测试
...
本次更新全面增强收藏功能,引入独立的标签管理系统,完善了多语言支持,并对UI组件进行了优化。同时,新增了大量集成测试以确保功能的稳定性和数据完整性。
## 新增功能与优化
### 1. 独立标签管理系统
- **核心功能**:
- **独立标签库 (STORAGE_KEYS.TAGS)**: 实现标签的独立存储,不依赖收藏项,支持预先创建使用次数为0的标签。
- **标签CRUD操作**: 提供 `addTag()` (支持重复检测)、`renameTag()` (更新所有相关收藏和独立库)、`mergeTags()` (合并多个标签)、`deleteTag()` (从独立库和收藏中移除) 功能。
- **标签统计算法**: `getAllTags()` 方法返回独立标签库与收藏中使用标签的合集,并支持按使用次数降序排序。
- **导入导出优化**: 导出内容包含独立标签库,导入时自动重建,确保数据完整性。
- **类型转换工具 (TagTypeConverter)**: 解决API与UI格式不一致问题,提供 `toTagStatistics()`、`toAutoCompleteOptions()` 等转换方法,并支持多种排序。
- **错误处理增强**: 新增 `FavoriteTagError` 基类及 `FavoriteTagAlreadyExistsError`、`FavoriteTagNotFoundError` 等专用错误类型。
### 2. 标签管理器UI组件 (TagManager.vue)
- 提供完整的标签CRUD界面,包括数据表格展示、实时搜索、新增、重命名、合并、删除、分页功能。
- 技术栈:Naive UI (NDataTable, NModal, NPopconfirm),使用 `TagTypeConverter` 统一数据格式。
- 集成点:FavoriteManager.vue 中新增“标签管理”按钮以打开该对话框。
### 3. 智能标签建议 (useTagSuggestions)
- **智能自动完成**: 基于现有标签使用统计提供实时建议,热门标签优先,支持前缀匹配,并自动去重过滤。
- **API**: 提供 `loadTags()`、`filterTags()`、`getPopularTags()`、`getRecentTags()` 方法。
- 集成点:SaveFavoriteDialog.vue 中集成标签自动完成输入框。
### 4. 收藏功能国际化与UI优化
- **国际化覆盖 (中英繁)**:
- 新增 `favorites.dialog.*` (保存对话框)、`favorites.manager.*` (收藏管理器)、`favorites.manager.tagManager.*` (标签管理器)、`favorites.card.*` (收藏卡片) 等完整翻译键。
- 遵循翻译规范:使用全角标点、统一术语、简洁明了的提示信息。
- **UI组件优化**:
- **SaveFavoriteDialog.vue**:
- **标签自动完成集成**: 使用 `useTagSuggestions` 提供智能建议,支持回车添加,已选标签显示为可关闭 `Tag`,保存前自动注册标签到独立库。
- **智能预填充**: 根据模式(创建/保存/编辑)智能预填充标题和内容。
- **FavoriteManager.vue**:
- 新增“标签管理”按钮。
- 网格布局优化 (使用 `NGrid` 替代 `flex`)。
- 工具栏固定,响应式设计。
- 移除冗余视图切换,简化布局。
- **FavoriteCard.vue**:
- 卡片布局优化:使用 `NTag` 展示标签,显示元信息 (创建时间、使用次数、功能模式),操作按钮 (编辑、删除、应用),悬停效果。
- **用户体验提升**: 优化标签输入和管理流程,增强错误处理(如 `TAG_ALREADY_EXISTS` 静默忽略,其他错误显示友好提示)。
### 5. 分类管理架构优化与国际化
- **架构优化**:
- 分离关注点:默认分类创建从 Core 层移至 UI 层,Core 层不再硬编码分类名称,改为接受配置参数。
- 添加初始化标记防止重复创建默认分类。
- `deleteCategory` 现返回受影响的收藏数量。
- **国际化增强**:
- 新增 `useFavoriteInitializer` composable 管理国际化分类。
- 完善中英繁三语言的分类翻译。
- 优化默认分类配置 (新增“学习研究”和“日常助手”)。
- 统一错误信息为英文。
- **代码组织**:
- 测试文件迁移至标准目录 `packages/core/tests/`。
- 改进 `FavoriteManager` 组件生命周期管理,优化初始化流程。
### 6. 全面集成测试
- 新增 `integration.test.ts` (742行,20个集成测试),覆盖以下场景:
- CRUD 完整流程测试 (3个)。
- 历史记录转收藏测试 (5个,覆盖12种 PromptRecordType)。
- 标签和分类管理测试 (6个:重命名/合并/删除/排序/统计/级联)。
- 导入导出完整性测试 (2个)。
- 搜索和过滤功能测试 (4个)。
- `type-converter.test.ts` 包含16个测试,`tag-manager.test.ts` 包含23个测试。
2025-10-19 12:31:42 +08:00