Metona Bot
e4fdd0c604
release: v3.1.1-desktop build artifacts
2026-04-07 13:17:15 +08:00
metona
e7b15db6e7
docs: 更新 README 和 CHANGELOG,仓库更名为 metona-ollama-desktop,Web 版独立至 metona-ollama-web
2026-04-07 12:31:00 +08:00
thzxx
06e1900435
fix: Agent Loop 注入工具路径上下文引导,避免连续操作时路径丢失
2026-04-07 11:05:52 +08:00
thzxx
4e11bd549c
feat: 退出应用时自动释放模型显存
2026-04-07 10:50:35 +08:00
thzxx
5cde0fab6e
chore: 版本号升级 3.1.0 → 3.1.1
2026-04-07 02:49:40 +08:00
thzxx
9c1ab73be7
docs: 更新分支结构,README 构建指引指向 v3.1.0 分支
2026-04-07 02:45:10 +08:00
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
thzxx
9f01138062
feat: 构建资源本地缓存 + restore-build-cache.sh + 更新 BUILD.md
...
- restore-build-cache.sh: 自动从 build-resources/ 或镜像恢复缓存
- build-resources/ 已在 .gitignore(不进 git,145MB)
- BUILD.md: 重写为快速构建 3 步指南
2026-04-07 02:20:41 +08:00
thzxx
8f77bcfb1a
fix: build-resources 从 git 移除(145MB 本地资源不进仓库)
2026-04-07 02:18:57 +08:00
thzxx
4ccd53e087
fix: 修复 vector-store.ts colId 变量重复声明
2026-04-07 02:10:20 +08:00
thzxx
4dcbb4f1e9
fix: 修复 importSessions 中 result 变量重复声明导致编译失败
2026-04-07 02:10:01 +08:00
thzxx
0a476365b2
chore: 版本号升级 3.0.0 → 3.1.0
2026-04-07 02:02:19 +08:00
thzxx
79e4cac19b
feat: header 增加当前会话总 token 消耗统计
...
- 新增 totalTokens 元素(帮助按钮右侧,🪙 图标 + 数字)
- chat-area.ts 新增 updateTotalTokens() 函数
- 四个触发点:新消息完成、新建会话、加载历史、应用初始化
- 数字自动格式化(toLocaleString)
2026-04-07 02:00:27 +08:00
thzxx
a80baf363c
fix: 修复 AI 回复 token 统计信息显示
...
- 直接 API 路径:增强 finalStats 捕获,从任意包含统计的 chunk 兜底收集
- Agent Loop 路径:新增 total_duration / eval_count 统计回传
- chat-area.ts: 修复 falsy 判断(eval_count=0 也应显示)
- agent-engine.ts: onDone 回调新增 stats 参数
2026-04-07 01:56:17 +08:00
thzxx
9735a1ed38
feat: 全面补充执行日志(135处)
...
补日志的模块:
- vector-store.ts: 0→7(init/create/delete/add/search 全覆盖)
- rag.ts: 3→7(initVectorStore/embedBatch/removeDoc/retrieveContext)
- chat-area.ts: 2→5(3个导出函数加日志)
- history-modal.ts: 4→5(打开历史记录)
- kb-modal.ts: 7→8(打开知识库管理)
- header.ts: 5→7(运行中模型状态)
2026-04-07 01:47:02 +08:00
thzxx
60152fb443
refactor: 清理渲染进程全部 58 处 console.log/warn/error
...
- 所有错误日志统一走 logService(logError/logWarn/logInfo)
- 无 logService 的地方补上对应调用
- 纯调试 trace 直接删除(桌面应用看不到 console)
- ollama.ts 流式解析错误改为静默跳过(非关键)
- 执行日志面板信息量不变
2026-04-07 01:42:56 +08:00
thzxx
f174e7d737
fix: 聊天导出改用原生保存对话框,清理 downloadFile
...
- exportAsMarkdown/Html/Txt 全部改用 dialog.saveFile + fs.writeFile
- 删除 utils.ts 中的 downloadFile 函数(不再使用)
- 两处 a.download 保留为 fallback(bridge 不可用时降级)
2026-04-07 01:36:19 +08:00
thzxx
02d5ff19c7
feat: 文件对话框全部改用 Electron 原生对话框
...
- input-area.ts: 图片/文件上传改用 dialog.showOpenDialog(通过 IPC)
- settings-modal.ts: 导入改用原生打开对话框,导出改用原生保存对话框
- kb-modal.ts: 知识库文档上传改用原生打开对话框
- ipc.ts/preload.ts/types.d.ts: writeFile 增加 encoding 参数支持二进制写入
- index.html: 移除 4 个无用的 <input type="file"> 元素
- 清理死代码: fileToBase64, fileToText, isMetonaFile
2026-04-07 01:33:51 +08:00
thzxx
58ef272061
fix: 修复桌面集成失效 + 清理死代码
...
- main.ts: window.__metonaBridge → window.metonaDesktop(与 preload.ts 对齐)
- 删除 DesktopBridge 接口和 __metonaBridge 类型(从未使用)
- 删除 extractDocument(定义了但无调用)
- 删除 logIPC(导出了但零引用)
- 删除 getMessagesContainer(导出了但无调用)
- SAFE_DATA_TYPES 去掉多余的 export
- vite.config.ts 移除未使用的 server 配置
2026-04-07 01:28:07 +08:00
thzxx
e1e67dd285
docs: 更新帮助弹框 — 新增 Tool Calling 和 Agent 记忆系统说明,移除已废弃的 Agent 预设
2026-04-07 00:01:14 +08:00
thzxx
9d9feb40a3
fix: 修复工具确认后执行卡死问题
...
问题:用户点击确认执行工具(如删除文件)后,页面一直处于'正在思考'loading状态,工具未被执行。
原因:tool-confirm-modal.ts 中 cleanup() 先将 resolveConfirm 设为 null,导致后续 resolveConfirm?.(true) 无法 resolve Promise,await callbacks.onConfirmTool(call) 永远挂起。
修复:在调用 cleanup() 前先保存 resolveConfirm 引用,cleanup 后再调用保存的引用来 resolve Promise。
2026-04-06 21:30:00 +08:00
Metona Dev
6d17817ce4
docs: README 桌面原生表格新增执行日志面板描述
2026-04-06 20:50:26 +08:00
Metona Dev
8e7f1a8484
docs: 更新 README.md 和 CHANGELOG.md,记录 v3.0.0-patch2 修复
2026-04-06 20:48:46 +08:00
Metona Dev
e71a307f33
docs: 对齐 Ollama 官方 Tool Calling 文档,补充关键注释
...
对照 docs.ollama.com/capabilities/tool-calling JavaScript 示例:
- 确认 assistant 消息格式:content + thinking + tool_calls 三者共存
- 确认工具结果格式:{role: 'tool', tool_name, content}
- 确认 Agent Loop 结构与官方一致
- 补充流式 tool_calls 累积逻辑的注释
2026-04-06 20:43:33 +08:00
Metona Dev
a9c56582d0
fix: 工具执行 IPC 卡死问题 — 多层超时保护
...
问题:确认工具操作后 Agent Loop 卡死在'正在思考中',工具未执行。
修复:
- tool-registry.ts: executeTool() 新增 25 秒 IPC 硬超时
- agent-engine.ts: executeTool 内部 .catch 捕获异常,防止 reject 逃逸
- ipc.ts: tool:execute handler 外层 try-catch 确保始终返回响应
- 全链路添加 console.log 便于排查
2026-04-06 20:41:56 +08:00
Metona Dev
509e402844
fix: 新建会话时强制中断生成并恢复发送按钮
...
- startNewSession() 中 abort 正在进行的流式请求
- 重置 IS_STREAMING = false, ABORT_CONTROLLER = null
- 强制恢复发送按钮图标和状态
2026-04-06 20:30:26 +08:00
Metona Dev
e999c420d1
fix: 日志面板默认常驻显示,移除关闭/清空/切换按钮
...
- 日志面板默认打开(移除 display:none)
- 移除关闭按钮、清空按钮、头部切换按钮
- 移除对应的事件处理和 CSS
2026-04-06 20:27:37 +08:00
Metona Dev
c516755a5c
fix: 修复三个启动相关 Bug
...
Bug 1: prompt()/confirm() 在 Electron contextIsolation 下不可用
- 新增 prompt-modal.ts 自定义弹窗组件
- 替换 memory-panel.ts、kb-modal.ts、settings-modal.ts、history-modal.ts 中所有 prompt()/confirm() 调用
Bug 2: 日志面板重启后无日志
- log-service.ts 新增 earlyBuffer 缓冲 initLogPanel() 之前的日志
- initLogPanel() 初始化时 flush earlyBuffer 到 DOM
- main.ts 中 initLogPanel() 移至最先初始化
Bug 3: 首次启动输入框可能被禁用
- main.ts init() 中防御性重置 IS_STREAMING/IS_HISTORY_VIEW/toolCallingEnabled 等状态
- catch 块也重置关键状态并初始化日志面板
2026-04-06 20:11:41 +08:00
Metona Fix
70fef8e969
debug: 添加详细调试日志定位工具调用卡死问题
...
在 agent-engine.ts 和 ollama.ts 的关键节点添加 console.log:
- 流式调用开始/结束/错误
- 工具调用列表和参数
- 确认框弹出和用户确认结果
- 工具执行开始/结果
- messages 数组长度变化
- 每个 Loop 迭代的完整状态
- Ollama API 请求/响应/流结束
2026-04-06 19:43:00 +08:00
Metona Fix
af70054875
feat: 全量日志接入 + 日志服务重构(非阻塞)
...
log-service 重构:
- DOM 渲染改用 requestAnimationFrame 批量队列
- 全程 try-catch,任何异常都不阻塞主流程
- 新增 logConnection/logModel/logSession/logMemory/logRAG/logSetting/logIPC/logInit 便捷方法
全量接入(12 个文件):
- header.ts: 连接状态变化(connected/disconnected/error)
- model-bar.ts: 模型列表加载、模型切换、能力检测结果
- settings-modal.ts: 所有设置变更(系统提示词/上下文/温度/工具调用/命令执行/记忆)、显存释放、导出/导入
- tool-confirm-modal.ts: 工具确认弹窗、确认/取消操作
- memory-manager.ts: 记忆初始化、新增/删除、自动提取
- tool-registry.ts: 工具执行异常
- rag.ts: 文档分块、向量检索
- kb-modal.ts: 知识库创建、文档上传、批量上传
- history-modal.ts: 会话加载、会话删除
- main.ts: 应用初始化各阶段、桌面集成、菜单/托盘操作、新建会话
- input-area.ts: 消息发送、流式完成/错误、文件/图片添加、Agent Loop 错误
2026-04-06 19:23:03 +08:00
Metona Fix
1033cefdfb
feat: 添加左侧实时执行日志面板
...
功能:
- 日志面板位于聊天区左侧,可折叠/展开
- 实时展示所有执行事件:
- 🤔 模型思考过程
- 📡 流式响应状态
- 🔧 工具调用(参数+结果)
- ⚠️ 错误和警告
- ℹ️ Agent Loop 迭代
- ✅ 操作完成
- 日志自动滚动、最大 500 条、可清空
- 等宽字体显示,按级别着色
- 头部新增日志开关按钮
2026-04-06 19:14:51 +08:00
Metona Fix
dd5e789e35
feat: 模型下拉框选项显示能力图标
...
每个模型选项文字后追加能力标记:
- 🧠 Think(支持思考推理)
- 👁️ Vision(支持图片理解)
- 🔧 Tools(支持工具调用)
示例:qwen3:8b · 5.2GB 🧠 🔧
2026-04-06 19:05:33 +08:00
Metona Fix
0f25921fb9
fix: 修复工具调用确认后卡死问题
...
根本原因:
1. 模型能力检测缺少 tools 检查 — gemma4 等模型不支持 Tool Calling 但代码允许启用
2. 流式调用无超时保护 — 模型无限思考时无法自动恢复
3. AbortController 竞态 — 确认对话框后状态同步问题
修复内容:
- 模型能力检测增加 tools 字段检查,模型栏显示 🔧 Tools 标签
- Agent Loop 流式调用增加 2 分钟单次超时保护
- 开启 Tool Calling 时自动检测模型兼容性并警告
- 设置面板开启 Tool Calling 时检查并提示不兼容模型
- 输入区域 Agent Loop 分支增加模型支持检测和用户提示
2026-04-06 19:02:34 +08:00
Metona
43c827e9ff
fix: 修复工具调用确认后卡死问题
...
- 工具确认按钮添加 e.stopPropagation() 防止事件冒泡到 overlay
- 防止重复绑定 overlay click handler (initialized flag)
- 新确认打开时自动取消旧确认,防止竞态条件
- 工具执行添加 30 秒超时保护,防止 IPC 挂起
- Agent Loop 添加 5 分钟全局超时
- 每轮循环检查 abort 信号
- 工具执行失败时输出 console.error 便于调试
2026-04-06 18:15:18 +08:00
Metona
35a0c58bde
fix: 修复输入框交互问题
...
- #app添加position:relative确保absolute子元素定位正确
- 修复记忆面板与设置面板的重复ID(toggleMemoryEnabled)
- 输入区域添加z-index和pointer-events确保始终可交互
- 聊天输入框添加pointer-events:auto和user-select:text
2026-04-06 17:44:04 +08:00
Metona Builder
681a260505
docs: 重写 CHANGELOG.md,按分支梳理全部版本,去掉时间线
2026-04-06 17:16:18 +08:00
Metona Builder
f6cd9dda06
docs: 修正 CHANGELOG.md 时间线,按实际 git 提交日期重排
2026-04-06 17:14:27 +08:00
Metona Builder
65d326b6c6
docs: 抽离更新日志为独立 CHANGELOG.md,记录完整项目发展历程
2026-04-06 17:12:29 +08:00
Metona Builder
c8a5302d83
docs: 更新 BUILD.md,补充 Wine 安装步骤和 v3.0.0 构建日志
2026-04-06 17:09:14 +08:00
thzxx
18a24a2a59
refactor: remove Agent preset system, fix run_command enable bug
...
- Delete preset-manager.ts and preset-bar.ts
- Clean up all preset references from main.ts, types.d.ts, state.ts
- Remove preset modal HTML and CSS, rename temp-slider/modal-actions classes
- Fix run_command tool not being enabled (missing setToolEnabled call)
2026-04-06 15:44:27 +08:00
thzxx
9e6fce2c3f
chore: bump version to 3.0.0
2026-04-06 15:31:28 +08:00
thzxx
eba5098728
docs: 重写 README.md 适配 Agent 记忆系统 + Tool Calling 双引擎架构
2026-04-06 13:48:22 +08:00
thzxx
dc43db7d9c
feat: Agent 记忆系统替代预设功能,全功能协调运作
...
核心改造:
- 取消 Agent 预设(保留兼容),新增 AI Agent 记忆系统
- 自动提取 → 存储 → 检索 → 注入上下文的完整记忆闭环
- 记忆类型:事实/偏好/规则/事件,支持重要性评分和标签
新增文件:
- services/memory-manager.ts: 记忆管理核心
- 关键词+标签+重要性加权检索
- 会话结束自动提取(LLM 驱动)
- 去重检测、使用频率追踪
- components/memory-panel.ts: 记忆管理面板 UI
修改文件:
- types.d.ts: 新增 MemoryEntry/MemorySearchResult 类型
- db/chat-db.ts: 升级 v2,新增 memories 存储
- input-area.ts: 对话流集成记忆检索+自动提取
- agent-engine.ts: Agent Loop 注入记忆上下文
- settings-modal.ts: 记忆开关设置
- main.ts: 记忆系统初始化
- index.html: 记忆设置面板 HTML
- style.css: 记忆面板完整样式
功能协调:
- 对话流: 记忆检索 → RAG 检索 → 系统提示词组合 → 流式对话
- Agent Loop: 记忆检索 → 系统提示词注入 → 工具调用循环
- 会话结束: 自动提取关键信息 → 存入记忆库
- 跨会话: 记忆持久化 IndexedDB,新对话自动召回相关记忆
2026-04-06 13:44:45 +08:00
thzxx
37e11502b8
docs: 重写 README.md 适配 v3.0 Tool Calling 架构
2026-04-06 13:33:21 +08:00
thzxx
e4e735b2ac
docs: 更新 BUILD.md 分支为 v3
2026-04-06 13:31:43 +08:00
thzxx
5bfb137a8a
feat: v3.0 Tool Calling — AI 本地文件操作系统
...
新增文件:
- src/main/tool-security.ts: 路径白名单/黑名单、命令安全检查
- src/main/tool-handlers.ts: 7个工具实现(read/write/list/search/create/delete/run)
- src/renderer/services/tool-registry.ts: 工具注册调度中心
- src/renderer/services/agent-engine.ts: Agent Loop 流式多轮工具调用引擎
- src/renderer/components/tool-confirm-modal.ts: 高风险操作确认对话框
修改文件:
- types.d.ts: 新增 ToolCall/ToolResult/ToolCallRecord 等类型
- ollama.ts: chatStream 支持 tools 参数
- ipc.ts: 新增 tool:execute/getConfig/setAllowedDirs IPC
- preload.ts: 暴露 tool API
- chat-area.ts: 渲染工具调用卡片
- input-area.ts: 集成 Agent Loop 引擎
- settings-modal.ts: 工具调用开关设置
- index.html: 工具调用设置面板 + 确认对话框 HTML
- style.css: 工具调用卡片、确认对话框样式
- main.ts: 初始化工具调用配置
2026-04-06 13:29:43 +08:00
thzxx
0a1397771e
docs: 添加 Windows 安装包构建指南(分支已更新为 v2)
2026-04-06 13:16:06 +08:00
thzxx
2119e51660
docs: 添加 v3.0 Tool Calling 技术开发文档(75KB 详细设计)
2026-04-06 03:47:15 +08:00
thzxx
d7543548d5
docs: 重写 README.md 适配 v2.0.0 TypeScript + Electron 架构
2026-04-06 03:24:52 +08:00
thzxx
0ec6e902de
feat: TypeScript + Electron v2.0.0 构建系统完善
...
- 添加 vite.config.ts 构建配置
- 添加 tsconfig.main.json(主进程单独编译)
- 修复主进程模块化(menu/tray 使用 setQuitting)
- 修复渲染进程导入路径
- 删除旧版 JS/Web 文件(js/、electron/、sw.js、manifest.json)
- 构建验证通过:NSIS 安装包 + 便携版
2026-04-06 03:21:05 +08:00