From 1b66ee5f19fe4fde3730fc272462dead795f2d33 Mon Sep 17 00:00:00 2001 From: thzxx Date: Fri, 17 Apr 2026 16:29:48 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20README=20=E5=92=8C?= =?UTF-8?q?=20docs=20=E4=B8=AD=E6=95=B0=E6=8D=AE=E5=BA=93=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E4=B8=BA=20sql.js=20(WASM)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- docs/BUILD.md | 2 +- docs/CHANGELOG.md | 5 +++-- docs/DEVELOPMENT.md | 6 +++--- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9e8d5b9..b9e24a6 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ AI 自动从对话中学习并记住关键信息,跨会话持续积累: - 设置中一键开关 ### 📦 数据 -- SQLite (better-sqlite3) 持久化,WAL 模式高性能 +- SQLite (sql.js WASM) 持久化,WAL 模式高性能 - 6 张表:sessions、messages、tool_calls、memories、settings、traces - 导出格式:Markdown / HTML / TXT / JSON(全量备份/恢复) - 所有导入/导出均使用 Electron 原生文件对话框 @@ -163,7 +163,7 @@ v4.0 四大子系统协调运作: │ │ main.ts menu.ts tray.ts ipc.ts preload.ts │ │ │ │ tool-handlers.ts (25 工具) tool-security.ts workspace.ts│ │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ -│ │ │ db/sqlite.ts: better-sqlite3 · WAL · FTS5 │ │ │ +│ │ │ db/sqlite.ts: sql.js (WASM) · WAL · FTS5 │ │ │ │ │ │ workspace.ts: spawn 进程管理 · 流式输出 · 安全检查 │ │ │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────────┘ │ @@ -250,7 +250,7 @@ metona-ollama-desktop/ │ │ ├── tool-security.ts # 🔧 路径/命令安全检查 │ │ ├── workspace.ts # 🖥️ spawn 进程管理、流式输出 │ │ └── db/ -│ │ └── sqlite.ts # 📦 SQLite 数据库(better-sqlite3, WAL, FTS5) +│ │ └── sqlite.ts # 📦 SQLite 数据库(sql.js WASM, WAL, FTS5) │ └── renderer/ # 渲染进程 │ ├── index.html # 入口 HTML │ ├── main.ts # 入口(全系统初始化) @@ -335,7 +335,7 @@ metona-ollama-desktop/ - **TypeScript 5.7** — 严格类型,完整接口定义 - **Electron 33** — 桌面封装(Windows x64) - **Vite 5** — 渲染进程构建、HMR 热更新 -- **better-sqlite3 12.9** — SQLite 数据库(主进程,WAL 模式) +- **sql.js 1.11** — SQLite WASM 实现(零原生依赖,无需编译) - **Fetch + ReadableStream** — 流式 NDJSON 解析 - **CSS Variables** — 暖色调亮色主题 - **electron-builder** — NSIS 安装包 diff --git a/docs/BUILD.md b/docs/BUILD.md index 635356b..07dbc1a 100644 --- a/docs/BUILD.md +++ b/docs/BUILD.md @@ -178,7 +178,7 @@ electron-builder 会自动处理所有依赖下载(Electron、NSIS、winCodeSi ### v4.0.0(2026-04-17) — metona-ollama-desktop 仓库 -- 📦 SQLite (better-sqlite3) 替代 IndexedDB,6 张表 + FTS5 全文搜索 +- 📦 SQLite (sql.js WASM) 替代 IndexedDB,6 张表 + FTS5 全文搜索(零原生依赖) - 🔧 Agent Loop 升级为 ReAct 模式(15 轮,10 分钟超时,执行轨迹记录) - 🧠 新增 4 个记忆/会话管理工具(memory_search, memory_add, session_list, session_read) - 🎨 UI 主题改版:暗色 Fluent → 暖色调亮色(奶白 + 珊瑚橙) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index cb99ccd..1149bce 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -13,8 +13,9 @@ ### Desktop v4.0.0 — SQLite & ReAct Agent & 全新主题 -- 📦 **数据库迁移:IndexedDB → SQLite (better-sqlite3)** - - 新增 `src/main/db/sqlite.ts`,使用 better-sqlite3 替代 IndexedDB +- 📦 **数据库迁移:IndexedDB → SQLite (sql.js WASM)** + - 新增 `src/main/db/sqlite.ts`,使用 sql.js (WASM) 替代 IndexedDB + - 零原生依赖,无需 electron-rebuild,消除 ABI 版本不匹配问题 - 6 张表:sessions、messages、tool_calls、memories(FTS5 全文搜索)、settings、traces - WAL 模式 + NORMAL 同步,性能显著提升 - 支持全量导出/导入(JSON 格式) diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index a0c6f56..52a9324 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -6,7 +6,7 @@ ## 一、项目概述 -Metona Ollama Desktop 是基于 TypeScript + Electron 的本地 Ollama AI 桌面客户端,面向 Windows 平台。项目采用零外部依赖策略(仅 better-sqlite3 为运行时依赖),所有核心功能(Markdown 解析、SHA-256、HTML 净化器等)均内联实现。 +Metona Ollama Desktop 是基于 TypeScript + Electron 的本地 Ollama AI 桌面客户端,面向 Windows 平台。项目采用零外部依赖策略(仅 sql.js 为运行时依赖),所有核心功能(Markdown 解析、SHA-256、HTML 净化器等)均内联实现。 --- @@ -17,7 +17,7 @@ Metona Ollama Desktop 是基于 TypeScript + Electron 的本地 Ollama AI 桌面 | 语言 | TypeScript | ≥5.7,严格模式 (`strict: true`) | | 桌面框架 | Electron | ≥33 | | 构建工具 | Vite (渲染进程) + tsc (主进程) | Vite ≥5 | -| 数据存储 | better-sqlite3 | ≥12.9,WAL 模式,FTS5 全文搜索 | +| 数据存储 | sql.js (WASM) | ≥1.11,WAL 模式,FTS5 全文搜索,零原生依赖 | | 打包 | electron-builder | NSIS 格式 | --- @@ -289,7 +289,7 @@ perf: 性能优化 ## 九、注意事项 -1. **零外部依赖**:新增功能优先使用内联实现,避免引入 npm 包(better-sqlite3 除外) +1. **零外部依赖**:新增功能优先使用内联实现,避免引入 npm 包(sql.js 除外) 2. **安全优先**:所有文件/命令操作必须经过安全检查层 3. **日志完整**:关键操作必须记录到执行日志面板 4. **无超时设计**:工作空间相关操作不设超时,由用户控制生命周期