- README: 新增 Token 消耗统计、原生文件对话框描述、构建脚本说明 - CHANGELOG: 新增 Desktop v3.1.0 版本记录(日志系统/原生化/Token统计/编译修复/构建工具)
186 lines
9.1 KiB
Markdown
186 lines
9.1 KiB
Markdown
# 📋 更新日志
|
||
|
||
## 分支结构
|
||
|
||
项目有两条产品线,共 22 个分支:
|
||
|
||
**Web 版主线**(`master`):
|
||
- `v1.1.0` → `v2.0.0` → `v2.1.0` → `v2.2.0` → `v3.0.0` → `v3.0.1` → `v3.0.2` → `v3.1.0` → `v3.1.1` → `v3.2.0` → `v4.0.0` → `v4.0.1` → `v4.0.2`(合并到 master)
|
||
- `refactor/modular-architecture`:重构分支,v4.0.3 合并到 master
|
||
|
||
**桌面版分支**(从 master v4.0.3 分出):
|
||
- `metona-ollama-desktop-v1` → `metona-ollama-desktop-v1.1` → `metona-ollama-desktop-v2` → `metona-ollama-desktop-v3`
|
||
- `refactor/modular-architecture`:桌面版重构分支(当前)
|
||
|
||
---
|
||
|
||
## 桌面版(Desktop)
|
||
|
||
### Desktop v3.1.0 — 代码质量 & 桌面原生化
|
||
|
||
- ♻️ **结构化日志系统**
|
||
- 渲染进程 58 处 `console.log/warn/error` 全部迁移至 `log-service.ts`
|
||
- 135 处结构化日志点覆盖全链路:初始化、连接、模型加载、工具调用、RAG 检索、记忆提取、流式响应、Agent Loop
|
||
- 日志级别分级(init/success/info/warn/error/debug),便于过滤排查
|
||
- 🖥️ **文件对话框全面原生化**
|
||
- 图片上传 → `bridge.dialog.openFile()`(原生文件选择器 + 图片类型过滤)
|
||
- 文件上传 → `bridge.dialog.openFile()`(50+ 种文本/代码格式过滤)
|
||
- 知识库文档上传 → `bridge.dialog.openFile()`(文档格式过滤)
|
||
- 会话导入 → `bridge.dialog.openFile()`(.metona 格式过滤)
|
||
- 会话导出 → `bridge.dialog.saveFile()`(替代浏览器 blob 下载)
|
||
- 聊天导出(Markdown/HTML/TXT) → `bridge.dialog.saveFile()`(替代浏览器 blob 下载)
|
||
- 🪙 **Token 消耗统计**
|
||
- Header 新增 🪙 图标 + 当前会话总 token 消耗实时显示
|
||
- `updateTotalTokens()` 在每轮对话完成后自动更新
|
||
- Agent Loop 和普通聊天均支持统计
|
||
- 🧹 **代码清理**
|
||
- 移除浏览器专用工具函数:`fileToBase64()`、`fileToText()`、`downloadFile()`
|
||
- 所有文件 I/O 统一走 Electron IPC 桥接(`bridge.fs.readFile` / `bridge.fs.writeFile`)
|
||
- 清理废弃的 `DesktopBridge` 接口,统一使用 `MetonaDesktopAPI`
|
||
- 移除 `types.d.ts` 中废弃的 `DesktopBridge` 类型和 `__metonaBridge` 全局声明
|
||
- `fs.writeFile` 新增 `encoding` 参数支持(UTF-8 / base64)
|
||
- 会话导出(.metona 加密备份)改用 base64 编码写入二进制文件
|
||
- 🔧 **编译修复**
|
||
- 修复 `vector-store.ts` 中 `colId` 变量重复声明导致编译失败
|
||
- 修复 `importSessions` 中 `result` 变量重复声明导致编译失败
|
||
- 修复 token 统计在 `eval_count=0` 时仍显示的显示问题
|
||
- 📦 **构建工具**
|
||
- 新增 `build-release.sh` — 一键构建脚本(自动安装 Wine + npm 依赖 + electron-builder)
|
||
- 新增 `restore-build-cache.sh` — 构建资源本地缓存恢复(Electron 二进制等 145MB 资源)
|
||
- 更新 `docs/BUILD.md` — 新增快速构建 3 步指南、构建资源管理说明
|
||
- `.gitignore` 排除 build-resources 目录(本地缓存不进仓库)
|
||
|
||
### Desktop v3.0.0 — Tool Calling & Agent 记忆
|
||
|
||
#### v3.0.0-patch2 — 稳定性修复
|
||
- 🔧 **Tool Calling IPC 卡死修复**
|
||
- `executeTool()` 新增 25 秒 IPC 硬超时,防止主进程无响应时无限挂起
|
||
- `agent-engine.ts` 内 `.catch` 捕获异常,防止 reject 逃逸
|
||
- 主进程 `tool:execute` 外层 try-catch,确保始终返回响应
|
||
- 全链路 console.log 便于 DevTools 排查
|
||
- 🔧 **Electron contextIsolation 兼容**
|
||
- 新增 `prompt-modal.ts` 自定义弹窗组件(替代原生 `window.prompt()` / `window.confirm()`)
|
||
- 替换 memory-panel / kb-modal / settings-modal / history-modal 中全部 7 处原生调用
|
||
- 🔧 **日志面板改造**
|
||
- 默认常驻显示,移除关闭/清空/切换按钮
|
||
- 新增 earlyBuffer 缓冲机制,initLogPanel 前的日志不再丢失
|
||
- initLogPanel() 移至 init() 最先执行
|
||
- 确认为纯运行时日志,不持久化
|
||
- 🔧 **启动稳定性**
|
||
- init() 中防御性重置 IS_STREAMING / IS_HISTORY_VIEW / toolCallingEnabled 等状态
|
||
- catch 路径也重置关键状态并初始化日志面板
|
||
- 🔧 **新建会话修复** — 新建会话时强制中断正在进行的生成,恢复发送按钮
|
||
- 📝 对齐 Ollama 官方 Tool Calling JavaScript 文档
|
||
|
||
#### v3.0.0 — Tool Calling & Agent 记忆
|
||
- 🔧 **Tool Calling — AI 本地文件操作系统**
|
||
- 7 个工具:`read_file` / `write_file` / `list_directory` / `search_files` / `create_directory` / `delete_file` / `run_command`
|
||
- Agent Loop 引擎:流式多轮工具调用循环,支持并行调用(最大 10 轮)
|
||
- 安全模型:路径白名单/黑名单、命令过滤、用户确认对话框
|
||
- 工具调用可视化卡片(5 种状态:pending → running → success/error/denied)
|
||
- 🧠 **Agent 记忆系统**
|
||
- 自动从对话中提取关键信息(事实/偏好/规则/事件)
|
||
- 关键词 + 标签 + 重要性加权检索,自动注入上下文
|
||
- IndexedDB 持久化,跨会话积累
|
||
- 可视化记忆管理面板(搜索/筛选/编辑/删除)
|
||
- 对话 ≥6 条消息后自动触发记忆提取
|
||
- ⚡ **全功能协调运作** — 记忆检索 → RAG 检索 → Tool Calling 三层协作
|
||
- 🔧 Agent 预设系统移除,由记忆系统替代
|
||
- 📝 Tool Calling 技术开发文档(75KB)
|
||
- 📝 Wine 安装步骤和构建日志
|
||
|
||
### Desktop v2.0.0 — TypeScript 重写
|
||
- ⚡ **TypeScript + Vite + Electron 全面重构**
|
||
- 🏗️ 构建系统完善,模块化拆分
|
||
- 🖥️ 纯桌面版,专注 Electron 体验
|
||
- 📝 Windows 安装包构建指南
|
||
|
||
### Desktop v1.1.0 — UI 重塑
|
||
- 🎨 **Windows 11 Fluent Design 暗色主题** — Mica 毛玻璃材质
|
||
- 📐 知识库/历史弹框优化
|
||
- ✨ Think 按钮光效增强
|
||
- 🔧 修复知识库/历史弹框宽度、图片按钮禁用标识、Think hover 光效
|
||
- 📝 Windows 安装包构建指南,记录踩坑经验
|
||
|
||
### Desktop v1.0.0 — 桌面客户端诞生
|
||
- 🖥️ **Electron Windows 桌面客户端首版**
|
||
- 📦 NSIS 安装包 + 绿色便携版
|
||
- 🔧 隐藏窗口菜单栏
|
||
|
||
---
|
||
|
||
## Web 版
|
||
|
||
### v4.0.3 — 帮助弹框优化
|
||
- 📖 帮助弹框新增 Agent 预设说明,完善设置描述
|
||
|
||
### v4.0.2 — 预设系统修复
|
||
- 🔧 切换预设时 Think 按钮在模型不支持时不显示激活态
|
||
- 📝 README 新增 Agent 预设系统详细说明
|
||
|
||
### v4.0.1 — 温度控制
|
||
- 🎛️ 设置面板新增温度 (Temperature) 滑块控制
|
||
|
||
### v4.0.0 — Agent 预设系统
|
||
- 🤖 **Agent 预设系统** — 一键切换角色/工作模式
|
||
|
||
### v3.2.0 — IVF 索引优化
|
||
- ⚡ **IVF 倒排索引优化** — K-Means 聚类 + nprobe 近邻检索,向量搜索性能大幅提升
|
||
- 🎨 知识库弹框和帮助弹框视觉优化
|
||
- ♻️ state 管理优化 — 结构化浅比较 + update/setIn/batch API
|
||
- 🔧 setSelectedModel 触发 change 事件,恢复模型能力检测
|
||
- 🔧 RAG 临时状态消息时序修复
|
||
|
||
### v3.1.1 — 嵌入模型过滤
|
||
- 🔧 模型下拉框过滤嵌入模型
|
||
|
||
### v3.1.0 — RAG 来源修复
|
||
- 🔧 **7 个 RAG 修复**:消息不显示、loading 不消失、状态消息时序、RAG 来源历史展示
|
||
- 🔧 流结束后手动插入 RAG 来源到 DOM
|
||
|
||
### v3.0.2 — 显存管理
|
||
- ✨ 新建会话时自动释放显存,清理模型上下文
|
||
- 🔧 RAG 上下文根据 numCtx 动态计算可用预算,智能截取
|
||
- 🔧 RAG 请求增加 system prompt 长度限制(12000 字节)
|
||
|
||
### v3.0.1 — 嵌入模型检测
|
||
- 🔧 嵌入模型检测改用 `/api/show` capabilities 判断
|
||
- 🔧 嵌入模型下拉仅显示 embedding 模型
|
||
|
||
### v3.0.0 — RAG 本地知识库
|
||
- 📚 **RAG 本地知识库**
|
||
- 文档上传 → 自动分块 → 向量化 → IndexedDB 持久化
|
||
- 语义检索增强问答,多集合管理
|
||
- IVF 索引(K-Means 聚类 + 倒排索引)
|
||
- 嵌入模型自动检测
|
||
- RAG 回复显示知识库来源(文件名 + 相似度分数)
|
||
- RAG 检索过程可视化
|
||
- 帮助按钮和使用说明弹框
|
||
- 🔧 嵌入模型下拉优化、知识库弹框布局修复
|
||
- 🔧 修复文档上传无反馈 bug
|
||
|
||
### v2.2.0 — 数据安全
|
||
- 🔒 **会话导出加密** — `.metona` 格式,AES-256-GCM(HTTPS)或 XOR(HTTP)
|
||
- 🎯 **模型选择增强**
|
||
- 选中模型持久化为默认,刷新后自动恢复
|
||
- 模型列表按名称排序,同名称按大小升序
|
||
- 模型下拉框展示磁盘实际文件大小
|
||
- 🔧 修复刷新后模型选择恢复、chatAreaEl 重复声明
|
||
|
||
### v2.1.0 — 文件 & 交互增强
|
||
- 🧠 **智能滚动** — 流式回复时可向上查看历史,浮动按钮回到底部
|
||
- 👁️ **Vision 能力检测** — 不支持时禁用图片上传
|
||
- 📁 **多格式文件上传** — 支持 50+ 种文本/代码格式(≤500KB)
|
||
- 🔧 禁用按钮保留 hover 提示、文件图标按类型区分
|
||
|
||
### v2.0.0 — 架构重构
|
||
- ♻️ **模块化架构重构** — 项目文件归类整理
|
||
- ✨ 强制停止 AI 回复 — 真正中止 Ollama 接口请求
|
||
- 🎛️ 重新设计模型选择栏与 Think 模式
|
||
- 🎨 导航按钮和 Think 按钮渐变风格
|
||
- 🔧 修复消息渲染(undefined、sanitize)、历史记录分页
|
||
|
||
### v1.1.0 — 初始版本
|
||
- 🚀 Metona Ollama Client v1.1.0
|
||
- 📄 MIT License
|