Commit Graph

72 Commits

Author SHA1 Message Date
ILoveBingLu 9de15b620d fix: include AI worker scripts in packaged app 2026-04-27 17:29:48 +08:00
ILoveBingLu 25a88fd38d feat: enhance AI services and data management
- Add session checks in ProxyService to handle worker threads without electron.session API.
- Integrate data management service pause/resume functionality in SessionQAJobService to prevent data updates during AI tasks.
- Implement AI pause count in DataManagementService to manage update requests during AI operations.
- Update chat search index schema version and optimize SQL queries for better performance.
- Adjust styles in AISummaryWindow for improved UI, including padding adjustments and link hover effects.

Co-authored-by: Copilot <copilot@github.com>
2026-04-27 03:24:29 +08:00
ILoveBingLu a8c0d27dd3 feat: add session and keyword statistics to MCP and AI services
- Introduced new tools: `get_session_statistics` and `get_keyword_statistics` in MCP.
- Added interfaces for session and keyword statistics, including detailed participant and message metrics.
- Updated `ChatSearchIndexService` to handle vector indexing with improved batching and idle time management.
- Enhanced `LocalEmbeddingModelService` to optimize CPU threading for embedding models.
- Implemented cancellation handling for vector indexing in `sessionVectorIndexWorker`.
- Improved UI components in `AISummaryWindow` and `ChatPage` for displaying evidence and vector indexing status.
- Added styles for vector indexing buttons and badges in `ChatPage.scss`.
- Updated AI types to include new session and keyword statistics events.
2026-04-26 20:46:15 +08:00
ILoveBingLu 9516ed971e feat: Refactor AISummaryWindow for improved QA handling and UI enhancements
- Introduced requestId tracking for QA messages to manage progress and results.
- Enhanced evidence card rendering with expandable sections for better user experience.
- Updated progress event handling to allow toggling of detailed views.
- Removed deprecated vector indexing logic and related UI components.
- Added new API methods for starting and canceling session questions.
- Improved overall code structure and readability.
2026-04-26 12:44:55 +08:00
ILoveBingLu c1bf514b4a feat: integrate embedding model functionality and UI enhancements
- Added @huggingface/transformers and sqlite-vec dependencies to package.json.
- Updated electron-builder configuration to include sqlite-vec files.
- Enhanced AISummarySettings component with new styles and layout for embedding model selection and device configuration.
- Implemented embedding model loading, status checking, and download functionality in AISummarySettings.
- Added new types for embedding models and device status in ai.ts and electron.d.ts.
- Updated config service to manage embedding model profile and device settings.
- Modified AISummaryWindow to reflect changes in vector indexing messages and statuses.
2026-04-25 23:02:57 +08:00
ILoveBingLu 43a1608868 继续重构 2026-04-25 21:15:14 +08:00
ILoveBingLu d1824e87bd feat: 在 McpMessageItem 接口中为发送方添加可选的 displayName 字段
新增 ChatSearchIndexService 服务,基于 SQLite 实现聊天消息索引管理
实现消息提取、分词与搜索功能
优化 AISummaryWindow 界面样式与布局
更新进度指示器与消息渲染逻辑,提升用户体验
扩展 SessionQAToolCall 接口,新增工具名称以增强功能
2026-04-25 03:52:14 +08:00
ILoveBingLu 78dd50de17 重构AI摘要;
兼容最新版Deepseek
2026-04-25 01:50:50 +08:00
ILoveBingLu f30494e6cb release: v4.2.2 2026-04-23 04:47:23 +08:00
ILoveBingLu 4beec0c70e release: v4.2.1 2026-04-23 02:17:48 +08:00
ILoveBingLu 14b41e9d4e fix: 增强视频定位能力,支持从 rawContent 提取备用 MD5
问题:部分视频消息的 videoMd5 字段为空或与实际文件名不匹配,
导致视频显示「不可用」。

变更内容:

electron/services/videoService.ts
- getVideoInfo 新增 rawContent 参数,从消息原始 XML 中提取
  newmd5 / rawmd5 等备用 MD5 字段作为候选
- 返回 diagnostics 诊断信息(candidateMd5s、matchedMd5、reason、summary 等),
  便于前端展示失败原因和调试

electron/services/chatService.ts
- extractVideoMd5 新增对 newmd5 / rawmd5 XML 字段的提取支持

electron/services/exportService.ts / httpApiFacade.ts / httpApiService.ts
- getVideoInfo 调用处透传 rawContent 参数

electron/services/mcp/readService.ts
- getVideoLocalPath 支持 rawContent 为空时 videoMd5 也为空的情况

electron/services/imageDecryptService.ts
- 新增 hdNotFoundCache,避免高清图重复查询

electron/main.ts / electron/preload.ts / src/types/electron.d.ts
- IPC 接口同步更新,透传 rawContent 和 diagnostics

src/pages/ChatPage.tsx
- 视频缓存 key 改为 videoMd5 || local:localId,兼容无 MD5 的消息
- 视频不可用时展示 diagnostics.summary 诊断文案
- 详情面板新增关闭动画(closing 状态 + 220ms 延迟)
- 视频播放按钮图标调整

src/pages/ChatPage.scss
- 详情面板改为绝对定位浮层,新增 slideOutRight 关闭动画
- 工具栏按钮改为圆形,悬停加 scale 效果
- 视频不可用区域新增 .video-reason 样式

src/pages/VideoWindow.tsx
- 播放图标尺寸调整
2026-04-21 21:35:22 +08:00
ILoveBingLu 6ef395f3c9 发布 4.2.0:优化图片解密与聊天滚动体验
本次提交将应用版本更新到 4.2.0,并同步更新 package-lock、README 版本徽标和 CHANGELOG 发布说明。

主要变更:
- 接入 CipherTalk 自研图片 DAT 原生解密模块,替换原先迁移自 WeFlow 的命名与资源落点。
- 新增 Windows x64 与 macOS arm64 的预编译 native addon 资源,并补充 manifest、检查脚本和同步脚本。
- 保留 native 优先、TypeScript 兜底的图片解密链路,兼容 V3/V4 图片、wxgf 后处理、缓存命中、高清图回退和实况照片提取。
- 优化图片解密服务的缓存校验、wxgf/HEVC 白图规避、耗时诊断和默认日志输出,减少线上噪音。
- 聊天消息列表改为动态高度虚拟列表,卸载屏幕外消息 DOM 与图片节点,降低长会话内存和渲染压力。
- 修复虚拟列表初始挂载时滚底与顶部历史预加载互相打架导致界面上下晃动的问题。
- 顶部历史消息改为接近顶部并向上滚动时提前加载,同时加强 prepend 后的滚动位置恢复。
- 解析图片 XML 中的宽高信息,并用于聊天图片骨架屏、未解密占位、已解密图片和图片查看器初始窗口尺寸。
- 打包清理逻辑改为按当前平台保留对应 native addon,避免安装包携带无关平台产物。

验证:
- 已执行 npx tsc --noEmit,通过 TypeScript 类型检查。
- 本地未执行应用构建,发布构建交由 GitHub Actions 的 tag 发布工作流完成。
2026-04-21 04:44:47 +08:00
ILoveBingLu c51293ee76 fix: 优化 MCP 内容可见性与 Skill 路由并升级到 4.1.8 2026-04-09 13:28:16 +08:00
ILoveBingLu 403cc66d6e fix: 统一独立窗口跨平台标题栏布局并升级到 4.1.3
- 为独立窗口统一引入跨平台 window chrome 安全区和标题栏高度变量
- 优化朋友圈、聊天记录、浏览器、AI 摘要、协议页、图片/视频窗口等标题栏在 Windows/macOS 下的布局表现
- 统一主进程独立窗口 titleBarOverlay 高度为 40,减少首屏偏移和抖动
- 升级版本号到 4.1.3,并补充 README 与 CHANGELOG 记录
2026-04-08 19:47:09 +08:00
ILoveBingLu ca51c377ea 重构 MCP Copilot Skill 分发流程,改为内置打包并支持手动导出 2026-04-08 13:18:43 +08:00
ILoveBingLu 7b8ac3921f 完善在线语音转写接入,并统一替换 AI / MCP 图标体系
本次提交主要围绕在线语音转写能力扩展与图标体系统一展开,重点补齐了阿里云 Qwen-ASR 的接入能力,并将聊天页、AI 摘要与侧边栏中的相关图标逐步切换到 lobe-icons 体系。

1. 在线语音转写能力增强
- 在现有 CPU / GPU 模式之外,完善在线 STT 模式的配置、持久化与主进程分发逻辑。
- 新增独立的在线转写服务 `voiceTranscribeServiceOnline`,统一管理在线 provider 的配置校验、请求组装、错误处理与结果返回。
- 保持原有转写缓存机制不变,继续复用 `sessionId + createTime` 作为缓存键,避免重复调用第三方服务。

2. 新增并完善阿里云 Qwen-ASR 支持
- 在线 STT 提供商扩展为:`OpenAI 兼容`、`阿里云 Qwen-ASR`、`自定义接口`。
- 阿里云作为独立 provider 接入,不与 OpenAI 兼容或自定义接口混用协议,避免后续逻辑继续耦合和膨胀。
- 阿里云请求改走 `chat/completions + input_audio` 协议,并支持流式返回。
- 主进程将阿里云流式增量结果转发到现有 `stt:partialResult` 通道,聊天页可实时显示逐步生成的转写文本。
- 阿里云模型信息同步收敛到当前可用范围,默认模型调整为 `qwen3-asr-flash`,并在设置页明确提示 `qwen3-asr-flash` 与 `qwen3-asr-flash-filetrans` 两个模型选项。

3. 在线模式设置页体验优化
- 设置页新增在线 STT 的完整配置区域,包括 provider 切换、接口 URL、API Key、模型名、语言、超时和批量并发数。
- 不同 provider 的提示文案、默认 URL、默认模型与占位内容按协议能力区分展示,减少误配。
- 在线配置测试入口支持按当前表单配置即时校验,而不是只能测试已保存配置。
- 在线模式相关布局、下拉、自定义选择器、数值步进器等样式补齐,避免退化成原生控件观感。

4. 聊天页转写交互优化
- 在线模式下,聊天页会根据当前 provider 做更准确的判断与展示,不再统一写死为 OpenAI 在线转写。
- 阿里云转写等待态改为使用千问图标作为唯一视觉标识,不再显示“正在转写”文字,突出 provider 识别性。
- 千问图标尺寸与呼吸动画一并优化,使等待态更明显、更稳定。

5. AI 摘要与 MCP 图标统一到 lobe-icons
- 引入 `@lobehub/icons` 及其依赖链,并新增前端共享组件 `AIProviderLogo`,统一管理 AI 提供商图标渲染。
- AI 摘要设置页与聊天页进入的 AI 摘要窗口,均改为优先使用 lobe-icons 渲染 provider 图标,仅在未命中映射时回退本地 logo。
- 为常用 provider 增加显式映射,包括 OpenAI、通义千问、Gemini、Kimi、硅基流动、小米 MiMo、腾讯元宝、智谱、DeepSeek、豆包、Ollama、xAI,以及自定义 provider 对应的 Clipdrop 图标。
- 侧边栏中的 `MCP 服务` 图标替换为 lobe-icons 提供的 `Model Context Protocol` 图标,统一整体视觉语言。

整体来看,这次提交解决了在线转写从“能配置”到“能稳定使用、能看出当前 provider、能流式显示”的关键链路问题,同时也把 AI / LLM 相关图标从分散的本地静态文件逐步收拢到统一的组件化图标库,后续继续扩展 provider 时会更容易维护。
2026-04-08 01:26:40 +08:00
ILoveBingLu 7a7dfe79f1 修复新增账号引导、账号显示名与语音导出体验
本次提交主要优化了账号引导、设置页账号展示以及聊天页语音消息导出相关体验。

1. 修复“设置 - 数据解密 - 新增账号引导”在已有账号场景下误继承主窗口数据库已连接状态的问题,避免引导窗口一打开就直接显示“已连接数据库”,恢复新增账号流程的正常进入路径。
2. 调整独立引导窗口的系统控件布局,使其符合平台习惯:macOS 采用左侧“关闭 | 最小化”,Windows 采用右侧“最小化 | 关闭”。
3. 优化设置页“账号管理”的展示逻辑,优先显示用户昵称等更易理解的名称,而不是直接显示 wxid;同时补齐 displayName 的保留与同步逻辑,避免保存或切换账号后名称又退回 wxid。
4. 为聊天页语音消息增加右键“导出语音文件”能力,导出格式为 wav,并补充最小必要的文件写入 IPC 通道,打通从渲染进程到主进程的保存链路。
5. 将语音导出成功提示由系统 alert 调整为页面内自定义顶部气泡提示,并统一复用到复制成功/失败等反馈场景,减少打断感,提升交互一致性。

整体上,这次修改主要是修复几个明显影响理解和操作流畅度的前端交互问题,让新增账号、账号识别和语音导出这几个高频路径更符合用户预期。
2026-04-07 21:46:33 +08:00
ILoveBingLu b3120a3244 release: v4.1.0 2026-04-07 17:03:31 +08:00
ILoveBingLu e436bf2d36 feat: add bundled skill installer support 2026-04-07 16:02:44 +08:00
ILoveBingLu 69d875f788 feat: add moments data to mcp and http api 2026-04-07 14:45:08 +08:00
ILoveBingLu e67640a4c4 feat: add multi-account storage support 2026-04-07 11:25:55 +08:00
ILoveBingLu 892bb38105 feat: add packaged mcp launcher for macos 2026-04-07 10:52:18 +08:00
ILoveBinglu 7fc73c973b fix: update mac packaging and icon handling 2026-04-06 22:58:52 +08:00
ILoveBinglu d4db5fd715 chore: clean macos integration leftovers 2026-04-06 22:10:36 +08:00
ILoveBinglu 252d2aa487 feat: polish macos window and auth behavior 2026-04-06 22:00:46 +08:00
ILoveBinglu 6f9958c1fb feat: update macos native integration 2026-04-06 21:31:29 +08:00
ILoveBingLu 6aa2a516a2 merge: sync MACOS with main (MCP & updates)
Made-with: Cursor
2026-04-06 14:53:17 +08:00
ILoveBingLu e403e9c4f1 chore: disable differential updates 2026-04-04 04:25:31 +08:00
ILoveBingLu 1c26d8dac2 feat:优化更新功能与UI 2026-04-04 00:04:14 +08:00
ILoveBingLu 66a96c089f feat: 新增 MCP 聊天导出自动化并升级到 3.0.0 2026-04-03 22:04:10 +08:00
ILoveBingLu 4a0efe8904 feat: 增强 CipherTalk MCP 协作能力与流式支持 2026-04-03 22:03:42 +08:00
ILoveBingLu 961e232c11 feat: 增强联系和会话查找功能,更新相关文档和脚本 2026-04-03 20:52:28 +08:00
ILoveBingLu 387224c08d chore: release 2.3.5 2026-04-03 16:36:17 +08:00
ILoveBingLu fd13d2967d feat: proxy MCP queries through main process 2026-04-03 00:19:20 +08:00
ILoveBingLu c8c5b437f9 feat: release 2.3.3 differential update diagnostics 2026-04-02 14:18:40 +08:00
ILoveBingLu d3c4e698f0 fix: disable prod devtools and release 2.3.2 2026-04-02 13:31:49 +08:00
ILoveBingLu 0da479bed7 fix: 发布 2.3.1 更新安装修复 2026-04-02 04:47:30 +08:00
ILoveBingLu a77e88907b feat: 支持 GitHub 主源与自定义策略更新 2026-04-01 23:41:45 +08:00
ILoveBingLu 87605b404a feat: 扩展 MCP 全局画像与检索优化 2026-04-01 22:36:47 +08:00
ILoveBingLu fe8bcf7cd9 feat: 扩展 MCP AI 友好检索层 2026-04-01 22:00:47 +08:00
ILoveBingLu f5ca04ad51 feat: 新增 CipherTalk MCP 服务 2026-04-01 19:43:09 +08:00
ILoveBingLu bcf8f331b2 feat: add macOS key and decrypt integration 2026-03-30 02:59:27 +08:00
影烨 fe130caf4b Add embedded MCP server with shared API facade 2026-03-23 23:53:54 +08:00
ILoveBinglu 6bf5c44080 fix: 修复 issue #92 中的 4 个 bug
- fix(MomentsWindow): 修复朋友圈刷新崩溃问题
  - 新增 postsRef 追踪最新 posts 状态,避免触发重渲染
  - loadPosts 中改用 postsRef.current 读取数据
  - 从 useCallback 依赖数组移除 posts,断开依赖循环

- fix(exportService): 修复群聊导出数据串问题
  - 改进 findMessageTable 哈希匹配为大小写无关的精确匹配
  - 匹配失败返回 null,不再回退到第一个表

- fix(exportService): 修复导出 HTML 实体转义乱码问题
  - 增强 decodeHtmlEntities,支持 &#x20; &#x0A; 等常见实体
  - 对 content、senderDisplayName、formattedTime 字段解码

- fix(exportService): 修复红包/群收款显示原始 XML 问题
  - parseChatHistory 中过滤 datatype=2001 和 2002 的消息

- fix(htmlExportGenerator): 新增浏览器端二次解码兜底

关闭 #92
2026-03-18 11:34:39 +08:00
ILoveBingLu 9eae24e4e0 feat: 更新窗口关闭行为,支持托盘最小化并修复布局样式 2026-03-12 20:12:27 +08:00
ILoveBingLu ca559a094e feat: 添加系统托盘功能,支持窗口最小化到托盘及配置保存状态监控 2026-03-07 17:22:20 +08:00
ILoveBingLu 3ca7dfbe10 feat: 增强图片查看器功能,支持高清图升级及相关参数传递 2026-03-04 02:25:44 +08:00
ILoveBingLu 79af4bfaa3 feat: 新增单库解密功能并支持数据库批量解密
在dataManagementService中实现decryptSingleDatabase方法,支持单个数据库文件解密
增强httpApiService服务,新增消息查询接口端点,支持多条件筛选与分页查询
在ChatPage中新增微信号复制 UI 组件,并优化消息加载逻辑
在DataManagementPage中新增数据库选择与批量解密能力,支持用户勾选多个数据库解密
更新ChatPage.scss和DataManagementPage.scss样式文件,适配新增 UI 元素
扩展 Electron API 类型定义,新增数据库解密与消息检索相关方法
2026-03-04 01:25:12 +08:00
ILoveBingLu 8f797fa70f feat: 新增 Open API 页面并集成 HTTP API 配置功能
新增 OpenApiPage 组件,用于管理 HTTP API 相关配置项
更新侧边栏(Sidebar),新增 Open API 页面的导航入口
增强 HttpApiService 服务,新增会话(sessions)和联系人(contacts)相关接口端点
实现会话 / 联系人数据的请求处理逻辑,支持筛选、排序功能
优化 SettingsPage 页面:移除过时的 HTTP API 配置代码,集成新的 Open API 功能
优化 Open API 板块样式,提升布局合理性与用户体验
2026-03-03 21:42:05 +08:00
ILoveBingLu b5c5f31e5a feat: 添加 HTTP API 功能,支持状态获取、设置应用和重启操作 2026-03-03 04:59:39 +08:00