Files
metona-ollama-desktop/docs/CHANGELOG.md
T
thzxx 70ff2c7d33 docs: 更新 README.md 和 CHANGELOG.md,记录 v3.1.0 变更
- README: 新增 Token 消耗统计、原生文件对话框描述、构建脚本说明
- CHANGELOG: 新增 Desktop v3.1.0 版本记录(日志系统/原生化/Token统计/编译修复/构建工具)
2026-04-07 02:43:07 +08:00

186 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📋 更新日志
## 分支结构
项目有两条产品线,共 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-GCMHTTPS)或 XORHTTP
- 🎯 **模型选择增强**
- 选中模型持久化为默认,刷新后自动恢复
- 模型列表按名称排序,同名称按大小升序
- 模型下拉框展示磁盘实际文件大小
- 🔧 修复刷新后模型选择恢复、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