thzxx
8d03f42611
fix: 移除 workspace-panel.ts 中重复的 escapeHtml 声明
2026-04-19 19:06:00 +08:00
thzxx
a79ce976f3
chore: 版本号更新至 5.1.4
2026-04-19 19:04:06 +08:00
thzxx
c7f2fe0c27
feat: 工具卡片从聊天区域迁移到工作空间面板
...
- 工作空间新增「🔧 工具」页签,专门展示工具调用卡片
- 工具执行时自动切换到工具页签
- run_command 执行时自动切换到终端页签
- AI 回复消息不再显示工具卡片,保持聊天区域简洁
- 工具页签支持清空、自动滚动、状态统计
2026-04-19 19:01:43 +08:00
thzxx
b81bb4dd60
docs: 根据 v5.1.3 实际代码更新全部 docs 文件
...
- BUILD.md: checkout 分支 v5.1.1→v5.1.3,any 计数修正
- DEVELOPMENT.md: 目录结构更新(tool-handlers 拆分、新服务文件),
工具数 25→38,数据库 6→7 表,新增 browser/mcp/skill/cron/sub-agent
- OPENCLAW-HERMES-ANALYSIS.md: 10 个路线图功能标记已实现状态,
更新优先级表和待实施清单
- HERMES-AGENT-DEEP-STUDY.md: 对比表更新(记忆/工具/Agent Loop),
P0-P2 改进清单标记实施状态
2026-04-19 18:52:23 +08:00
thzxx
4fac36b941
docs: 更新 v5.1.3 发布信息(下载文件名、分支结构链)
2026-04-19 18:47:54 +08:00
thzxx
db16640385
docs: 重构 README.md + 更新 CHANGELOG.md v5.0.0
...
README.md 重构:
- 工具数量 25 → 34 + MCP 动态工具,完整列出所有工具
- 新增 MCP 章节(协议说明、功能特性、使用方式)
- 新增技能自动生成、用户画像、人格模式章节
- 架构图更新 v4.0 → v5.0(五大子系统)
- 项目结构更新(新增 browser.ts/mcp-manager.ts/cron-manager.ts/skill-manager.ts/sub-agent.ts/mcp-client.ts,删除已移除的 document-processor.ts)
- 精简安全/构建/下载章节
CHANGELOG.md v5.0.0 完善:
- 新增 MCP 完整实现条目(主进程/IPC/渲染端/工具路由/UI/启动集成/清理)
- 新增上下文管理接入条目
- 新增编译修复条目(useTools TDZ / loadURL timeout / browserScroll 类型)
- 新增 CSS 变量补全条目
- 新增全面代码清理条目(400+ 行 / 12 类死代码)
- 新增全链路执行日志条目
2026-04-18 10:30:08 +08:00
thzxx
3a33ebf949
fix: 补充执行日志 + 清理死代码
...
日志补充:
- browser.ts: 全部 8 个函数新增 sendLog (打开/截图/JS/提取/点击/输入/滚动/关闭)
- mcp-manager.ts: callTool 新增工具调用日志
死代码清理:
- skill-manager.ts: 删除 getAllSkillsForUI, deleteSkillById, clearAllSkills (39 行)
- memory-manager.ts: 删除 getVectorSearchResults (4 行)
- mcp-manager.ts: 删除 isServerRunning
2026-04-18 10:24:39 +08:00
thzxx
22a33ae241
feat: 实现 MCP (Model Context Protocol) 完整功能
...
主进程:
- 新增 mcp-manager.ts: JSON-RPC 2.0 over stdio 通信
- 服务器生命周期管理 (spawn/initialize/handshake/stop)
- tools/list 动态工具发现
- tools/call 工具执行 (30 秒超时)
- 消息分帧 (newline-delimited JSON)
- 优雅清理 (pending 请求超时 + SIGTERM)
IPC 通道 (7 个):
- mcp:startServer / mcp:stopServer / mcp:stopAll
- mcp:callTool / mcp:getTools / mcp:getStatuses / mcp:refreshTools
渲染端:
- mcp-client.ts 完整重写: 配置管理 + 服务器生命周期 + 工具定义获取 + 工具执行
- tool-registry.ts: MCP 工具路由 (mcp_ 前缀识别 → executeMCPTool)
- settings-modal.ts: MCP 服务器管理 UI (添加/启用/禁用/删除/状态显示)
- main.ts: 启动时自动启动已启用的 MCP 服务器
数据流:
settings.mcp_servers → startAllMCPServers → initialize → tools/list → getMCPToolDefinitions → Agent Loop → mcp_ 工具调用 → callTool → JSON-RPC → MCP Server
2026-04-18 10:14:33 +08:00
thzxx
d2468cd6fc
refactor: 全面清理死代码 — 删除 348 行无用代码
...
删除文件:
- training-export.ts: 训练数据导出(零引用,UI 已移除)
删除函数:
- workspace.ts: isProcessAlive, getActiveProcessCount, execWorkspaceCommand, terminateWorkspaceCommand
- sqlite.ts: deleteMessagesBySession, getSkill, closeDatabase
- tool-registry.ts: isToolEnabled
- cron-manager.ts: clearAllTimers
- workspace-panel.ts: setOnToolTerminated, setWorkspaceDirPath
删除 UI:
- index.html: 训练数据导出按钮及说明
- settings-modal.ts: 训练数据导出事件绑定
2026-04-18 10:08:01 +08:00
thzxx
6c9ffa5135
fix: 消除死代码 — context-manager 接入 + mcp-client 接线 + 删除 document-processor
...
- agent-engine.ts: 接入 context-manager buildContext(),长对话自动滑动窗口+摘要压缩+token 裁剪
- tool-registry.ts: 导入 mcp-client,getEnabledToolDefinitions() 合并 MCP 工具缓存
- main.ts: 启动时 refreshMCPTools() 注册已启用的 MCP 工具
- 删除 document-processor.ts(RAG 遗留,完全无引用)
2026-04-18 10:00:14 +08:00
thzxx
c6fc8b116c
fix: 全面测试修复 — useTools TDZ 错误 + CSS 变量缺失
...
- agent-engine.ts: 修复 useTools 在声明前使用导致运行时 ReferenceError
- style.css: 补充 --primary, --primary-bg, --bg-hover 三个缺失的 CSS 变量
2026-04-18 09:55:32 +08:00
thzxx
8ea7a056f3
fix: 修复 TypeScript 编译错误
...
- browser.ts: 移除 loadURL 不支持的 timeout 参数
- ipc.ts: 修正 browserScroll direction 参数类型断言
2026-04-18 09:42:41 +08:00
thzxx
17d684cbf5
chore: 版本号更新至 5.0.0
2026-04-18 09:35:17 +08:00
thzxx
889d34b484
feat: v5.0 全面进化 — 浏览器控制 + 训练数据导出 + Cron 定时任务
...
新增功能:
1. 🌐 浏览器控制(8 个工具)
- 主进程 browser.ts: 基于隐藏 BrowserWindow 的浏览器引擎
- browser_open: 加载 URL,返回标题和最终 URL
- browser_screenshot: 页面截图(base64 PNG)
- browser_evaluate: 执行任意 JS,支持 DOM 操作
- browser_extract: 提取页面文本 + 链接(最多 50 条)
- browser_click: CSS 选择器点击
- browser_type: 输入框文本输入
- browser_scroll: 上下滚动/顶部/底部
- browser_close: 关闭浏览器释放资源
- 应用退出时自动清理 (before-quit)
- 工具总数:34 个
2. 📚 训练数据导出
- training-export.ts: 从 traces + messages 提取 SFT 格式训练数据
- 输出 JSONL 格式(instruction/input/output/tools/observations/metadata)
- 设置面板一键导出,Electron 原生文件对话框选择保存位置
3. ⏰ Cron 定时任务
- cron-manager.ts: one-shot(指定时间)+ recurring(周期性)
- 任务配置持久化到 settings
- 设置面板添加/删除/启用/禁用
- 任务触发时自动填入聊天输入框 + toast 通知
- 应用启动时自动恢复所有已启用任务
新增文件:browser.ts, cron-manager.ts, training-export.ts
修改文件:ipc.ts, main.ts, settings-modal.ts, index.html, main.ts(渲染), tool-registry.ts
2026-04-18 09:29:29 +08:00
thzxx
374d86086e
feat: v4.3 生态扩展 — 诊断系统 + Heartbeat + 子代理 + MCP
...
新增功能:
1. 🩺 一键诊断系统
- 设置面板添加「一键诊断」按钮
- 检查项:Ollama 连接、模型可用性、模型能力(Tools/Vision/Think)、
SQLite 数据库、技能系统、应用版本信息
- 实时渲染诊断结果,✅ /⚠️ /❌ 状态标识
2. 💓 Heartbeat 后台检查
- 设置面板添加开关 + 间隔选择(10分/30分/1小时/2小时)
- 定时检查 Ollama 连接,异常时系统通知
- 配置持久化到 settings,启动时自动恢复
- startHeartbeat/stopHeartbeat/restoreHeartbeat 三件套
3. 🤖 子代理委派(spawn_task)
- 新增 spawn_task 工具(26 个工具)
- 子 Agent 独立运行(独立消息上下文,5 轮上限,2 分钟超时)
- 不支持工具调用,专注于文本推理任务
- 主 Agent 可传入附加上下文
- 结果返回主 Agent Loop
4. 🔌 MCP Client 框架
- mcp-client.ts: MCP 服务器配置管理(增删改查、启用禁用)
- 配置存储在 settings.mcp_servers
- 工具注册框架就绪,待主进程 MCP bridge 实现协议通信
新增文件:mcp-client.ts, sub-agent.ts
修改文件:settings-modal.ts, index.html, main.ts, tool-registry.ts
2026-04-18 09:25:40 +08:00
thzxx
f1625b4353
feat: v4.2 智能进化 — 技能自动生成 + 用户画像 + 人格模板
...
新增功能:
1. 技能自动生成系统 (Skill Loop)
- 新增 skills 表:id/name/description/trigger_keywords/tool_chain/success_count/fail_count
- skill-manager.ts: 从成功工具调用链自动提取可复用技能
- 关键词匹配 + 成功率加权的技能检索
- 匹配到的技能自动注入 system prompt(含工具链步骤和成功率)
- Agent Loop 结束后自动提取,开始前自动匹配注入
- DB/IPC/Preload 全链路支持
2. 用户画像模型
- 自动从对话中推断技术栈(14 种技术关键词检测)
- 画像存储在 settings.user_profile
- 自动注入 system prompt(技术栈/角色/风格)
- 随使用不断积累完善
3. 人格模板切换(6 种预设)
- 🤖 通用助手(默认,温度跟随设置)
- 💻 编程助手(温度 0.3,注重代码质量)
- ✍️ 写作助手(温度 0.8,注重文采流畅)
- 📊 数据分析(温度 0.2,注重精确逻辑)
- 🌐 翻译助手(温度 0.4,注重信达雅)
- 🔍 代码审查(温度 0.3,注重安全性能)
- 设置面板 3×2 网格按钮,点击切换 + 自动调整温度
修改文件:9 个已有 + 1 个新建(skill-manager.ts)
2026-04-18 09:22:25 +08:00
thzxx
d8f89ad097
feat: v4.1 会话增强 — /retry /undo /compress + 工具并行执行
...
新增功能:
- /retry:重试上一轮对话,删除最后的 AI 回复并重新触发 Agent Loop
- /undo:撤销最后的用户+AI 消息对
- /compress:用 LLM 摘要压缩中间对话,保留首尾上下文
- 工具并行执行:同一批次内互相独立的工具用 Promise.all 并行执行
技术细节:
- input-area.ts: 命令检测在 sendMessage() 入口处,/retry 支持普通聊天和 Agent Loop 两种模式
- chat-area.ts: 新增 clearMessagesDOM() 用于 undo/compress 后强制重建 DOM
- agent-engine.ts: 工具调用分批算法 — 根据 TOOLS_WITH_DATA_DEPS 集合检测依赖关系,
独立工具同批并行,有依赖的工具跨批串行
2026-04-18 09:15:10 +08:00
thzxx
b2951d8cd0
docs: 添加 OpenClaw & Hermes Agent 对比分析及 Metona 改进路线图
2026-04-18 09:10:06 +08:00
thzxx
137b8d86ef
fix: 彻底修复工具调用链断裂问题
...
问题根因:
1. 工具结果直接 JSON.stringify 生成臃肿 JSON(含 results 数组、formatted 长字符串等),
干扰模型理解,导致模型拿到搜索结果后不知道该继续调用 web_fetch
2. 模型返回空内容时,Agent Loop 直接终止,丢失了已有的工具调用上下文
3. 系统提示词对工具链式调用的约束力不足
修复方案:
- 新增 formatToolResultForModel():按工具类型精简结果,web_search 只保留 top 5,
web_fetch 截断 15K,移除冗余元数据字段
- 重写 AGENT_SYSTEM_PROMPT:明确要求工具链式调用(search→fetch→answer),
列出常见链式模式,强调「说了就要做」
- 重写 TOOL_USAGE_GUIDE:强化 web_search→web_fetch 强制链式规则
- 空响应处理:模型返回空内容时移除空消息、添加引导性提示、继续循环而非中断
- 记忆提取移到 Agent Loop 结束后,避免中途干扰
2026-04-18 08:40:52 +08:00
thzxx
93d7555a6f
fix: 去掉 ReAct 格式 prompt,恢复模型自然使用 API tool_calls
...
根因:REACT_SYSTEM_PROMPT 要求模型用 Thought/Action/Action Input
格式回复,导致模型用文本写工具调用而不是走 Ollama API 的
tool_calls 字段。v3.3.4 之前没有 ReAct prompt 时模型能正常调用。
改为简洁的 AGENT_SYSTEM_PROMPT,只描述工作方式和注意事项,
不规定输出格式,让模型自然使用 API function calling。
文本解析兜底保留作为安全网。
2026-04-18 08:24:02 +08:00
thzxx
4e158e8783
fix: 修复文本解析兜底正则不匹配模型实际输出格式
...
模型实际输出格式:
Action: write_file
Action Input: {"path": "测试.md", "content": ""}
原正则用 [\r\n]+ 强制要求换行,且 Action: 后的冒号和
Action Input: 的冒号处理冲突导致匹配失败。
改为 [\r\n\s]* 灵活匹配空白/换行。
2026-04-18 08:21:08 +08:00
thzxx
445695c6e1
feat: Agent Engine 文本解析兜底 — 支持不支持 function calling 的模型
...
当模型没有通过 Ollama API 的 tool_calls 字段返回工具调用,
而是在回复文本中写出 Action/Action Input 时(如 gemma4 系列),
自动从文本中提取工具调用,确保 ReAct Loop 正常执行。
支持的文本格式:
- **Action:** tool_name **Action Input:** {json}
- Action: tool_name Action Input: {json}
- 工具名白名单校验 + JSON 解析容错(单引号、尾逗号等)
2026-04-18 08:15:56 +08:00
thzxx
95153e9171
fix: 修复打包后应用无法启动(sql.js WASM 不含 FTS5 模块)
...
根因分析:
- sql.js 默认 WASM 构建不包含 FTS5 全文搜索扩展
- initDatabase() 中 CREATE VIRTUAL TABLE USING fts5 直接抛异常
- app.whenReady() 链没有 .catch(),错误被静默吞掉
- 结果:进程启动但窗口永远不显示(用户看到双击没反应)
修复内容:
1. main.ts: 添加 app.whenReady().catch() 错误处理,失败时弹出错误对话框
2. main.ts: 添加全局 uncaughtException/unhandledRejection 处理,写入 startup-error.log
3. sqlite.ts: FTS5 虚拟表创建改为可选,缺失时自动降级为 LIKE 搜索
4. sqlite.ts: 所有 FTS5 同步操作(save/delete/clear)加 _hasFTS5 守卫
2026-04-18 07:42:54 +08:00
thzxx
d98f1ff754
fix: 修复打包后 sql.js 未包含在 app.asar 导致启动报错
...
electron-builder 的 files 配置中 !node_modules/**/* 排除了所有
node_modules,但 sql.js 作为运行时依赖必须被打包。在排除规则前
显式包含 node_modules/sql.js/**/* 即可。
2026-04-17 17:44:41 +08:00
thzxx
ea55264b5a
fix: 修复 TypeScript 编译错误(sql.js 类型声明 + Row 转换)
2026-04-17 17:27:13 +08:00
thzxx
5fb36a93e6
docs: 根据 v3.3.4 实际代码更新 README 和开发规范
...
- README.md: Agent Loop 说明补充去重机制
- README.md: 记忆类型表增加检索方式列(规则/偏好始终注入)
- README.md: 记忆工作流程更新(规则/偏好始终注入 + 事实关键词检索)
- README.md: web_fetch 补充默认返回完整内容说明
- docs/DEVELOPMENT.md: Tool Calling 流程补充去重机制
- docs/DEVELOPMENT.md: 联网搜索联动补充 web_fetch 不截断说明
2026-04-17 10:44:56 +08:00
thzxx
1771b1e326
bump: 版本号更新至 3.3.4
...
- package.json: 3.3.3 → 3.3.4
- src/renderer/index.html: 版本显示 v3.3.4
- README.md: badge、下载链接、构建分支引用
- docs/CHANGELOG.md: 版本链 + v3.3.4 更新日志
- docs/BUILD.md: 构建分支引用 + v3.3.4 构建日志
- docs/DEVELOPMENT.md: 版本号
2026-04-17 10:38:21 +08:00
thzxx
bc0025161e
fix: 修复记忆系统rule/preference不生效的问题
...
- searchMemoriesByKeyword: rule和preference类型始终注入,不再依赖关键词匹配
- 只有fact类型保留关键词匹配逻辑
- buildMemoryContext: 区分三类记忆的system prompt措辞
- rule: 【必须严格遵守的规则】无条件执行
- preference: 【用户偏好】请遵循
- fact: 【参考信息】无关可忽略
2026-04-17 10:33:44 +08:00
thzxx
5ee23387c0
fix: 修复Agent Loop工具调用重复问题,移除web_fetch截断
...
- 新增工具调用缓存机制,避免重复调用相同工具+参数
- 新增同轮内重复检测和跨轮次重复检测,连续两轮相同调用自动终止循环
- TOOLS_USAGE_GUIDE 新增第8条严禁重复调用规则
- web_fetch 默认不截断(max_chars=0),返回完整内容
- 移除 tool-registry.ts executeTool 中重复的 logToolStart 调用
2026-04-17 10:28:12 +08:00
thzxx
b2c3e6eb84
docs: 同步更新 README/DEVELOPMENT/BUILD 文档与实际代码一致
2026-04-16 20:02:35 +08:00
thzxx
a18b04a890
chore: 版本号更新至 3.3.2
2026-04-16 19:50:44 +08:00
thzxx
c62fd4c7fd
feat: run_command 改为下拉框设置自动/需确认/禁用三种模式
...
- 替换原有开关为下拉选择框(selectRunCommandMode)
- 新增 setRunCommandMode() 动态控制确认行为
- 需确认模式:弹窗确认后执行
- 自动模式:直接执行,无需确认
- 禁用模式:工具不可用
- 新增 .tool-card-badge.disabled 样式
- 状态从 runCommandEnabled(bool) 迁移为 runCommandMode(string)
2026-04-16 19:39:11 +08:00
thzxx
fe0daf7075
chore: 除 run_command 外所有工具改为自动执行无需确认
2026-04-16 19:32:03 +08:00
thzxx
5de4cfbabb
feat: 添加 web_search 联网搜索工具 (21个工具)
...
- 新增 web_search 工具:AI 可主动联网搜索获取实时信息
- 搜索引擎:DuckDuckGo 优先,Bing 作为备用
- 返回结构化结果:标题、URL、摘要
- 自动启用,无需用户确认(只读操作)
- 更新 README 工具列表和计数
2026-04-16 19:29:15 +08:00
thzxx
a67995166c
merge: develop into master
2026-04-08 13:34:20 +08:00
thzxx
03a396c730
fix: handleRunCommand 补全执行日志(安全检查、执行开始、完成、异常、终止)
2026-04-08 13:33:50 +08:00
thzxx
b087761d65
docs: 更新 DEVELOPMENT.md 5.3 工作空间与 AI 集成流程
2026-04-08 13:32:03 +08:00
thzxx
4c0f91dd41
docs: 开发规范合并到 DEVELOPMENT.md,删除多余的 CONVENTIONS.md
...
- DEVELOPMENT.md 新增版本号更新文件清单
- DEVELOPMENT.md 新增更新日志规范(只写 CHANGELOG.md)
- DEVELOPMENT.md 新增分支提交规则(不多分支推送)
- 删除重复的 docs/CONVENTIONS.md
2026-04-08 13:30:43 +08:00
thzxx
c8e14b8478
docs: 新增 docs/CONVENTIONS.md 开发规范
2026-04-08 13:27:51 +08:00
thzxx
060a5cc8d4
docs: README.md 移除历史版本记录,更新日志统一到 docs/CHANGELOG.md
2026-04-08 13:27:11 +08:00
thzxx
f0bad05494
chore: 版本号更新至 3.2.4
...
- package.json version 3.2.4
- README.md 版本徽章、下载说明、构建分支
- docs/CHANGELOG.md 新增 v3.2.4 版本说明,版本链补全 v3.2.3
- docs/BUILD.md 新增 v3.2.4 构建日志,构建分支引用
- src/renderer/index.html 应用标题版本号
2026-04-08 13:26:14 +08:00
thzxx
01b1b0e9c5
fix: 设置面板修改地址后同步更新顶部导航连接状态
2026-04-08 13:22:39 +08:00
thzxx
83fe7ba4ce
fix: 清理 TOOL_USAGE_GUIDE 中引用已删除字段的规则
2026-04-08 13:16:34 +08:00
thzxx
0431ed56c0
refactor: 命令执行走工作空间终端,AI 不再直接执行
...
流程改为:AI 提出命令 → 用户确认 → 工作空间终端执行(实时显示)→ 结果反馈 AI → AI 回复
- handleRunCommand 直接 spawn 子进程,stdout/stderr 实时通过 cmd:output 推送
- 进程结束后通过 cmd:done 通知渲染进程
- 停止按钮通过 cmd:kill 终止进程
- 清理 workspace.ts 中不再需要的 execWorkspaceCommand 工具集成代码
- 去掉 workspace:execTool/killTool,改为 cmd:output/cmd:done/cmd:kill
2026-04-08 13:12:18 +08:00
thzxx
d5e5f5f58a
feat: AI 命令执行实时流式推送到工作空间终端
...
- execWorkspaceCommand 新增 onOutput 回调,stdout/stderr 实时推送
- ipc.ts workspace:execTool 实时转发输出 + 发送 toolDone 完成通知
- 渲染进程 appendToolStreamOutput 流式显示,handleToolDone 显示退出状态
- 去掉 tool-handlers.ts 中的一次性完整输出推送
- 完整流程:用户确认 → 实时输出 → 完成通知 → AI 回复结果
2026-04-08 13:06:57 +08:00
thzxx
d150b53116
refactor: 工作空间去掉手动命令输入,终止时自动反馈 AI
...
- 移除工作空间终端的命令输入框和执行按钮
- 用户只能通过终止按钮中断卡住的 AI 命令
- 终止后自动通过 killTool IPC 终止进程,结果自动回传 AI
- 新增 workspace:killTool IPC 和 terminateCurrentToolCommand
- 新增终端底部状态提示(等待/执行中)
- 修复工作空间面板顶部对齐(90px → 92px)
2026-04-08 12:57:48 +08:00
thzxx
f9ad682f01
fix: AI Tool Calling run_command 输出同步到工作空间终端面板
...
- handleRunCommand 改用 execWorkspaceCommand 替代 Node exec()
- 执行完成后通过 workspace:toolOutput IPC 事件推送命令和输出
- 渲染进程监听 onToolOutput,在活跃终端显示 AI 命令及结果
- 清理 tool-handlers.ts 中不再需要的 child_process 导入
2026-04-08 12:47:36 +08:00
thzxx
d5f4112d97
fix: AI Tool Calling run_command 输出同步到工作空间终端面板
...
- handleRunCommand 改用 execWorkspaceCommand 替代 Node exec()
- 执行完成后通过 workspace:toolOutput IPC 事件推送命令和输出
- 渲染进程监听 onToolOutput,在活跃终端显示 AI 命令及结果
- 清理 tool-handlers.ts 中不再需要的 child_process 导入
2026-04-08 12:47:28 +08:00
thzxx
5800aaedd2
docs: 更新 BUILD.md,修正仓库地址并添加 v3.2.3 构建日志
2026-04-08 12:40:43 +08:00
thzxx
75a45de5f2
docs: 更新 BUILD.md,修正仓库地址并添加 v3.2.3 构建日志
2026-04-08 12:40:35 +08:00
thzxx
b9710b71e1
docs: 更新 README 和 CHANGELOG,添加 v3.2.3 版本说明
2026-04-08 12:33:22 +08:00
thzxx
e663878da0
fix: 修复 tool-registry.ts 缺少 logInfo 导入导致 run_command 工具调用异常
2026-04-08 12:26:43 +08:00
thzxx
f9eca2e524
v3.2.3: 工作空间面板改为常驻显示,固定宽度480px,不可关闭不可拖拽
2026-04-08 12:22:37 +08:00
thzxx
6a74b8b0d2
docs: 更新 README 和 CHANGELOG,添加 v3.2.2 版本说明
2026-04-08 12:14:50 +08:00
thzxx
38f12ab1d8
docs: 更新构建指南,补充 v3.2.2 构建问题排查与手动缓存方案
2026-04-08 12:11:50 +08:00
thzxx
d9e9416d35
feat: 工作空间与 AI Tool Calling 深度集成
...
核心变更:
- 新增 execWorkspaceCommand() 无超时进程执行(workspace.ts)
- 新增 workspace:execTool IPC 通道(无超时,5MB 输出上限)
- run_command 工具改用 workspace IPC,移除 30s 超时限制
- run_command 默认启用(需用户确认),AI 上下文注入工作空间目录
- Agent Loop 工具执行:run_command 无超时,其他工具保持 30s
- Agent 系统提示词新增工作空间规则(userTerminated/truncated 反馈)
UI 修复:
- Header z-index 提升至 50,Model Bar 提升至 40,Input Area 提升至 30
- 工作空间面板 top 调整为 90px(header + model-bar),不再遮挡菜单
- Input Area 增加 position: relative 确保 z-index 生效
其他:
- 新增 docs/DEVELOPMENT.md 开发规范文档
- 设置面板 run_command 开关文案优化,默认值改为 true
2026-04-07 22:24:58 +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
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
511f864221
Merge branch 'refactor/modular-architecture': v4.0.3 帮助弹框优化
2026-04-05 20:29:21 +08:00
thzxx
0fd12d4e7e
chore: 版本号升级至 v4.0.3,更新 README
2026-04-05 20:27:53 +08:00
thzxx
633ca5f8ea
feat: 帮助弹框新增 Agent 预设说明,完善设置描述
2026-04-05 20:26:56 +08:00
thzxx
b01a23668a
Merge branch 'master' into refactor/modular-architecture
2026-04-05 20:26:33 +08:00
thzxx
c7301902a7
Merge branch 'refactor/modular-architecture': Agent预设系统 v4.0.0~v4.0.2
2026-04-05 20:22:00 +08:00
thzxx
abebc56f82
chore: 版本号升级至 v4.0.2,更新 README
2026-04-05 20:16:41 +08:00
thzxx
27340d36b3
fix: 切换预设时 Think 按钮在模型不支持时不应显示激活态
2026-04-05 20:15:46 +08:00
thzxx
ac3d7a3685
docs: README 新增 Agent 预设系统详细说明
2026-04-05 20:10:54 +08:00
thzxx
039afa5f0b
chore: 版本号升级至 v4.0.1,更新 README
2026-04-05 20:08:51 +08:00
thzxx
8a8c5da968
feat: 设置面板新增温度(Temperature)滑块控制
...
- 设置面板新增温度滑块 (0~2, 步长0.1)
- 实时显示当前值,保存到 IndexedDB 持久化
- 切换预设时自动同步温度滑块 UI
- 应用启动时从 DB 恢复温度设置
2026-04-05 20:07:38 +08:00
thzxx
4b72a1fc5d
chore: 版本号升级至 v4.0.0,更新 README
2026-04-05 19:58:24 +08:00
thzxx
bc63ba9611
feat: Agent 预设系统 - 一键切换角色/工作模式
...
- 内置 6 个预设:默认、翻译官、代码审查、写作助手、数据分析师、学习导师
- 每个预设包含:系统提示词、温度、上下文长度、Think 开关
- 预设栏胶囊按钮,点击即切换,自动应用全部配置
- 支持创建/编辑/删除自定义预设,IndexedDB 持久化
- 切换预设时同步设置面板 UI + toast 提示
- 温度参数集成到聊天 API 调用
2026-04-05 19:55:45 +08:00
thzxx
2c475c0c8c
chore: 版本号升级至 v3.2.0,更新 README 更新日志
2026-04-05 01:59:40 +08:00
thzxx
be8ef7641e
style: 知识库弹框和帮助弹框视觉优化
...
- 知识库弹框: 加大至 900px/88vh,工具栏加边框背景,左侧分隔线
- 帮助弹框: 加大至 640px/88vh,各区块加左边线强调和背景
- 全局模态框: 更深毛玻璃、圆角 14px、入场缩放动画、头部渐变
- 快捷键表格: 带边框圆角、hover 高亮
- 文档/集合项: 更大 padding、hover 边框
2026-04-05 01:55:56 +08:00
thzxx
e97e2e4078
perf: IVF 倒排索引优化向量搜索 - K-Means 聚类 + nprobe 近邻检索
...
- N < 200 自动降级暴力搜索
- N ≥ 200 K-Means++ 聚类构建 IVF 索引
- nprobe=5 探测最近 5 个聚类,搜索量降 75%
- 索引持久化到 IndexedDB,数据变化自动重建
- 内存向量缓存 + Map O(1) 查找
2026-04-05 01:47:57 +08:00
thzxx
4c52650881
fix: setSelectedModel 触发 change 事件,恢复模型能力检测(Think/Vision)
2026-04-05 01:38:56 +08:00
thzxx
32e3bf848e
fix: RAG临时状态消息延迟到首个token到达时才清除,消除回复前的空白期
2026-04-05 01:32:08 +08:00
thzxx
b802c896cf
refactor: state 管理优化 - 结构化浅比较 + update/setIn/batch API
...
- state.js: 新增 shallowEqual、update()、setIn()、batch() 方法
- input-area.js: messages.push() 全部改为 state.update(),确保引用变化触发通知
- model-bar.js: 直接属性赋值改为 state.update(),修复 model 切换不触发变更检测
2026-04-05 01:27:24 +08:00
thzxx
2fa274e1b1
docs: README.md 全面重写
...
- 新增 Ollama API 调用清单(接口/方法/调用位置/用途)
- 新增流式聊天 NDJSON 数据格式说明
- 新增聊天请求参数完整示例
- 新增强制停止机制流程图
- 更新版本号至 v2.0.0
- 功能特性改为表格
- 设置项关联 API 参数
2026-04-03 13:21:34 +08:00
thzxx
194b402623
fix: 模型栏图标改为方块/列表,避免与 Think 灯泡重复
2026-04-03 13:17:59 +08:00
thzxx
66acfb7f3e
ui: 模型选择栏布局重设计
...
- 新增渐变图标指示器
- select 更大圆角 + 更粗边框 + hover/focus 渐变高亮
- 能力标签改为独立彩色 pill(Think 紫色、Vision 青色)
- 箭头图标改为青色
- model-bar.js 适配新 badge 元素
2026-04-03 13:10:00 +08:00
thzxx
7f842fc02e
ui: 导航按钮和 Think 按钮统一渐变风格
...
所有按钮统一为青紫渐变 + 发光风格:
- 导航按钮: 渐变背景、白色图标、hover 放大 + 光晕
- Think 按钮选中态: 渐变背景、白色图标,与发送按钮一致
- Think 按钮未选中: 玻璃态,hover 紫色放大
- 尺寸统一 40-42px,与发送按钮对齐
2026-04-03 13:05:25 +08:00