chore: 版本号重置为 v1-stable-release,删除更新日志,重写 README

This commit is contained in:
Metona Dev
2026-04-24 11:42:20 +08:00
parent 4292e7d54c
commit 0acff6b6e3
7 changed files with 58 additions and 1184 deletions
+51 -381
View File
@@ -1,408 +1,78 @@
<div align="center">
# Metona Ollama Desktop
# 🦙 Metona Ollama Desktop
> 本地 Ollama AI 桌面客户端 — TypeScript + Electron
**基于 TypeScript + Electron 的本地 Ollama AI 桌面客户端**
## 简介
全离线运行 · 数据本地存储 · 第三方库本地化
Metona Ollama Desktop 是一个基于 Ollama 的本地 AI 桌面客户端,支持 Tool Calling、记忆系统、浏览器控制、MCP 协议等能力。数据不离开本机,零配置启动。
[![版本](https://img.shields.io/badge/version-5.1.6-brightgreen?style=flat-square)](https://gitee.com/thzxx/metona-ollama-desktop/releases)
[![平台](https://img.shields.io/badge/platform-Windows%20x64-blue?style=flat-square)](https://gitee.com/thzxx/metona-ollama-desktop/releases)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-3178c6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![Electron](https://img.shields.io/badge/Electron-33-47848f?style=flat-square&logo=electron&logoColor=white)](https://www.electronjs.org/)
[![Vite](https://img.shields.io/badge/Vite-5-646cff?style=flat-square&logo=vite&logoColor=white)](https://vitejs.dev/)
[![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE)
## 特性
</div>
- 🤖 ReAct Agent LoopThought → Action → Observation → Reflection
- 🔧 38 个内置工具(文件系统/命令执行/联网搜索/浏览器/Git/记忆/技能/MCP
- 🧠 智能记忆系统(FTS5 全文搜索 + 向量语义搜索 + 安全扫描)
- 🌐 MCP 协议支持(动态工具发现与执行)
- 🔍 三引擎联网搜索(Bing + 百度 + Google
- 🖥️ 工作空间面板(终端 + 文件浏览器一体化)
- 🎨 暖色调 UI(长时间使用不疲劳)
---
## 技术栈
## ✨ 功能特性
### 💬 智能对话
| 功能 | 说明 |
| 层级 | 技术 |
|------|------|
| 🔄 流式响应 | ReadableStream 实时打字效果,支持强制停止 |
| 🧠 Think 推理 | 展开/收起深度思考过程(需模型支持) |
| 🖼️ 多模态 | 图片上传,自动检测 Vision 模型能力 |
| 📄 文件分析 | 50+ 种文本/代码格式,单文件 ≤500KB |
| 🔀 多模型 | 自动加载 Ollama 已安装模型,一键切换 |
| 语言 | TypeScript (strict mode) |
| 桌面框架 | Electron 33+ |
| 构建 | Vite (渲染进程) + tsc (主进程) |
| 数据库 | sql.js (WASM) + FTS5 |
| 打包 | electron-builder (NSIS) |
---
### 🔧 Tool Calling — 38 个内置工具
AI 在对话中**主动调用**本地工具完成任务,所有操作在用户可视化监督下执行。采用 **ReAct Agent Loop**Thought → Action → Observation → Reflection),默认最大 85 轮(可在设置中调整),无超时限制。
> ⚠️ 需要模型支持 Tool Calling(推荐 Qwen3、Llama 3.1+、Mistral
#### 📁 文件系统(12 个)
| 工具 | 说明 |
|------|------|
| `read_file` | 读取文件(≤1MB,支持行范围) |
| `write_file` | 写入文件(自动创建父目录) |
| `append_file` | 追加内容到文件末尾 |
| `edit_file` | 查找替换文本 |
| `list_directory` | 列出目录(支持递归、隐藏文件) |
| `create_directory` | 递归创建目录 |
| `delete_file` | 删除文件/目录 |
| `move_file` | 移动/重命名 |
| `copy_file` | 复制文件/目录 |
| `search_files` | 按文件名/内容搜索 |
| `get_file_info` | 获取文件详细信息 |
| `tree` | 树形结构展示目录 |
#### 💻 系统 & 网络(9 个)
| 工具 | 说明 |
|------|------|
| `run_command` | 执行 Shell 命令(自动/需确认/禁用 三模式) |
| `web_fetch` | 抓取网页内容(HTTP/HTTPS |
| `web_search` | 联网搜索(Bing + 百度 + Google 三引擎) |
| `download_file` | 从 URL 下载文件 |
| `diff_files` | 对比文件差异(unified diff |
| `replace_in_files` | 批量查找替换(glob 模式) |
| `read_multiple_files` | 批量读取多个文件 |
| `git` | Git 操作(16 个子操作) |
| `compress` | 创建/解压归档(zip/tar.gz |
#### 🧠 记忆 & 会话(8 个)
| 工具 | 说明 |
|------|------|
| `memory_search` | 搜索 Agent 记忆 |
| `memory_add` | 添加新记忆条目 |
| `memory_replace` | 替换已有记忆(子串匹配,唯一匹配约束) |
| `memory_remove` | 删除记忆条目(子串匹配) |
| `skill_list` | 列出所有自动提取的技能(渐进式 Level 0) |
| `skill_view` | 查看技能详情:完整工具链、参数提示、成功率 |
| `session_list` | 列出历史会话 |
| `session_read` | 读取历史会话内容 |
#### 🤖 Agent & 浏览器(9 个)
| 工具 | 说明 |
|------|------|
| `spawn_task` | 子代理委派(独立执行子任务) |
| `browser_open` | 打开 URL 加载网页 |
| `browser_screenshot` | 浏览器截图 |
| `browser_evaluate` | 执行 JavaScript |
| `browser_extract` | 提取页面文本和链接 |
| `browser_click` | 点击页面元素 |
| `browser_type` | 在输入框输入文本 |
| `browser_scroll` | 滚动页面 |
| `browser_close` | 关闭浏览器 |
> 📌 **MCP 工具**:通过 [Model Context Protocol](https://modelcontextprotocol.io) 连接外部工具服务,动态注册。在设置面板添加 MCP Server 即可使用,工具命名格式 `mcp_{server}_{tool}`。
---
### 🔌 MCP (Model Context Protocol)
通过 JSON-RPC 2.0 over stdio 与外部工具服务通信:
```
启动 MCP Server → initialize 握手 → tools/list 发现 → tools/call 执行
```
- 7 个 IPC 通道:`startServer` / `stopServer` / `stopAll` / `callTool` / `getTools` / `getStatuses` / `refreshTools`
- 30 秒超时保护,退出时优雅清理(pending 请求 + SIGTERM
- 设置面板管理:添加 / 启用 / 禁用 / 删除服务器
---
### 🧠 Agent 记忆系统
AI 自动从对话中学习并记住关键信息,跨会话持续积累:
| 类型 | 说明 | 注入策略 |
|------|------|----------|
| 📏 规则 | 应遵守的规则 | 始终注入(无条件执行) |
| ⚙️ 偏好 | 用户偏好习惯 | 始终注入(建议遵循) |
| 📌 事实 | 关于用户的事实 | 关键词 + 向量语义检索 |
- FTS5 全文搜索 + 向量语义搜索
- AI 可通过 `memory_replace` 更新、`memory_remove` 删除已有记忆(子串匹配 + 唯一匹配约束)
- 记忆写入前自动安全扫描(prompt injection / 敏感信息 / 不可见字符检测)
- **容量上限 500 条**,超限时自动清理低价值条目(规则类型受保护)
- 对话 ≥6 条消息后自动触发提取
- SQLite 持久化,可视化管理面板
---
### 📏 推荐规则记忆
通过 `memory_add` 工具添加以下规则,可显著约束 Agent 行为、减少无效操作:
> 规则类型(`rule`)在注入时标记为「必须无条件执行」,始终生效,不依赖关键词匹配。
#### 行为约束
| # | 规则 | 解决的问题 |
|---|------|-----------|
| 1 | **禁止重复调用** — 同一工具+参数连续失败 2 次后必须换策略,禁止第 3 次尝试 | 工具失败后死循环重试 |
| 2 | **搜索结果即答案**`web_search` 返回的 snippet 已含关键摘要,能回答就直接回答,不要无意义追加 `web_fetch` | 过度抓取浪费 token |
| 3 | **禁止编造 URL** — 所有 URL 必须从搜索结果或文件中获取,禁止猜测、拼接、编造任何 URL 路径 | Agent 幻觉出不存在的链接 |
| 4 | **禁止抓取 SPA 页面** — GitHub releases、npm 等 SPA 网站内容无法被简单 fetch,从搜索 snippet 提取信息 | 反复抓取空壳页面 |
| 5 | **搜索查询必须进化** — 第一次结果不理想时,第二次必须换关键词/角度/表述,禁止重复相同查询 | 搜索死循环 |
| 6 | **工具调用前先想清楚** — 确认:(a) 工具能完成目标?(b) 参数正确?(c) 有更高效的方式? | 盲目试错 |
| 7 | **命令结果要解读**`run_command` 完成后必须分析输出并向用户解释,不要只贴原始输出 | 无意义的结果回显 |
| 8 | **文件操作先读后写** — 修改文件前必须先 `read_file` 确认当前内容,禁止凭记忆写入 | 覆盖用户已修改的文件 |
| 9 | **错误信息是线索** — 工具返回错误时仔细阅读并据此调整策略,忽略错误重复相同操作是最差行为 | 忽视错误继续撞墙 |
| 10 | **适时停止** — 任务已完成时立即停止,不要为了展示能力追加不必要的操作 | 过度操作 |
#### 信息获取
| # | 规则 | 解决的问题 |
|---|------|-----------|
| 11 | **始终使用中文回复** — 所有回复使用中文(技术术语可保留英文原名),除非用户明确使用其他语言 | 中英混杂体验差 |
| 12 | **优先官方来源** — 技术信息优先从官方文档 / GitHub 仓库 / 官方 API 获取,其次 Stack Overflow / MDN,避免引用未交叉验证的个人博客 | 信息准确性不足 |
| 13 | **联网前确认当前日期** — 每次联网查询信息前,必须先确认互联网当前最新日期(通过搜索或系统时间),确保引用的信息时效性准确,避免基于过期数据作答 | 引用过期信息导致误导 |
---
### 🖥️ 工作空间
右侧常驻面板(480px),集成**终端**、**工具**和**文件浏览器**三个页签:
- **💻 终端 Tab**:实时流式输出,支持 ANSI 颜色,无超时限制
- **🔧 工具 Tab**:展示工具调用卡片及状态统计,AI 执行时自动切换
- **📁 文件 Tab**:目录树展示,点击文件预览内容(带行号)
- AI 工具命令自动在工作空间终端执行,用户可随时停止
---
### 🎭 更多功能
| 功能 | 说明 |
|------|------|
| 🧠 技能自动生成 | 从成功工具调用链提取可复用技能,渐进式加载(skill_list / skill_view),自动匹配复用 |
| 👤 用户画像 | 自动检测技术栈(14 种),注入 system prompt |
| 🎭 人格模式 | 多种预设模板,独立 system prompt + 温度设置 |
| 💓 Heartbeat | 后台主动检查 Ollama 连接状态、磁盘空间等(默认 1 小时间隔) |
| ⏰ Cron 定时任务 | 一次性 / 周期性任务调度 |
| 📦 数据导出 | Markdown / HTML / TXT / JSON 全量备份与恢复 |
---
## 🏗️ 架构
```
┌──────────────────────────────────────────────────────────────────┐
│ Electron 应用 │
│ ┌──────────────────────────────────────────────────────────────┐│
│ │ 渲染进程 (Renderer) ││
│ │ chat-area · input-area · workspace-panel · settings-modal ││
│ │ ─────────────────────────────────────────────────────────── ││
│ │ agent-engine · tool-registry · memory-manager ││
│ │ vector-memory · context-manager · skill-manager ││
│ │ sub-agent · cron-manager · mcp-client · log-service ││
│ └─────────────────────────────┬────────────────────────────────┘│
│ │ IPC │
│ ┌─────────────────────────────┴────────────────────────────────┐│
│ │ 主进程 (Main) ││
│ │ main.ts · ipc.ts · preload.ts · menu.ts · tray.ts ││
│ │ tool-handlers.ts (21 工具) · tool-security.ts ││
│ │ workspace.ts · browser.ts (8 工具) · mcp-manager.ts ││
│ │ db/sqlite.ts (sql.js WASM · WAL · FTS5) ││
│ └──────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────┘
```
### Agent Loop (ReAct)
```
用户消息 → 注入记忆/技能上下文
┌─ Thought → Action(tool_calls) → Observation(result) → Reflection ─┐
│ 循环(默认最大 85 轮,可配置,无超时限制) │
└───────────────────────────────────────────────────────────────────┘
流式响应 → 渲染到聊天区域(含工具调用卡片)→ 保存 → 自动提取记忆/技能
```
### 数据库(7 张表)
| 表 | 用途 |
|---|---|
| `sessions` | 会话(parent_id 父子关系) |
| `messages` | 消息(外键级联,thinking/tool_calls |
| `tool_calls` | 工具调用记录 |
| `memories` | Agent 记忆(FTS5 全文搜索) |
| `settings` | 设置(JSON 序列化) |
| `traces` | ReAct 执行轨迹 |
| `skills` | 自动生成的可复用技能 |
---
## 📁 项目结构
```
src/
├── main/ # Electron 主进程
│ ├── main.ts # 应用入口、窗口管理
│ ├── preload.ts # contextBridge API 暴露
│ ├── ipc.ts # IPC 处理器
│ ├── tool-handlers.ts # 25 个内置工具实现
│ ├── tool-security.ts # 路径/命令安全检查
│ ├── workspace.ts # 子进程管理、流式输出
│ ├── browser.ts # 浏览器控制(8 工具)
│ ├── mcp-manager.ts # MCP 协议通信
│ ├── menu.ts · tray.ts · utils.ts # 菜单/托盘/工具函数
│ └── db/sqlite.ts # SQLite (sql.js WASM)
├── renderer/ # 渲染进程
│ ├── main.ts # 入口、全局初始化
│ ├── types.d.ts # 完整类型定义
│ ├── index.html # 入口 HTML
│ ├── api/
│ │ └── ollama.ts # Ollama REST API 客户端
│ ├── components/ # 14 个 UI 组件
│ ├── services/
│ │ ├── agent-engine.ts # ReAct Agent Loop 引擎
│ │ ├── tool-registry.ts # 工具注册调度(含 MCP 路由)
│ │ ├── memory-manager.ts # 记忆管理核心
│ │ ├── vector-memory.ts # 向量索引
│ │ ├── vector-store.ts # 向量存储
│ │ ├── context-manager.ts # 上下文窗口管理
│ │ ├── skill-manager.ts # 技能自动生成
│ │ ├── sub-agent.ts # 子代理委派
│ │ ├── cron-manager.ts # 定时任务
│ │ ├── mcp-client.ts # MCP 渲染端客户端
│ │ ├── log-service.ts # 结构化执行日志
│ │ └── crypto.ts # AES-256-GCM 加密
│ ├── utils/
│ │ ├── utils.ts · sanitizer.ts · marked-config.ts
│ ├── state/
│ │ └── state.ts # 响应式状态管理
│ └── styles/
│ └── style.css # 暖色调亮色主题
├── assets/icons/ # 应用图标
├── src/vendor/ # 第三方库本地化(ESM + 类型声明 + LICENSE
│ ├── marked.js # Markdown 解析库(v18
│ └── dompurify.js # HTML 净化库(v3
├── docs/ # 文档
│ ├── BUILD.md # 构建指南
│ ├── CHANGELOG.md # 更新日志
│ ├── DEVELOPMENT.md # 开发规范
│ └── OPENCLAW-HERMES-ANALYSIS.md # 改进路线图
├── package.json
├── vite.config.ts
└── tsconfig.json · tsconfig.main.json
```
---
## 🔌 Ollama API 接口
| 接口 | 用途 |
|------|------|
| `GET /api/tags` | 已安装模型列表 |
| `GET /api/ps` | 运行中模型 |
| `GET /api/version` | Ollama 版本 |
| `POST /api/show` | 模型详情(能力检测) |
| `POST /api/chat` | 流式聊天(支持 tools) |
| `POST /api/embed` | 生成嵌入向量 |
---
## 🔒 安全模型
### Tool Calling 安全
所有文件/命令操作必须经过 `tool-security.ts` 安全检查层:
| 维度 | 措施 |
|------|------|
| 路径 | 黑名单屏蔽 `/etc`, `/sys`, `/proc`, `~/.ssh`, `~/.gnupg` 等 |
| 写入 | 仅允许用户目录下的写操作 |
| 命令 | 黑名单拦截 `rm -rf /`, `mkfs`, `dd`, `shutdown`, 反弹 shell 等 |
| 模式 | `run_command` 支持自动执行 / 需用户确认 / 禁用三模式 |
### 应用安全
- 内置 HTML 净化器(白名单标签 + 属性过滤 + URI 协议检查)
- `contextIsolation: true` + IPC 白名单 + 单实例锁
- SQLite 本地存储,不上传任何服务器
---
## 📥 下载
从 [Releases](https://gitee.com/thzxx/metona-ollama-desktop/releases) 页面下载最新安装包:
| 文件 | 类型 |
|------|------|
| `Metona Ollama Setup 5.1.6.exe` | NSIS 安装包(可选目录、创建快捷方式) |
> ⚠️ 未签名版本,首次运行 Windows 可能弹出安全警告,点击「仍要运行」即可。
---
## 🔨 从源码构建
### 环境要求
- Node.js v22+
- Windows 或 Linux(交叉编译需 Wine 9.0+
### 快速开始
## 快速开始
```bash
git clone https://gitee.com/thzxx/metona-ollama-desktop.git
cd metona-ollama-desktop
git checkout develop
git checkout desktop-v1-stable-release
npm config set registry https://registry.npmmirror.com
npm install
npm start
```
### 构建 Windows 安装包
## 构建 Windows 安装包
```bash
bash restore-build-cache.sh # 恢复构建缓存(可选)
# 环境:Ubuntu 24.04 + Node.js v22 + Wine 9.0+
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm run dist
```
### 常用命令
产出:`release/Metona Ollama Setup 1.0.0.exe`
```bash
npm run build:renderer # 仅构建渲染进程(Vite
npm run build:main # 仅构建主进程(tsc
npm run build # 构建全部
npm start # 构建并运行
npm run dist # 构建 Windows 安装包(NSIS
## 项目结构
```
src/
├── main/ # Electron 主进程
│ ├── main.ts # 入口、窗口管理
│ ├── preload.ts # contextBridge API
│ ├── ipc.ts # IPC 处理器
│ ├── browser.ts # 浏览器控制(8 个工具)
│ ├── mcp-manager.ts # MCP 协议管理
│ ├── tool-handlers*.ts # 工具执行(fs/system/git/shared
│ ├── tool-security.ts # 安全检查
│ └── db/sqlite.ts # SQLite 数据库层
├── renderer/ # 渲染进程
│ ├── services/
│ │ ├── agent-engine.ts # ReAct Agent Loop 引擎
│ │ ├── tool-registry.ts # 工具注册与调度
│ │ ├── memory-manager.ts# 记忆管理
│ │ ├── vector-memory.ts # 向量记忆
│ │ ├── skill-manager.ts # 技能自动生成
│ │ └── mcp-client.ts # MCP 客户端
│ ├── components/ # UI 组件
│ ├── styles/style.css # 暖色调主题
│ └── index.html # 入口 HTML
└── vendor/ # 第三方库(marked, DOMPurify
```
> 💡 详细构建指南见 [docs/BUILD.md](docs/BUILD.md)(含故障排查)
## 许可证
---
## 🎨 设计语言
| 元素 | 值 |
|------|------|
| 背景 | 奶白 `#FAF7F2` |
| 主色 | 珊瑚橙 `#E8734A` |
| Think | 紫色 `#9B7ED8` |
| Token | 金色 `#D4A03C` |
| 终端 | 暖棕深色 `#2D2016` |
| 正文字体 | Inter |
| 代码字体 | JetBrains Mono |
| 圆角 | 控件 8px · 卡片 12px · 弹框 16-20px |
---
## 📋 更新日志
完整更新日志请查看 [docs/CHANGELOG.md](docs/CHANGELOG.md)。
---
## 📄 License
[MIT](LICENSE)
MIT
+2 -198
View File
@@ -14,7 +14,7 @@
# 1. 克隆并安装依赖
git clone https://gitee.com/thzxx/metona-ollama-desktop.git
cd metona-ollama-desktop
git checkout metona-ollama-desktop-v5.1.6
git checkout desktop-v1-stable-release
npm config set registry https://registry.npmmirror.com
npm install
@@ -92,7 +92,7 @@ npm run dist # NSIS 安装包
| 文件 | 说明 |
|------|------|
| `release/Metona Ollama Setup X.X.X.exe` | NSIS 安装包(可选目录、创建快捷方式) |
| `release/Metona Ollama Setup 1.0.0.exe` | NSIS 安装包(可选目录、创建快捷方式) |
> v3.2.0 起不再提供绿色便携版,仅保留 NSIS 安装包。
@@ -174,202 +174,6 @@ ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm run dist
```
electron-builder 会自动处理所有依赖下载(Electron、NSIS、winCodeSign),虽然首次较慢(~5分钟),但无需手动管理缓存。
## 构建日志
### v5.1.62026-04-20 — metona-ollama-desktop 仓库
- 🔧 移除所有工具执行超时:tool-registry.ts 移除 25s/60s IPC 硬超时,browser.ts 移除 executeJsWithTimeout
- 🔧 browser 工具状态检查:所有 browser 函数入口检查 isBrowserOpen(),关闭后返回明确错误
- 📝 版本号更新至 5.1.6
-`Metona Ollama Setup 5.1.6.exe`81MB
- ✅ Gitee Release v5.1.6-desktop
- ⚠️ 构建问题及处理:
1. apt 源 `mirrors.cloud.aliyuncs.com` 不可达 → 切换 `archive.ubuntu.com`
2. `restore-build-cache.sh` npmmirror NoSuchKey → 跳过,electron-builder 自动下载
3. winCodeSign 从 GitHub 下载 EOF → 使用 ghfast.top 代理手动下载缓存
4. NSIS 从 GitHub 下载 EOF → 使用 ghfast.top 代理手动下载缓存
5. 无编译错误,手动缓存后构建一次通过
### v5.1.52026-04-20 — metona-ollama-desktop 仓库
- ♻️ Markdown 解析器替换:内联实现 → `marked` 库(完整 GFM 支持)
- ♻️ HTML 净化器替换:内联实现 → `DOMPurify`(业界标准)
- 🧹 精简 crypto.ts:删除 SHA-256/XOR 死代码(~70 行)
- 🧹 消除重复代码:escapeHtml / formatSize 统一导入
- ✨ 联网搜索强制注入真实系统日期(system prompt + 工具层双保险)
- ✨ 新建会话重置工作空间到空闲状态并切回终端页签
- ✨ 推荐规则记忆新增规则 #13(联网前确认当前日期)
- 📝 版本号更新至 5.1.5
-`Metona Ollama Setup 5.1.5.exe`82MB
- ✅ Gitee Release v5.1.5-desktopID: 624102
- ⚠️ 构建问题及处理:
1. 模板字符串中反引号未转义(`[当前日期: ...]`)→ 转义为 \` 构建通过
2. 无其他编译错误
### v5.1.32026-04-19 — metona-ollama-desktop 仓库
- 🔧 修复 any 滥用:78 处 → 38 处(减少 51%),保留 API 参数构造等合理场景
- ♻️ 拆分 tool-handlers.ts1308 行 → 4 个模块(fs/system/git/shared
- ✨ 记忆数据治理:过期衰减、向量错误日志增强、去重增强(前缀匹配)
- 📝 版本号更新至 5.1.3
### v5.1.22026-04-19 — metona-ollama-desktop 仓库
- ✨ 预算警告临时层:Agent Loop 接近迭代上限时注入临时提示,≤5 轮时 warning,≤2 轮时 critical
- ✨ Shadowing 防护:MCP 工具注册时检测与内置工具重名,自动跳过并日志警告
- ✨ 记忆容量限制:上限 500 条,超限时自动清理低价值条目(按 importance + useCount + 近期使用综合评分,rule 类型受保护)
- 📝 版本号更新至 5.1.2
### v5.1.12026-04-19 — metona-ollama-desktop 仓库
- 🔧 搜索引擎:DuckDuckGo → Bing + 百度 + Google(三引擎),解决国内不可达问题
- 🔧 移除全部超时限制:Agent Loop、流式响应、工具执行、web_fetch、download_file
- 🔧 Agent 最大轮数默认 85 轮,设置面板可配置
- ✨ 执行日志导出功能(日志面板新增导出按钮)
- 🔧 TOOL_USAGE_GUIDE 新增禁止猜 URL 和中文搜索结果利用规则
- 📝 版本号更新至 5.1.1
### v5.1.02026-04-18 — metona-ollama-desktop 仓库
- ✨ 新增 4 个工具:memory_replace、memory_remove、skill_list、skill_view(总数 38 个)
- ✨ 记忆安全扫描(prompt injection / 敏感信息 / 不可见字符检测)
- 🔧 Agent Loop 迭代预算可配置化(maxTurns
- 🔧 工具结果截断按工具独立配置
- 📝 版本号更新至 5.1.0
### v5.0.12026-04-18 — metona-ollama-desktop 仓库
- 🔧 修复 DuckDuckGo 搜索超时过长(15s → 8s),添加 Google 作为第三搜索引擎兜底
- 🔧 修复 web_fetch User-AgentMetonaOllama/1.0 → Chrome UA),增加超时至 30 秒
- 🔧 修复 Agent Loop 跨轮去重误杀失败工具的重试(仅对成功的调用去重,失败的允许重试)
- 🔧 优化 TOOL_USAGE_GUIDE:新增搜索 fallback 规则(fetch 失败时直接用搜索结果回答)、禁止抓取 SPA 页面、搜索查询进化指导
- 🔧 更新 AGENT_SYSTEM_PROMPT:工具数 25 → 34,新增 fetch 失败 fallback 规则
- 📝 版本号更新至 5.0.1package.json / package-lock.json / index.html / README.md / CHANGELOG.md / BUILD.md / DEVELOPMENT.md
-`Metona Ollama Setup 5.0.1.exe`82MB
- ✅ Gitee Release v5.0.1-desktopID: 620560
- Wine 9.0 已安装,npm 编译无错误,构建一次通过
### v5.0.02026-04-18 — metona-ollama-desktop 仓库
- ✨ 新增 8 个浏览器控制工具(browser_open/screenshot/evaluate/extract/click/type/scroll/close
- ✨ 新增 Cron 定时任务系统(cron-manager.ts
- ✨ 新增技能自动生成系统(skills 表 + 自动提取 + 关键词搜索)
- ✨ 新增用户画像自动推断(技术栈检测 + system prompt 注入)
- ✨ 新增人格模式(多预设模板)
- ✨ 新增 Heartbeat 主动检查机制
- ✨ 新增子代理委派工具(spawn_task)
- 🔧 工具并行执行优化(批次调度 + 依赖检测)
- 🔧 记忆系统增强(rule/preference 始终注入)
- 📝 版本号更新至 5.0.0package.json / package-lock.json / index.html / README.md / CHANGELOG.md / BUILD.md / DEVELOPMENT.md
### v4.0.02026-04-17 — metona-ollama-desktop 仓库
- 📦 SQLite (sql.js WASM) 替代 IndexedDB6 张表 + FTS5 全文搜索(零原生依赖)
- 🔧 Agent Loop 升级为 ReAct 模式(15 轮,10 分钟超时,执行轨迹记录)
- 🧠 新增 4 个记忆/会话管理工具(memory_search, memory_add, session_list, session_read
- 🎨 UI 主题改版:暗色 Fluent → 暖色调亮色(奶白 + 珊瑚橙)
- ✨ 新增 context-manager.ts 上下文管理服务
- 📝 版本号更新至 4.0.0package.json / package-lock.json / index.html / README.md / CHANGELOG.md / BUILD.md / DEVELOPMENT.md
### v3.3.42026-04-17 — metona-ollama-desktop 仓库
- 🔧 修复 Agent Loop 工具调用重复问题(缓存 + 同轮/跨轮去重 + 自动终止)
- 🔧 修复 web_fetch 默认截断 10000 字符(改为默认不截断)
- 🔧 修复记忆系统 rule/preference 类型不生效(改为始终注入,不依赖关键词匹配)
- 🔧 修复 buildMemoryContext 三类记忆措辞无区分(规则→强制、偏好→建议、事实→参考)
- 🔧 移除 tool-registry.ts executeTool 中重复的 logToolStart 调用
- 📝 版本号更新至 3.3.4
### v3.3.32026-04-17 — metona-ollama-desktop 仓库
- 🔧 修复工具面板中除 run_command 外所有工具错误显示为"需确认"
- 🔧 修复 run_command 执行模式下拉框未选中项白字白底不可见
- 🎨 加宽工具面板、历史记录、设置面板、帮助面板
- ✨ 增强联网搜索与网页抓取联动(TOOL_USAGE_GUIDE 新增规则)
- ✨ 增强 AI 主动调用工具的 prompt 指导(新增第 7 条规则)
- ✨ web_search 默认结果数 5 → 15
- 📝 版本号更新至 3.3.3
### v3.3.22026-04-16 — metona-ollama-desktop 仓库
- ✨ 新增 web_search 联网搜索工具(DuckDuckGo + Bing 双引擎,21 个工具)
- 🔧 除 run_command 外所有工具改为自动执行无需确认
- 🔧 run_command 改为下拉框设置:自动/需确认/禁用三种模式
- 📝 版本号更新至 3.3.2package.json / index.html / README.md / CHANGELOG.md / BUILD.md
- 📝 同步更新 README.md 安全说明、DEVELOPMENT.md 开发规范、index.html 帮助面板
### v3.3.12026-04-16 — metona-ollama-desktop 仓库
- 🔧 修复开启工具调用后图片无法传给 AIagent-engine.ts + input-area.ts
- 🔧 修复记忆系统弹框自动记忆开关点击无响应(memory-modal.ts CSS 类名修正)
- 🎨 统一应用图标为科技感羊驼(llama.png / llama.ico
- 📝 版本号更新至 3.3.1package.json / index.html / README.md / CHANGELOG.md / BUILD.md
### v3.2.62026-04-15 — metona-ollama-desktop 仓库
-`Metona Ollama Setup 3.2.6.exe`78MB
- ✅ Gitee Release v3.2.6-desktopID: 604992
- 🔧 工作空间面板从 position:fixed 改为 flex 子元素,修复与主内容区错位
- 🎨 Token 统计颜色优化(琥珀色图标+数值,消息内 token 高亮)
- ⚠️ 构建问题及处理:
1. `restore-build-cache.sh` npmmirror NoSuchKey → 跳过,electron-builder 自动下载
2. nsis-resources-3.4.1 GitHub 下载 EOF → 使用 ghfast.top 代理手动下载缓存
3. 无编译错误,手动缓存后构建一次通过
### v3.2.52026-04-14 — metona-ollama-desktop 仓库
-`Metona Ollama Setup 3.2.5.exe`78MB
- ✅ Gitee Release v3.2.5-desktopID: 601311
- 🔧 工具相对路径修复、工作空间单一终端重构、token SVG 图标、base64 编码修复
- ⚠️ 构建问题及处理:
1. apt 源 `mirrors.cloud.aliyuncs.com` 不可达 → 切换 `archive.ubuntu.com`
2. `restore-build-cache.sh` npmmirror NoSuchKey → 跳过,electron-builder 自动下载
3. 无编译错误,构建一次通过
### v3.2.42026-04-08 — metona-ollama-desktop 仓库
- 🔧 AI 命令执行走工作空间终端,实时流式显示
- 🔧 设置面板修改地址后同步更新顶部导航连接状态
- ✅ 分支 `metona-ollama-desktop-v3.2.4` 已创建并推送
### v3.2.32026-04-08 — metona-ollama-desktop 仓库
- ✅ 工作空间面板改为常驻显示,固定宽度 480px
- ✅ 修复 tool-registry.ts 缺少 logInfo 导入导致 run_command 异常
- ✅ Gitee Release v3.2.3-desktop(仓库 thzxx/metona-ollama-desktop
- ✅ 分支 `metona-ollama-desktop-v3.2.3` 已创建并推送
### v3.2.22026-04-08 — metona-ollama-desktop 仓库
-`Metona Ollama Setup 3.2.2.exe`78MB
- ✅ Gitee Release v3.2.2-desktopID: 600992,仓库 thzxx/metona-ollama-desktop
- ✅ 分支 `metona-ollama-desktop-v3.2.2` 已创建并推送
- ⚠️ 构建问题及处理:
1. apt 源 `mirrors.cloud.aliyuncs.com` 不可达 → 切换 `archive.ubuntu.com`
2. npm install 时 Electron socket hang up → 设 `ELECTRON_MIRROR` 重试成功
3. restore-build-cache.sh 第一步失败(npmmirror NoSuchKey)→ 跳过脚本
4. electron-builder 直接构建时 winCodeSign 从 GitHub 下载 EOF → 使用 ghfast.top 代理手动下载缓存
5. 手动缓存 NSIS 和 NSIS Resources 后重新构建成功
### v3.2.12026-04-07 — metona-ollama-desktop 仓库
-`Metona Ollama Setup 3.2.1.exe`78MB
- ✅ Gitee Release v3.2.1-desktopID: 600984,仓库 thzxx/metona-ollama-desktop
- ♻️ 移除便携版构建,仅保留 NSIS 安装包
### v3.2.02026-04-07 — metona-ollama-desktop 仓库
-`Metona Ollama Setup 3.2.0.exe`78MB
-`MetonaOllama-Portable-3.2.0.exe`78MB
- ✅ Gitee Release v3.2.0-desktopID: 600739,仓库 thzxx/metona-ollama-desktop
- ⚠️ 构建中遇到问题:npmmirror 缺 electron zip、npm install 卡顿、需安装 Wine。详见上方故障排查。
### v3.0.02026-04-06
-`Metona Ollama Setup 3.0.0.exe`78MB
-`MetonaOllama-Portable-3.0.0.exe`78MB
- ✅ Gitee Release v3.0.0ID: 600370
## 提速清单
| 环节 | 默认 → 加速 | 效果 |
-600
View File
@@ -1,600 +0,0 @@
# 📋 更新日志
## 分支结构
**桌面版主线**`master`):
- `metona-ollama-desktop-v3.2.6``metona-ollama-desktop-v3.3.4``metona-ollama-desktop-v4.0.0``metona-ollama-desktop-v5.0.0``metona-ollama-desktop-v5.0.1``metona-ollama-desktop-v5.1.0``metona-ollama-desktop-v5.1.1``metona-ollama-desktop-v5.1.2``metona-ollama-desktop-v5.1.3``metona-ollama-desktop-v5.1.4``metona-ollama-desktop-v5.1.5``metona-ollama-desktop-v5.1.6`(当前发布分支)
**Web 版历史**已独立为 [metona-ollama-web](https://gitee.com/thzxx/metona-ollama-web) 仓库(v1.1.0 ~ v4.0.3)。
---
## 桌面版(Desktop
### Desktop v5.1.6 — 浏览器工具超时修复
- 🔧 **移除所有工具执行超时**
- tool-registry.ts:移除 `Promise.race` + `setTimeout` 25 秒/60 秒硬超时,所有工具直接 `await bridge.tool.execute()`,无超时限制
- browser.ts:移除 `executeJsWithTimeout` 包装,直接调用 `executeJavaScript`
- 用户控制生命周期,宁可等待也不中断
- 🔧 **browser 工具状态检查**
- 所有 browser 函数(evaluate/extract/click/type/scroll/screenshot)入口统一检查 `isBrowserOpen()`
- 浏览器关闭后返回明确错误 `"浏览器未打开,请先使用 browser_open 加载页面"`,不再自动重建空窗口
- 避免 browser_close 后 AI 继续调用 evaluate 浪费循环
- 📝 **版本号更新至 5.1.6**7 个文件同步更新)
- 📦 **构建产物**
- `Metona Ollama Setup 5.1.6.exe`81MB
- Gitee Release v5.1.6-desktop
- apt 源切 archive.ubuntu.comwinCodeSign/NSIS 用 ghfast.top 代理手动缓存,无编译错误
### Desktop v5.1.5 — 第三方库替换 & 代码精简 & 联网日期修复
- ♻️ **Markdown 解析器替换:内联实现 → `marked` 库**
- 移除 `marked-config.ts` 中约 80 行正则解析器(仅支持基本 GFM)
- 接入 `marked` 库:完整 GFM 支持(表格、删除线、任务列表、自动链接等)
- 渲染后自动经 DOMPurify 净化,双重安全
- 链接/图片安全检查保留(阻止 javascript: / vbscript: / file: 等危险协议)
- ♻️ **HTML 净化器替换:内联实现 → `DOMPurify`**
- 移除 `sanitizer.ts` 中约 70 行 DOM 遍历净化器
- 接入 `DOMPurify`(业界标准 HTML 净化库)
- 保留原有的白名单标签/属性/URI 协议配置
- 移除不再需要的 `SAFE_URI_SCHEMES` 导出
- 🧹 **精简 crypto.ts:删除死代码**
- 移除 `sha256js()` 纯 JS SHA-256 回退实现(~60 行)
- 移除 `xorBytes()` 异或加密回退(~10 行)
- 移除 `SECURE` 标志及所有分支判断
- Electron 环境下 `crypto.subtle` 始终可用,回退代码从未执行
- 旧版 XOR 加密的 .metona 文件提供明确错误提示
- 🧹 **消除重复代码**
- `escapeHtml()` 在 5 个文件中重复定义 → 统一从 `utils.ts` 导入
- `formatSize()``workspace-panel.ts` 中重复定义 → 统一从 `utils.ts` 导入
- 消除文件:`log-service.ts``prompt-modal.ts``tool-confirm-modal.ts``workspace-panel.ts`
- 📝 **版本号更新至 5.1.5**7 个文件同步更新)
-**联网搜索强制注入真实系统日期**
- system prompt 开头动态注入 `new Date()` 获取的真实日期,AI 构造搜索查询前即可知晓当前时间
- web_search 返回结果头部强制附带 `[当前日期: ...]`,每次搜索都有日期锚点
- AGENT_SYSTEM_PROMPT + TOOL_USAGE_GUIDE 双重禁止 AI 使用知识库推断的日期
- 解决模型训练数据截止导致搜索查询使用旧年份(如"2025")的问题
-**推荐规则记忆新增规则 #13**
- 联网前确认当前日期,确保引用信息时效性准确
-**新建会话重置工作空间**
- 点击新建会话后自动清空工具卡片和终端输出,回到空闲状态
- 自动切回终端页签
### Desktop v5.1.4 — 工具卡片迁移 & 空闲状态优化 & 工作流修复
- ♻️ **工具卡片从聊天区域迁移到工作空间面板**
- 工作空间新增「🔧 工具」页签,专门展示工具调用卡片
- 工具执行时自动切换到工具页签
- `run_command` 执行时自动切换到终端页签
- AI 回复消息不再显示工具卡片,保持聊天区域简洁
- 工具页签支持清空、自动滚动、状态统计(共 N 个 ✅N ❌N)
-**终端空闲状态优化**
- 空闲时显示 ASCII 羊驼 Logo(珊瑚橙色调 + 呼吸光效动画)
- 展示当前工作空间目录信息
- 每 6 秒轮转一条使用小贴士(10 条随机,淡入淡出效果)
-**工具和文件页签空闲状态优化**
- 工具页签:8 个分类图标网格(文件/命令/搜索/浏览器/Git/记忆/技能/代理)
- 文件页签:大文件夹图标 + 当前目录路径 + 引导文案
-**历史会话工具调用展示**
- assistant 消息下方新增可折叠的工具调用摘要
- 默认收起,点击展开查看每个工具的参数和结果
- 🔧 **自动记忆优化**
- 禁止自动提取规则类型,规则只能用户手动添加
- 触发门槛提升:对话消息从 4/6 条提升到 10 条才触发
- 最大提取数从 5 条降到 3 条
- 提示词增加详细的"不要提取"负面清单
- 结果层双重过滤(即使模型返回 rule 也被拦截)
- 🔧 **工具页签自动切换协调性修复**
- `addToolCard` 消除双重渲染(switchToTab 内已含 renderPanel
- 终端忙碌时其他工具不再打断用户看命令输出
- `run_command` 结束后自动延迟切到工具页签
- `updateToolCard` 只在当前是工具页签时才刷新
- 🔧 **工作流完整性和协调性修复**
- 新一轮对话自动清理上轮工具卡片和终端输出
- 中止 Agent Loop 时保留已执行的工具记录(不再丢失)
- 切换历史会话时清理工作空间状态
- handleRetry 保存 think 内容(之前丢失)
- 中止流程统一:agent-engine 抛出 AbortError 由消费方处理(消除重复消息风险)
- 📝 **版本号更新至 5.1.4**7 个文件同步更新)
### Desktop v5.1.3 — 代码质量 & 架构优化 & 记忆数据治理
- 🔧 **修复 any 滥用**(类型安全)
- `(window as any).metonaDesktop``window.metonaDesktop`(已有类型声明)
- IndexedDB 迁移代码 `any[]``Record<string, unknown>[]`
- 回调函数 `: any` → 具体类型 `ChatSession | null`
- 全局函数 `(window as any).__toggleCron``WindowWithCron` 接口
- 消除 78 处 → 38 处(减少 51%)(保留 API 参数构造等合理场景)
- ♻️ **拆分 tool-handlers.ts**(架构优化)
- 1308 行单文件 → 4 个模块:
- `tool-handlers-shared.ts`:共享工具函数和类型
- `tool-handlers-fs.ts`15 个文件系统操作(591 行)
- `tool-handlers-system.ts`6 个系统网络操作(530 行)
- `tool-handlers-git.ts`1 个 Git 操作(226 行)
-`tool-handlers.ts` 改为纯 re-exportipc.ts 无需修改
-**记忆数据治理**(借鉴 Hermes Agent
- 记忆过期衰减:90 天未使用的记忆自动降低 importancerule 受保护)
- 清理评分新增 agePenalty:创建超 90 天扣分
- 向量存储错误日志增强:包含记忆 ID、内容摘要、嵌入模型、错误栈
- 去重增强:新增前缀匹配(前 50 字符相同视为重复)
- 📝 **版本号更新至 5.1.3**7 个文件同步更新)
### Desktop v5.1.2 — 预算警告 & Shadowing 防护 & 记忆容量管理
-**预算警告临时层**(借鉴 Hermes Agent
- Agent Loop 接近迭代上限时自动注入临时提示
- 剩余 ≤5 轮:WARNING 级别,提示模型准备收尾
- 剩余 ≤2 轮:CRITICAL 级别,要求模型立即给出最终答案
- 临时消息在 API 调用后自动清理,不影响对话历史
-**MCP Shadowing 防护**(借鉴 Hermes Agent
- MCP 工具注册时自动检测与内置工具重名
- 重名工具自动跳过,日志输出警告信息
- 防止外部 MCP Server 覆盖内置工具导致行为异常或绕过安全检查
-**记忆容量限制**(借鉴 Hermes Agent
- memories 表上限 500 条,超限时自动清理
- 清理策略:按综合评分排序,清理后 20%
- 评分公式:importance × 2 + useCount × 3 + recencyBonus7 天内使用过 +5
- rule 类型记忆受保护,不会被自动清理
- 📝 **版本号更新至 5.1.2**7 个文件同步更新)
### Desktop v5.1.1 — 搜索引擎替换 & 超时移除 & 日志导出
- 🔧 **搜索引擎:DuckDuckGo → Bing + 百度 + Google**
- 移除 DuckDuckGo 搜索引擎(国内不可达,每次浪费 8 秒超时)
- 首选 Bing 搜索,百度作为备用,Google 作为兜底
- 新增 `parseBaiduResults()``parseGoogleResults()` 解析函数
- 移除所有搜索引擎的超时限制
- 🔧 **移除全部超时限制**
- 移除 Agent Loop 全局 10 分钟总超时(`MAX_LOOP_TIME`
- 移除流式响应 2 分钟超时(`STREAM_TIMEOUT`
- 移除工具执行 30 秒超时(`TOOL_EXEC_TIMEOUT`
- 移除 web_fetch 30 秒超时
- 移除 download_file 60 秒超时
- 现在所有操作无超时限制,宁可等待也不中断
- 🔧 **Agent 最大轮数改为 85 轮(默认)**
- 从硬编码 15 轮改为从 state 读取,默认 85 轮
- 设置面板新增「Agent 最大轮数」配置项
- 启动时从数据库恢复设置值
-**执行日志导出**
- 日志面板新增「📥 导出」按钮
- 导出为带时间戳的 TXT 文件
- 支持原生保存对话框(桌面端)和浏览器下载(回退)
- 🔧 **改进 TOOL_USAGE_GUIDE**
- 新增规则 13:严禁猜测或编造 URL 路径,所有 URL 必须从搜索结果获取
- 新增规则 14:不要忽视来自知乎、CSDN 等中文来源的搜索结果
- 修复工具去重缓存 key 逻辑,失败工具不再被误杀
- 🔧 **esbuild 反引号兼容性修复**
- `agent-engine.ts` 多余反引号导致 esbuild 模板字面量解析错误
- 正则表达式中反引号改用 `String.fromCharCode(96)` 拼接
- `memory-manager.ts``marked-config.ts` 中类似正则改用 `new RegExp()` 构造器
- 关键教训:esbuild 0.21.5 对源码中反引号字符解析有兼容性问题
- 📝 **版本号更新至 5.1.1**7 个文件同步更新)
### Desktop v5.1.0 — Hermes 借鉴 & 记忆/Skill 系统增强
-**记忆 replace/remove 操作**(借鉴 Hermes Agent
- 新增 `memory_replace` 工具:子串匹配 old_text,替换为 new_content
- 新增 `memory_remove` 工具:子串匹配 old_text,删除对应记忆
- 两种目标:memoryAgent 笔记)和 user(用户画像)
- 唯一匹配约束:匹配多条时返回错误,要求更精确的子串
-**Skill 渐进式加载**(借鉴 Hermes Agent
- 新增 `skill_list` 工具(Level 0):返回技能名称、描述、成功率、工具链预览
- 新增 `skill_view` 工具(Level 1):返回完整工具链、参数提示、使用统计
- Agent 先看列表,需要时再加载详情,节省 token
-**记忆安全扫描**
- 记忆写入前自动检查 prompt injection 模式(ignore previous / you are now a 等)
- 检测敏感信息(SSH 私钥、API Key、信用卡号)
- 检测不可见 Unicode 字符
- 拦截时返回明确错误信息
- 🔧 **迭代预算可配置化**
- Agent Loop 最大轮数从硬编码 15 改为 state 读取(`maxTurns`,默认 15
- 用户可通过设置面板调整
- 🔧 **工具结果截断按工具配置**
- 新增 `TOOL_MAX_RESULT_SIZE` 常量,每个工具独立配置最大返回字符数
- web_fetch: 20000, web_search: 3000, read_file: 15000, run_command: 10000 等
- 🔧 **更新 AGENT_SYSTEM_PROMPT**
- 工具数量 34 → 38
- TOOL_USAGE_GUIDE 新增记忆管理和技能查看规则
- 📝 **版本号更新至 5.1.0**7 个文件同步更新)
### Desktop v5.0.1 — 搜索引擎优化 & Agent 去重修复
- 🔧 **修复 DuckDuckGo 搜索超时过长**
- 超时从 15 秒降至 8 秒(国内环境 DuckDuckGo 通常不可达,减少等待)
- 添加 Google 作为第三搜索引擎兜底(DuckDuckGo → Bing → Google
- 新增 `parseGoogleResults()` 解析函数
- 搜索 User-Agent 统一更新为 Chrome 131
- 🔧 **修复 web_fetch 无法抓取部分网站**
- User-Agent 从 `MetonaOllama/1.0` 改为 Chrome 131 UA(部分网站屏蔽非浏览器 UA)
- 超时从 15 秒增加至 30 秒(大页面加载更慢)
- 新增 `Accept``Accept-Language` 请求头
- 🔧 **修复 Agent Loop 跨轮去重误杀失败工具的重试**
- 原逻辑:连续两轮工具调用(工具名+参数)完全相同即终止
- 问题:上一轮 `web_fetch` 超时失败,下一轮同样调用是合理重试,却被当作重复终止
- 修复:仅对成功的工具调用做去重,失败的允许重试
- 新增 `prevLoopSuccessKeys` 替代 `prevLoopToolKeys`
- 🔧 **优化 TOOL_USAGE_GUIDE(新增 3 条规则)**
- 新增规则 2web_fetch 失败时直接用 web_search 摘要回答,不要反复重试同一 URL
- 新增规则 3:禁止抓取 SPA 页面(GitHub releases、npm 等),直接从搜索结果提取信息
- 新增规则 4:搜索查询要进化,不要重复相同的查询
- 🔧 **更新 AGENT_SYSTEM_PROMPT**
- 工具数量描述从 25 → 34
- 核心规则新增:web_search 结果中的 snippet 已包含关键信息,不要忽视
- 核心规则细化:同一 URL 连续失败 2 次后不要再尝试
- 多工具协同示例新增:web_fetch 失败时直接用搜索结果回答
- 📝 **版本号更新至 5.0.1**7 个文件同步更新)
- 📦 **构建产物**
- `Metona Ollama Setup 5.0.1.exe`82MB
- Gitee Release v5.0.1-desktopID: 620560
- Wine 9.0 已安装,npm 编译无错误,构建一次通过
### Desktop v5.0.0 — 浏览器控制 & MCP & 技能系统 & 全面重构
-**MCP (Model Context Protocol) 完整实现**
- 主进程 `mcp-manager.ts`JSON-RPC 2.0 over stdio 通信
- 支持 `initialize` 握手、`tools/list` 工具发现、`tools/call` 工具执行
- 7 个 IPC 通道:startServer / stopServer / stopAll / callTool / getTools / getStatuses / refreshTools
- 渲染端 `mcp-client.ts`:配置管理 + 服务器生命周期 + 工具定义获取 + 工具执行
- `tool-registry.ts` MCP 工具路由:`mcp_{server}_{tool}` 前缀识别
- 设置面板 MCP 服务器管理 UI(添加/启用/禁用/删除/状态显示)
- 启动时自动启动已启用的 MCP 服务器,退出时优雅清理
-**浏览器控制工具**8 个新工具)
- `browser_open` / `browser_screenshot` / `browser_evaluate` / `browser_extract`
- `browser_click` / `browser_type` / `browser_scroll` / `browser_close`
- AI 可交互式操作网页,支持截图、JS 执行、元素操作
- 主进程 `browser.ts`,隐藏 BrowserWindow 实现
- 全部 8 个函数新增 sendLog 执行日志
-**Cron 定时任务系统**
- `cron-manager.ts` 定时任务管理器
- 支持一次性/周期性任务调度
-**技能自动生成系统**
- 自动从成功工具调用链提取可复用技能
- `skills` 表持久化,支持关键词搜索和使用统计
- 下次同类任务自动匹配并注入技能上下文
-**用户画像自动推断**
- 从对话中自动检测用户技术栈(Python/TypeScript/Go/React 等 14 种)
- 用户画像注入 system promptAgent 行为更贴合用户习惯
-**人格模式**
- 多种预设人格模板,独立 system prompt + 温度设置
-**Heartbeat 主动检查**
- 后台定时检查 Ollama 连接状态、磁盘空间等
-**子代理委派**
- `spawn_task` 工具,主 Agent 可 spawn 独立子代理执行任务
- 独立上下文,超时保护,结果回传主 Agent
- 🔧 **工具并行执行优化**
- 同一批次内独立工具并行执行,跨批次串行
- 依赖检测:web_fetch 自动等待 web_search 结果
- 🔧 **长对话上下文管理**
- `context-manager.ts` 接入 Agent Loop
- 滑动窗口(20 条)+ 摘要压缩 + 按 num_ctx 裁剪
- Token 估算(中文 1.5 字/token,英文 4 字符/token
- 🔧 **记忆系统增强**
- rule/preference 类型始终注入,不依赖关键词匹配
- buildMemoryContext 区分三类记忆措辞
- 🔧 **全面编译修复**
- 修复 `useTools` 变量在声明前使用(TDZ 运行时 ReferenceError
- 修复 `browser.ts` loadURL 不支持的 timeout 参数
- 修复 `ipc.ts` browserScroll direction 类型断言
- 🔧 **CSS 变量补全**
- 补充 `--primary` / `--primary-bg` / `--bg-hover` 三个缺失变量
- 🧹 **全面代码清理**(删除 400+ 行死代码)
- 删除 `training-export.ts`(训练数据导出,零引用)
- 删除 `document-processor.ts`RAG 遗留)
- 清理 workspace.ts`execWorkspaceCommand`(重复实现)、`isProcessAlive``getActiveProcessCount``terminateWorkspaceCommand`
- 清理 sqlite.ts`deleteMessagesBySession``getSkill``closeDatabase`
- 清理 skill-manager.ts`getAllSkillsForUI``deleteSkillById``clearAllSkills`
- 清理 memory-manager.ts`getVectorSearchResults`
- 清理 tool-registry.ts`isToolEnabled`
- 清理 cron-manager.ts`clearAllTimers`
- 清理 workspace-panel.ts`setOnToolTerminated``setWorkspaceDirPath`
- 清理 mcp-manager.ts`isServerRunning`
- 移除 index.html 训练数据导出按钮及 settings-modal.ts 事件绑定
- 📊 **全链路执行日志**
- browser.ts:全部 8 个函数新增 sendLog(打开/截图/JS/提取/点击/输入/滚动/关闭)
- mcp-manager.tscallTool 新增工具调用/完成/失败日志
- 主进程日志覆盖:browser(20) + mcp(14) + tool-handlers(21) + workspace(11) + ipc(11)
- 📝 **版本号更新至 5.0.0**7 个文件同步更新)
### Desktop v4.0.0 — SQLite & ReAct Agent & 全新主题
- 📦 **数据库迁移:IndexedDB → SQLite (sql.js WASM)**
- 新增 `src/main/db/sqlite.ts`,使用 sql.js (WASM) 替代 IndexedDB
- 零原生依赖,无需 electron-rebuild,消除 ABI 版本不匹配问题
- 6 张表:sessions、messages、tool_calls、memoriesFTS5 全文搜索)、settings、traces
- WAL 模式 + NORMAL 同步,性能显著提升
- 支持全量导出/导入(JSON 格式)
- 🔧 **Agent Loop 升级为 ReAct 模式**
- Thought → Action → Observation → Reflection 循环
- 任务复杂度评估(简单/中等/复杂)
- 执行轨迹记录(traces 表),Agent 可观测性
- 最大 15 轮循环,10 分钟总超时保护
- 🧠 **记忆/会话管理工具**
- 新增 `memory_search``memory_add` 工具(AI 可主动管理记忆)
- 新增 `session_list``session_read` 工具(AI 可查阅历史会话)
- 记忆支持 FTS5 全文搜索 + 向量语义搜索
- 上下文管理服务(`context-manager.ts`
- 🎨 **UI 主题改版:暗色 → 暖色调亮色**
- 奶白背景 `#FAF7F2` + 珊瑚橙主色 `#E8734A`
- 圆润柔和设计:圆角 8-20px,柔和阴影
- 紫色辅助色(Think/推理),金色标签(Token 统计)
- 终端区域保留暖棕深色 `#2D2016` 保证代码可读性
- 字体升级:Inter + JetBrains Mono
- 窗口背景色、导出 HTML、theme-color 同步更新
- 🖥️ **工作空间改进**
- IPC 通信优化,workspace 命令通过独立进程管理
- AI 工具命令实时输出推送到工作空间终端
- 📝 **版本号更新至 4.0.0**
### Desktop v3.3.4 — Agent Loop 去重 & 记忆系统修复
- 🔧 **修复 Agent Loop 工具调用重复问题**
- 新增工具调用缓存机制(`toolResultCache`),相同工具+参数不再重复执行
- 新增同轮内重复检测:同一轮 tool_calls 中的重复调用自动跳过
- 新增跨轮次重复检测:连续两轮工具调用完全相同则自动终止循环
- TOOLS_USAGE_GUIDE 新增第 8 条"严禁重复调用"规则
- 🔧 **修复 web_fetch 内容截断**
- 默认 `max_chars` 从 10000 改为 0(不截断,返回完整内容)
- 仅当用户显式指定 `max_chars` 时才截断
- 🔧 **修复记忆系统 rule/preference 不生效**
- `searchMemoriesByKeyword`rule 和 preference 类型记忆始终注入,不再依赖关键词匹配
- 仅 fact 类型保留关键词检索逻辑
- `buildMemoryContext` 区分三类记忆的 system prompt 措辞:规则→"必须无条件执行"、偏好→"请遵循"、事实→"供参考"
- 🔧 **移除重复日志** — tool-registry.ts executeTool 中重复的 logToolStart 调用已移除
### Desktop v3.3.3 — 工具面板修复 & 搜索增强
- 🔧 **修复工具面板 badge 显示错误**
- 除 run_command 外所有工具的 badge 从"需确认"改为"自动"(与代码实际行为一致)
- 根因:CONFIRM_TOOLS 数组仅包含 run_command,但 HTML 硬编码了 10 个工具为 confirm
- 🔧 **修复 run_command 下拉框样式**
- 未选中项白字白底不可见,根因:内联样式引用了未定义的 CSS 变量 --bg-tertiary
- 改用 --bg-card 并为 option 元素添加显式暗色背景
- 🎨 **面板宽度优化**
- 工具面板:720px → 900px
- 历史记录:680px → 800px
- 设置面板:480px → 640px
- 帮助面板:600px → 760px
-**增强联网搜索与网页抓取联动**
- TOOL_USAGE_GUIDE 新增第 6 条:要求 AI 在 web_search 后必须用 web_fetch 抓取详情
- 新增第 7 条:明确 AI 在不确定、信息过时、需实时数据时应主动调用工具
- 典型场景→工具映射:查版本→web_search+web_fetch、查文件→read_file、查项目→git status
-**web_search 默认结果数提升**:5 → 15,给 AI 更多线索定位目标页面
### Desktop v3.3.2 — 联网搜索 & 工具权限优化
-**新增 web_search 联网搜索工具**(第 21 个工具)
- DuckDuckGo HTML 搜索优先,Bing 作为备用引擎
- 返回结构化结果:标题、URL、摘要
- 15 秒超时保护,最多 10 条结果
- 自动启用,无需用户确认(只读操作)
- 🔧 **工具执行权限优化**
- 除 run_command 外,所有 20 个工具改为自动执行无需确认
- run_command 新增三模式下拉框:自动/需确认/禁用
- 工具面板卡片 badge 实时联动模式状态
### Desktop v3.3.1 — Bug 修复 & 图标统一
- 🔧 **修复开启工具调用后图片无法传给 AI**
- `agent-engine.ts`:当用户仅上传图片无文字时,自动生成分析提示作为 content,确保图片数组正确注入 Ollama API
- `input-area.ts`:图片与文字合并为同一条消息,不再拆分为两条,修复 Agent Loop 构建历史时图片关联丢失
- 🔧 **修复记忆系统弹框自动记忆开关点击无响应**
- `memory-modal.ts`CSS 类名 `memory-toggle``toggle-label`,启用完整滑块样式和 `:checked` 状态切换
- 🎨 **统一应用图标为科技感羊驼**
- `assets/icons/llama.png` / `llama.ico`:替换为霓虹电路风格羊驼图标(深色背景 + 青色描边 + 电路纹理)
### Desktop v3.3.0 — 文档同步 & 帮助面板修正
- 📝 **文档全面更新**
- README.mdTool Calling 工具表从 7 个扩展至 20 个,新增 13 个工具说明
- README.md:移除已废弃的 RAG 知识库 section,更新为向量记忆说明
- README.md:项目结构同步实际文件(移除已删除的 rag.ts / kb-modal.ts / memory-panel.ts,新增 memory-modal.ts / tools-modal.ts / prompt-modal.ts / vector-memory.ts
- README.md:架构图更新,移除 RAG 引用
- README.md:记忆提取触发条件从 ≥3 条修正为 ≥6 条
- README.md:记忆类型表移除「事件」类型(v3.0 后已归并为 fact)
- README.md:技术栈从「NSIS + Portable」修正为「NSIS 安装包」
- docs/DEVELOPMENT.md:子系统引用从 rag.ts 更新为 vector-memory.ts
- docs/DEVELOPMENT.md:移除工作空间面板拖拽调整宽度的描述
- 🔧 **帮助面板修正**
- 工作空间终端描述从「多终端 Tab」改为「单一终端进程」
- 移除工作空间面板拖拽调整宽度的描述(当前固定 480px)
### Desktop v3.2.6 — 工作空间面板布局修复 & Token 统计样式优化
- 🔧 **修复工作空间面板与主内容区错位**
- workspace-panel 从 `position: fixed` 改为 flex 子元素,与日志面板布局模式一致
- 移除 `margin-right: 480px` hack 和 `--nav-height` CSS 变量,消除 JS/CSS 失步风险
- 移除 `updateNavHeight()` 函数及 resize 监听,减少不必要的 DOM 计算
- 🎨 **Token 统计颜色优化**
- Header token 统计区:琥珀色 (#FFD580) 图标 + 数值,含淡色背景和细边框
- 消息内 token 数:琥珀色高亮,耗时用主题蓝色,三种信息一目了然
### Desktop v3.2.5 — 工具路径修复 & 安全性增强 & 工作空间重构
- 🔧 **修复工具相对路径解析错误**
- 所有文件系统工具(`read_file` / `write_file` / `list_directory` / `search_files` / `create_directory` / `delete_file`)的相对路径此前用 `path.resolve()` 解析到进程当前工作目录,导致 AI 创建的文件实际写到了错误位置
- 新增 `resolvePath()` 辅助函数:相对路径统一基于 `getWorkspaceDir()`(工作空间目录)解析,绝对路径保持不变
- ♻️ **工作空间改为单一终端**
- 移除多 Tab 机制,工作空间面板简化为单个终端 + 文件浏览器
- 移除标签页栏、新建 Tab 按钮、Tab 切换逻辑
- 终端面板直接渲染 `#ws-terminal`,进程管理改用 `currentTermId` 单例模式
- 文件浏览器宽度固定 200px,终端区域自适应填充剩余空间
- 🔧 **修复 token 统计图标显示问题**
- Header 中 token 消耗图标从 Unicode 字符(🪙)改为纯 path SVG 内联
- 避免 text 元素在部分系统(如旧版 Windows)不显示的问题
- 🔧 **修复图片/文件读取 Latin1 错误**
- `atob()` 解码 Base64 时产生 Latin1 编码,导致中文文件名和中文内容乱码
- 图片上传改用 `readFileBase64` IPC 读取,渲染端用 `Uint8Array` + `TextDecoder` 替代 `atob()`
- 文件读取同样改用 base64 通道,避免 Latin1 编码丢失
- 🔧 **修复工作空间面板定位**
- 面板顶部对齐修正(从 90px 调整为 92px,匹配 header 高度)
- 修复中文乱码:Windows cmd 代码页切换 `chcp 65001` + 环境变量 `LANG/LC_ALL` 设为 UTF-8
- 修复快捷键冲突和帮助文档内容更新
- 📦 **构建产物**
- `Metona Ollama Setup 3.2.5.exe`78MB
- Gitee Release v3.2.5-desktopID: 601311
### Desktop v3.2.4 — AI 命令执行走工作空间终端 & Bug 修复
- 🔧 **AI 命令执行走工作空间终端**
- `run_command` 工具不再在主进程内部执行,改为通过工作空间终端实时执行并显示
- stdout/stderr 实时推送到工作空间终端面板,流式展示
- 用户可通过停止按钮终止卡住的命令,结果自动回传 AI
- 新增 `cmd:output` / `cmd:done` / `cmd:kill` IPC 通道
- 🖥️ **工作空间面板优化**
- 去掉用户手动命令输入,所有命令由 AI 执行
- 终端底部状态提示(等待/执行中)
- 修复面板顶部对齐(90px → 92px)
- 🔧 **设置面板修复**
- 修改 Ollama 服务地址后同步更新顶部导航连接状态和模型列表
- 📦 **构建产物**
- `Metona Ollama Setup 3.2.4.exe`
- Gitee Release v3.2.4-desktop
### Desktop v3.2.3 — 工作空间面板常驻显示 & Bug 修复
- 🖥️ **工作空间面板改为常驻显示**
- 类似执行日志面板,固定显示不可关闭,移除关闭按钮和 header 中的切换按钮
- 固定宽度 480px,移除拖拽调整宽度功能(`wsResizer``setupResizer()` 全部删除)
- `main-wrap` 始终带 `with-workspace` class,面板初始化即可见(`panelVisible = true`
- 删除 `togglePanel()` 函数及相关事件绑定
- 🔧 **Bug 修复**
- 修复 `tool-registry.ts` 使用 `logInfo` 但未导入导致 `run_command` 工具调用报 "logInfo is not defined" 异常
- 📦 **构建产物**
- `Metona Ollama Setup 3.2.3.exe`78MB
- Gitee Release v3.2.3-desktopID: 601248
### Desktop v3.2.2 — 工作空间深度集成 & 构建修复
- 🔧 **工作空间与 AI Tool Calling 深度集成**
- 工作空间命令行新增「执行」按钮,AI 建议的 `run_command` 工具调用可在工作空间终端中可视化执行
- 工具调用结果实时流式输出到工作空间终端面板,支持长时间运行命令
- 完善 IPC 通信链路:`preload.ts` 新增 workspace API 桥接、`ipc.ts` 新增对应 handler
- 📦 **构建流程修复与优化**
- 修复 `npm install` 时 Electron "socket hang up" 问题(需设置 `ELECTRON_MIRROR`
- 修复 electron-builder 构建时 winCodeSign 从 GitHub 下载 EOF 错误(使用 ghfast.top 代理)
- 修复 `restore-build-cache.sh` 因 npmmirror 缺包导致全部缓存跳过的问题
- 新增手动缓存下载方案:逐项下载 winCodeSign/NSIS/NSIS Resources 的完整命令
- `docs/BUILD.md` 故障排查表新增 3 条条目,附完整手动缓存命令
- 📝 **文档更新**
- 更新 README.md 最新版本说明和构建分支引用
- 更新 docs/CHANGELOG.md 版本分支结构
- 更新 docs/BUILD.md 构建日志(v3.2.2 记录 5 个问题及处理步骤)
### Desktop v3.2.1 — 日志统一 & 构建优化
- ♻️ **主进程日志接入执行日志面板**
- 清除 `ipc.ts` 4 处 `console.log/error`,新增 `sendLog()` 函数通过 IPC 推送到渲染进程
- 清除 `workspace.ts` 1 处 `console.log`,统一走 `sendLog()`
- `preload.ts` 新增 `onMainLog` 监听通道
- `main.ts` 监听 `main:log` 事件转发到 `addLog()`,全项目零 `console.log`
- 📦 **移除便携版**
- `package.json` 移除 `portable` 构建目标、`dist:portable` 脚本和 `portable` 配置块
- Gitee 清理 v1.0.0 ~ v3.1.1 旧版本便携版附件,释放仓库配额
- 🗑️ 删除 `docs/V3-TOOL-CALLING.md`
- 📝 更新 README.md(下载说明、常用命令、项目结构)和 docs/BUILD.md
### Desktop v3.2.0 — 工作空间面板 & 构建优化
- 🖥️ **工作空间面板**
- 右侧面板:命令行 Tab + 文件浏览器 Tab,宽度可拖拽调整
- 终端界面:实时流式输出、ANSI 颜色支持、多终端 Tab、无超时限制
- 文件浏览器:目录树、文件预览(带行号)、上级目录导航
- IPC 双向通信:`on/send` 模式实现流式推送,独立于 Agent Loop 超时体系
- 设置面板新增工作空间目录配置(默认 `userData/workspace`
- 窗口关闭时自动 SIGTERM 所有子进程,防止进程泄漏
- ♻️ **结构化日志系统**
- 渲染进程 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 目录(本地缓存不进仓库)
- 📦 **构建优化**
- 移除便携版构建目标,后续仅提供 NSIS 安装包
- 清理 `package.json` 中 portable 相关配置
- 更新 `docs/BUILD.md` 构建指南
### 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 持久化,跨会话积累
- 可视化记忆管理面板(搜索/筛选/编辑/删除)
- 对话 ≥3 条消息后自动触发记忆提取
-**全功能协调运作** — 记忆检索 → 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 安装包 + 绿色便携版
- 🔧 隐藏窗口菜单栏
---
+1 -1
View File
@@ -1,6 +1,6 @@
# Metona Ollama Desktop — 开发规范
> 版本: 5.1.6 | 更新: 2026-04-20 | 维护: 项目团队
> 版本: 1.0.0 | 更新: 2026-04-24 | 维护: 项目团队
---
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "metona-ollama-desktop",
"version": "5.1.6",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "metona-ollama-desktop",
"version": "5.1.6",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"sql.js": "^1.11.0"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "metona-ollama-desktop",
"version": "5.1.6",
"version": "1.0.0",
"description": "Metona Ollama - TypeScript + Electron 桌面 AI 聊天客户端",
"main": "dist/main/main.js",
"author": "thzxx",
+1 -1
View File
@@ -28,7 +28,7 @@
<div class="header-left">
<span class="logo">🦙</span>
<span class="app-title">Metona Ollama</span>
<span class="app-version">v5.1.6</span>
<span class="app-version">v1-stable-release</span>
<button class="icon-btn help-btn" id="btnHelp" title="使用帮助">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/>