diff --git a/README.md b/README.md index 82d07da..2821889 100644 --- a/README.md +++ b/README.md @@ -74,15 +74,17 @@ AI 会自动从对话中学习并记住关键信息,跨会话持续积累, - 历史记录 IndexedDB 持久化,支持搜索、分页 - 导出格式:Markdown / HTML / TXT / .metona 加密备份 - .metona 格式支持 AES-256-GCM 加密(HTTPS)或 XOR 混淆(HTTP) +- 所有导入/导出均使用 Electron 原生文件对话框(不再依赖浏览器下载) ### 🖥️ 桌面原生 | 特性 | 说明 | |------|------| | Fluent Design 主题 | Windows 11 暗色风格,Mica 毛玻璃材质 | | 执行日志面板 | 左侧面板实时显示应用运行日志(初始化、连接、模型加载、工具调用等),纯运行时不持久化,常驻显示不可关闭 | +| Token 消耗统计 | Header 实时显示当前会话总 token 消耗 | | 系统托盘 | 最小化到托盘,双击恢复,右键菜单 | | 原生菜单 | 文件 / 编辑 / 视图 / 窗口 / 帮助完整菜单 | -| 原生文件对话框 | Windows 文件选择器替代浏览器 input | +| 原生文件对话框 | 文件选择/保存全部使用 Electron 原生对话框,支持文件类型过滤 | | 系统通知 | Windows 原生通知中心推送 | | 窗口管理 | 记忆窗口大小位置,支持置顶 | | 单实例锁 | 防止重复启动 | @@ -151,8 +153,8 @@ v3.0 三大子系统协调运作: | 文件 | 类型 | |------|------| -| `Metona Ollama Setup 3.0.0.exe` | NSIS 安装包(可选目录、创建快捷方式) | -| `MetonaOllama-Portable-3.0.0.exe` | 绿色便携版(免安装,双击即用) | +| `Metona Ollama Setup 3.1.0.exe` | NSIS 安装包(可选目录、创建快捷方式) | +| `MetonaOllama-Portable-3.1.0.exe` | 绿色便携版(免安装,双击即用) | > ⚠️ 未签名版本,首次运行 Windows 可能弹出安全警告,点击「仍要运行」即可。 @@ -170,12 +172,15 @@ v3.0 三大子系统协调运作: ```bash git clone https://gitee.com/thzxx/metona-ollama.git cd metona-ollama -git checkout metona-ollama-desktop-v3 +git checkout refactor/modular-architecture # 安装依赖(国内使用 npmmirror 加速) npm config set registry https://registry.npmmirror.com npm install +# 恢复构建缓存(Electron 二进制等,首次从镜像下载) +bash restore-build-cache.sh + # 构建 TypeScript npm run build @@ -187,6 +192,8 @@ ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm run dist ``` > 💡 Linux 交叉编译需安装 Wine:`apt install wine`,详细构建指南见 [docs/BUILD.md](docs/BUILD.md) +> +> 💡 一键构建脚本:`bash build-release.sh`(自动安装 Wine + 依赖 + 构建) ### 常用命令 @@ -246,7 +253,7 @@ metona-ollama/ │ │ ├── rag.ts # RAG 检索管线 │ │ ├── vector-store.ts # 向量存储 + IVF 索引 │ │ ├── document-processor.ts # 文档分块 -│ │ ├── preset-manager.ts # 预设管理(兼容层) +│ │ ├── log-service.ts # 结构化执行日志 │ │ └── crypto.ts # AES-256-GCM 加密 │ ├── utils/ │ │ ├── utils.ts # 工具函数 @@ -336,6 +343,14 @@ metona-ollama/ ### 最新版本 +**v3.1.0** — 代码质量 & 桌面原生化 +- ♻️ 渲染进程 58 处 console.log 全部迁移至结构化 log-service +- 🖥️ 所有文件对话框(上传/保存/导入)改用 Electron 原生对话框 +- 🪙 Header 新增当前会话总 token 消耗统计 +- 🧹 移除浏览器专用代码(fileToBase64/fileToText/downloadFile),统一走 IPC 桥接 +- 🔧 修复 vector-store/importSessions 编译错误,修复 token 统计显示 +- 📦 新增 build-release.sh 一键构建 + restore-build-cache.sh 构建缓存恢复 + **v3.0.0-patch2** — 稳定性修复 - 🔧 Tool Calling IPC 卡死修复(25 秒硬超时 + 多层保护) - 🔧 Electron contextIsolation 兼容(自定义 prompt/confirm 弹窗) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index e207380..1a848f2 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -9,12 +9,47 @@ - `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`(当前) +- `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 — 稳定性修复