紫影233
94e0a36981
v0.16.12: 删除 8 个非必要工具 — get_file_info/diff_files/replace_in_files/random/uuid/json_format/hash/datetime
2026-07-16 17:47:02 +08:00
紫影233
a4b82b45bc
v0.16.9: 核心引擎深度分析修复 — 27 个问题(P0×8 + P1×19 + P2 死代码)
...
引擎层(agent-engine.ts):
- P0-R1: handleExecuting 中止改 throw AbortError,让主循环 catch 统一处理 UI 反馈
- P0-E1: executeToolWithTimeout 注释修正,明确 fire-and-forget 限制
- P0-P3: persistLoopContext 改名 snapshotLoopContext + 补全字段,明确语义为运行时快照
- P1-E1: handleInit 增加 isAborted 检查(loadCustomFiles 和 search 后)
- P1-E2: catch 块调用 snapshotLoopContext 确保终止状态写入
- P1-E3: onConfirmTool await 后检查中止信号
- P1-E4: flushAllTraces 改为 await
- P1-E5: 死锁检测 ephemeral 消息加入 PRESERVE_PATTERNS
- P1-E6: 记忆提取 setTimeout 存储到 _pendingMemoryTimers,finally 块清理
- P1-R5: handleExecuting 中止时设置 _abortToolRecords
上下文层(context-manager.ts + agent-engine.ts):
- P0-C1: 删除 nonSystemCompressed,旧摘要不再保留(已合并到新摘要)
- P0-C2: 部分删除 tool 消息时也 strip tool_calls,降级为纯文本 assistant
- P1-C1: handleCompressing 移除 shouldAutoCompress 二次判断,直接执行压缩
- P1-C2: COMPRESSING 状态增加中止检查
- P1-C3: R15 tail 边界保护 middle 无 assistant 时移除孤立 tool 消息
- P1-C4: 压缩接受条件改 AND(3 处:handleInit/R8/handleCompressing)
- P1-C6: head 中已压缩消息的 tool_calls 清除,避免累积膨胀
渲染层(chat-area.ts + input-area.ts + workspace-panel.ts):
- P0-R2: appendAssistantPlaceholder 重置 _streamLastRenderedLen/_streamLastRenderedHash/_streamRenderContent
- P1-R1: rAF 竞态通过重置 _streamRenderContent 解决
- P1-R2: clearMessages/clearMessagesDOM 重置 _sysPromptRendered
- P1-R3: onNewIteration 渲染顺序修正(remove → render → append)
- P1-R4: updateToolCardDOM 改用 querySelectorAll 取最后一个匹配
持久化层(chat-db.ts + sqlite.ts + ipc.ts + history-modal.ts):
- P0-P1: onNewIteration 调用 saveCurrentSession 持久化中间消息
- P0-P2: 非 AbortError 异常时保存 partial 消息(标记 interrupted: true)
- P1-P1: saveSession 增量保存(_savedMsgIds Set 追踪),resetSavedMsgTracking
- P1-P2: 新增 saveSettingsBatch 批量写盘接口 + IPC handler
- P1-P3: 删除死表 tool_calls 的 saveToolCall/getToolCallsBySession 函数和 IPC handler
死代码清理:
- chat-area.ts: 删除 appendToolCallCardToPlaceholder/updateToolCallCardInPlaceholder(从未调用)
- chat-area.ts: 删除 _streamRenderThink/_streamRenderModel 未使用变量
- input-area.ts: 删除 updateMessageToolRecord 空函数 + 对应 import
版本号 0.16.8 → 0.16.9
2026-07-16 15:53:28 +08:00
紫影233
bd3a06bfaf
v0.16.7: 引擎修复 + 工具面板统一 + AGENT.md 改为仅工作空间加载
...
核心引擎修复:
- 状态转换表补全 THINKING/PARSING/EXECUTING -> COMPRESSING,修复紧急压缩成为死代码的 P1 问题
- 新增跨轮次死循环检测器(软性提示 + 硬性熔断),防止模型陷入重复工具调用死循环
- handleCompressing 空响应回到 THINKING 而非 REFLECTING,避免错误终止
- executeHooks 添加 .catch() 防止未处理的 Promise 拒绝
- ALWAYS_PARALLEL 移除 git 和 browser_evaluate(有副作用的工具不应并行)
- thinking fallback:content 为空但有 thinking 时,用 [推理过程] 作为 content 保留上下文
- 8个写类工具添加专用格式化器(含 success + message 字段)
- 清理死代码:3个未使用函数 + 3个未使用 import
工具面板统一:
- 10个工具独立下拉框统一为1个全局执行模式选择器
- FIFO 队列防止并行 showToolConfirm 导致静默取消
- delete_file 支持 paths 数组参数批量删除
工具定义与实现一致性修复:
- run_command 移除未使用的 timeout 参数,描述改为"超时可配置"
- list_directory 添加 2000 条截断逻辑 + filter_extension 参数
- calculator 正则移除 ^ 字符(parser 用 ** 替代)
- search_files/tree/web_search/fetch_top 描述与实现对齐
消息传递修复:
- trimByTokenLimit 改为原子组选择(assistant+tool_calls 与后续 tool 消息作为一组)
- 历史工具结果复用 formatToolResultForModel,与当前格式一致
AGENT.md 加载策略变更:
- 删除内置 AGENT.md 文件
- 仅从工作空间加载:有则注入,无则跳过
其他修复:
- 修复初始化失败 "Cannot convert undefined or null to object"(saveSetting null 导致 JSON.parse 陷阱)
- 修复工作空间命令行标签页 idle 状态残留导致样式错乱
版本号: 0.16.5 -> 0.16.7
2026-07-14 16:26:43 +08:00
thzxx
e2350a784d
fix: 修复所有超时设置0=禁用不生效的问题
...
1. 流式超时: baseTimeout=0时被忽略,仍走动态计算120s-600s 2. HTTP超时: ipc.ts中0>0=false导致setHTTPTimeout未调用 + Math.max(5000,ms)阻止0值 3. MCP超时: 同HTTP模式 + Math.max(10000,ms)阻止0值 4. fetchWithTimeout和web_fetch中直接setTimeout在HTTP_TIMEOUT=0时仍触发abort
2026-07-11 15:38:28 +08:00
紫影233
7c78a65a9c
fix: 全面修复内置工具问题 + 架构缺陷修复 (v0.14.8)
...
P0: replace_in_files glob重写, search_files正则修复, list_directory递归分页修复, git stash/tag参数修复, buildSearchResponse query字段修复; P1: compress命令注入修复, run_command输出限制, download_file UA+重试; P2: web_fetch extract_mode/mobile_ua生效, read_multiple_files默认值对齐, CONFIRM_TOOLS扩展, 工具图标/名称映射补全; P3: random死代码清理, IPC类型补全; 架构: 系统提示词重复渲染修复, 版本号动态注入, 上下文余量字段修复, 工具记录丢失修复
2026-07-07 11:44:48 +08:00
紫影233
0903d740da
v0.13.0: 记忆系统重构 — MEMORY.md 文件化 + 路径保护 + 自动提取优化
...
核心变更:
- 删除 SQLite memories 表 + FTS5 + IVF 向量存储引擎 (~1300行)
- 4 个记忆工具合并为 1 个 memory 工具 (5 action)
- 记忆存储改为工作空间 MEMORY.md 单文件,严格格式校验
- 路径保护: checkPathAllowed 拦截所有工具,仅 memory 专用 IPC 通道可访问
- 应用启动/工作空间切换时自动校验并初始化 MEMORY.md(格式错误自动备份重建)
- 自动记忆提取重建: 对话结束时触发,多层质量过滤(内容/泛化/去重/安全/importance门槛)
- 工具总数: 42→40,UI 全面更新(帮助面板、工具面板、设置面板、README)
- 版本号更新: 0.12.11 → 0.13.0
2026-06-24 14:49:09 +08:00
紫影233
d7275b08e8
v0.12.10: 修复工作空间目录设置不生效 + 版本号更新
...
fix: 工作空间目录设置三处断链修复
- ipc.ts: setDir 时持久化到 SQLite,启动时自动恢复
- settings-modal.ts: 设置成功后通知 workspace-panel 刷新
- workspace-panel.ts: 监听目录变更事件,立即重载文件列表
chore: 版本号 0.12.9 → 0.12.10
2026-06-24 10:58:49 +08:00
thzxx
2d3ea85255
v0.12.9: Completion Gate 架构修复 + 工作空间文件夹选择 + 搜索/Plan 全链路加固
...
Fix:
- Completion Gate read_file 误报消除 — 缩窄匹配为仅明确工具声明 + 写后读豁免
- Gate 阻断重试消息重写 — 待办中与 Gate 拦截匹配时明确要求调工具而非模糊修正
- FileWriteDedupHook (pre_tool) + PlanAutoTrackHook (post_tool) — Harness 插件化
- 工作空间浏览按钮修复 — openFile→openDirectory,原生文件夹选择对话框
- pre_tool Hook 执行结果可阻断 — HookResult.passed=false 时拦截工具执行
- Plan 步骤上限 6 + 动词过滤 + 阶段标题过滤 — 适配不同模型格式
- Plan Mode 任务描述固化到系统提示词 — 压缩后不丢失任务目标
- 全部完成信号去重 — system 消息不重复注入
- handleReflecting 空响应 pop() 精确定位最后 assistant 消息
Refactor:
- agent-engine.ts 移除全部硬编码模块变量和函数 — 迁移到 Hook 系统
- extractPlanSteps 增加 ACTION_VERBS 动词过滤
- Plan rejection 不再重置 loopCount
2026-06-23 22:46:00 +08:00
紫影233
042e00e4a6
v0.12.3: 全面审计修复 + 稳定性加固 + 文档更新
...
P0 安全/稳定性修复 (6项):
- sqlite persist 改用临时文件+rename,I/O错误日志
- IPC fs 处理器加入 checkPathAllowed 路径验证
- handleCompress 命令注入修复 + 跨平台 (powershell/tar/zip/unzip)
- browser 全页截图简化,使用 capturePage full rect
- workspace 竞态条件修复
- editFile 5MB 大小限制
P1 安全/稳定性修复 (7项):
- 大小写不敏感搜索: query 同步转换小写
- web_fetch 无 content-length 时流式读取+10MB限制防OOM
- Windows SIGTERM 改用 taskkill /PID /T /F 强制终止
- startsWith 路径检查 Windows 大小写不敏感
- 安全黑名单扩展: 33个目录路径 + 30条危险命令 (Linux+Windows)
- plan_track stepIndex 改用 typeof === 'number' 精确检查
- MCP 前缀改用双下划线分隔 mcp_{server}__{tool} 防歧义
P2 代码质量修复 (8项):
- 修复 EXECUTING→THINKING 死循环Bug (转换表缺失)
- COMPRESSING 硬上限绕过时同步 _loopState 全局状态
- Abort 路径补齐 onDone 回调, 防止UI状态残留
- 幻觉检测从4条扩展到16条规则, 覆盖全部工具类别
- 移除 getTokenEfficiency 死代码
- 跨平台路径清理 (replace(/[\/]+$/, ''))
- 动态 import 加 try/catch, 失败自动批准不阻断
- #modelSelect 加 null 守卫, 防止运行时崩溃
文档 & UI 更新:
- README.md: 版本号/特性表/架构图/安全机制/工具清单全面刷新
- 帮助面板: 新增 Plan Mode、抗幻觉&稳定性章节, Agent Loop补8状态机
- 工具面板: plan_track卡片 + plan-mode徽章样式, 标题更新为42+1
- 工作空间面板宽度: 480px → 400px
- 源码注释移除所有版本标签, 仅保留4处必要位置
- 版本号 0.12.2 → 0.12.3
2026-06-23 17:06:43 +08:00
thzxx
20cbfbd169
v0.11.11: 彻底移除技能系统,工具 44→42,SQLite 7→6 张表
...
- 删除 src/renderer/services/skill-manager.ts (480行)
- sqlite.ts: 删除 skills 表/索引/迁移/SkillRow接口/CRUD
- ipc.ts: 删除 6 个 skills IPC handler
- preload.ts/types.d.ts: 删除 skills bridge 方法/类型
- agent-engine.ts: 删除技能匹配上下文注入/自动提取
- tool-registry.ts: 删除 skill_list/skill_view 工具定义/执行
- log-service.ts/sub-agent.ts/workspace-panel.ts: 清理引用
- index.html: 帮助面板/工具卡片更新,44→42
- README/release-notes/DEVELOPMENT/AGENT: 文档全量同步
2026-06-22 18:13:01 +08:00
thzxx
37189dafa8
refactor: 视频提取日志原地更新,复用 logStreamProgress 模式
...
- 新增 resetVideoProgress/updateVideoProgress/finishVideoProgress
- 日志面板中视频提取只占一条,实时更新帧数和状态
- 主进程只通过 video:progress IPC 推送原始帧数,不写日志
2026-06-18 11:48:35 +08:00
thzxx
abd3dfde72
refactor: 视频提取进度实时更新卡片,不再刷日志面板
...
- 主进程通过 video:progress IPC 推送当前帧数
- 前端监听进度事件,直接更新视频芯片的 meta 文本
- 日志面板只保留开始和完成两条记录
2026-06-18 11:45:31 +08:00
thzxx
52c0c3aff5
feat: 视频提取增加开始日志和实时进度推送
...
- 提取开始时发送 '开始提取视频帧' 日志
- ffmpeg 执行中每秒解析 stderr 的 frame=N 输出并推送进度
- 完成日志从 info 改为 success 级别
2026-06-18 11:42:42 +08:00
thzxx
d5a8592317
fix: 去掉 ffprobe 依赖,改用 ffmpeg stderr 解析视频信息
...
ffmpeg-static 不含 ffprobe.exe,改为从 ffmpeg -i 的 stderr 输出中正则解析时长和分辨率。
解析失败则从 1fps 帧数反推时长。
2026-06-18 11:22:35 +08:00
thzxx
3d656c2d8e
fix: 打包 ffmpeg-static 解决 Windows 无 ffmpeg 问题
...
- 新增 ffmpeg-static 依赖,自动解析 ffmpeg/ffprobe 路径
- 优先使用内置二进制,回退系统 PATH
- ASAR 解包配置确保二进制可执行
2026-06-18 11:08:59 +08:00
thzxx
5ed9a1f9f6
feat: 视频上传支持 (v0.11.7)
...
- 新增视频上传按钮,支持 mp4/avi/mov/mkv/webm (≤10MB)
- ffmpeg 1fps 提取帧序列,自动缩放至512px,带时序标注
- 消息中注入帧序列时间线,多模态模型原生理解视频时序
- 视频按钮与 vision 模型能力自动联动
- 版本号 0.11.6 → 0.11.7,同步更新 README/帮助面板/菜单
2026-06-18 10:58:55 +08:00
thzxx
a336a66516
v0.11.5: 搜索抓取增强 + 流式进度修复 + 超时/写入容错
...
feat: 搜索面板新增认证类型 Bearer/Basic,自动抓取条数/类型(顺序/随机)
feat: 随机抓取失败自动从未抓取池补1条,上限移除
fix: write_file 缺 path 时返回引导性报错(含工作空间路径+平台示例)
fix: Ollama tool_calls arguments JSON字符串解析
fix: 流式进度日志不再删除,改为完整时间线记录
fix: 进度日志同步appendChild确保排在工具日志之前
fix: 超时设置面板/主进程 remove max上限
chore: 版本号 0.11.4 → 0.11.5
2026-06-13 21:35:22 +08:00
thzxx
366824c00a
feat: 日志面板显示搜索模式(SearXNG/内置),结果带_mode标记
2026-06-12 13:15:21 +08:00
thzxx
933ce7a082
v0.11.1: Agent Loop稳定性增强 + 6个系统工具 + 搜索引擎替换
...
【Agent Loop 稳定性】
- P0-1: 工具消息硬限制40条,超出自动删旧
- P0-2: 截断周期从5轮缩短为3轮
- P1-1: 增量记忆提取改为fire-and-forget
- P1-2: TOOLS_WITH_DATA_DEPS精简为仅web_fetch
- P2: 重复检测改为注入警告而非强制终止
- Final Answer检测增强: >300字自动放行 + 收紧反过早停止
【新增工具】(40→44)
- datetime: 系统精确时间(中文日期+时段+人性化)
- calculator: 安全数学计算(递归下降解析器)
- random: 随机数/随机选择(int/float/pick/string)
- uuid: UUID v4生成(crypto.randomUUID)
- json_format: JSON格式化+验证+键排序
- hash: MD5/SHA1/SHA256/SHA384/SHA512
【搜索引擎替换】
- Google+DuckDuckGo → 搜狗+360搜索
- 四引擎变为: Bing+百度+搜狗+360搜索
【删除】
- 联网搜索代理全部代码(search-proxy/ + 7文件代理逻辑)
- https-proxy-agent依赖
【UI】
- 模型栏: 上下文总长(蓝色)+剩余上下文(绿色)实时显示
- 设置面板上下文长度移至模型栏
- SOUL.md/AGENT.md精简为纯抽象定义
【系统提示词】
- OS环境信息改为从preload同步获取真实值(os.homedir/os.arch/os.userInfo)
2026-06-11 22:07:46 +08:00
thzxx
53dec75528
fix: 代理改用undici ProxyAgent显式指定,不再依赖环境变量(更可靠)
2026-06-10 15:50:52 +08:00
thzxx
3f11e7c3cd
feat: 设置面板添加代理配置 — web_search/web_fetch走HTTP代理(Clash等)
2026-06-10 15:38:56 +08:00
thzxx
e2bd511489
refactor: 删除append_file工具,功能合并入write_file(mode=append),工具数39→38
2026-06-10 14:42:25 +08:00
thzxx
b3de861faf
feat: 浏览器控制工具全面增强 — browser_open(wait_selector)/screenshot(full_page+selector)/extract(selector+max_chars)/click(wait滚动到视图)/type(clear+submit)/scroll(selector)/新增browser_wait
2026-06-10 14:23:56 +08:00
thzxx
6390457312
feat: v0.10.2 - 可配置超时设置 + 默认值提升
...
- HTTP超时: 15s→30s(可配5s~300s), MCP超时: 30s→60s(可配10s~300s), 流式超时: 180s→300s(可配0~600s)
- 设置面板新增超时配置区域(HTTP/流式/MCP),留空使用默认值
- 主进程HTTP_TIMEOUT/MCP_TIMEOUT改为可配置变量,通过IPC setTimeouts通道接收
- 帮助面板/README/release-notes更新四引擎搜索和超时描述
- 版本号同步更新至v0.10.2(16处)
2026-06-10 09:39:59 +08:00
thzxx
15b4895351
fix: replace 'as any' with proper type assertion for git tool args
...
The git tool handler in ipc.ts was using 'args as any' to bypass type
checking. Replaced with the explicit typed params interface matching
handleGit's signature to maintain type safety.
2026-04-24 13:56:30 +08:00
Metona Dev
5fafaa691f
feat: Token 仪表盘支持全局统计,跨会话累计 Token 分析
2026-04-24 12:53:50 +08:00
Metona Dev
a6d38ed9cb
fix: 工具面板/帮助面板同步更新 + 图片上传限制
...
- 工具面板: 20→29个工具,补齐 web_search/memory_*/session_*/spawn_task/browser_*
- 帮助面板: 工具数量21→29,新增人格模式/MCP/Cron/Heartbeat说明,补充/retry等命令
- 图片上传: preload透传完整options,ipc尊重multiple参数,图片选择器限制单文件
2026-04-18 10:42:58 +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
8ea7a056f3
fix: 修复 TypeScript 编译错误
...
- browser.ts: 移除 loadURL 不支持的 timeout 参数
- ipc.ts: 修正 browserScroll direction 参数类型断言
2026-04-18 09:42:41 +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
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
16266ebdde
refactor: 数据库层从 better-sqlite3 迁移到 sql.js (WASM)
...
- 替换原生依赖 better-sqlite3 为纯 WASM 的 sql.js,消除 Electron ABI 版本不匹配问题
- 新增 sql.js 兼容层:runExec/queryOne/queryAll/runPragma/runTransaction
- initDatabase() 改为异步(WASM 加载需要)
- 每次写操作后自动 persist() 到磁盘
- electron-builder 配置:extraResources 打包 sql-wasm.wasm
- 移除 @electron/rebuild 依赖和 postinstall 脚本
- 设置 npmRebuild: false(不再需要原生模块重编译)
2026-04-17 16:26:53 +08:00
thzxx
26cbac71fe
feat: v4.0.0 大版本升级 - SQLite3 + ReAct Agent
...
- P0: 存储层 IndexedDB → SQLite3 (better-sqlite3),7张表 + FTS5全文搜索
- P1: Agent Engine 升级为 ReAct 模式(思考→行动→观察→反思)
- P2: 新增 4 个工具(memory_search, memory_add, session_list, session_read)
- P3: 上下文管理器(滑动窗口 + 摘要压缩 + 记忆注入)
- P4: UI 改版(ReAct 执行面板样式 + 思考过程卡片)
- P5: IndexedDB → SQLite 数据迁移支持
- MAX_LOOPS 10→15, MAX_LOOP_TIME 5min→10min, 错误自动重试 2 次
2026-04-17 12:35:42 +08:00
thzxx
5de4cfbabb
feat: 添加 web_search 联网搜索工具 (21个工具)
...
- 新增 web_search 工具:AI 可主动联网搜索获取实时信息
- 搜索引擎:DuckDuckGo 优先,Bing 作为备用
- 返回结构化结果:标题、URL、摘要
- 自动启用,无需用户确认(只读操作)
- 更新 README 工具列表和计数
2026-04-16 19:29:15 +08:00
thzxx
2b8f53bc81
fix: resolve TS2339 error in ipc.ts - cast result.error to String
2026-04-16 10:46:56 +08:00
OpenClaw Agent
7c22405386
feat: 全面补充工具执行日志
...
- IPC 分发层:所有工具执行后自动记录成功/失败日志
- 新增 summarizeResult 函数:为每个工具生成可读的结果摘要
- move_file/copy_file/web_fetch:新增操作前后的详细日志
- 日志面板实时显示:工具名 + 结果摘要 + 错误详情
示例:
🔧 tool:execute move_file → 📦 move_file 完成
🔧 web_fetch ✓ → 200 | 5432 chars
🔧 edit_file ✗ → 未找到要替换的文本
2026-04-16 10:09:09 +08:00
OpenClaw Agent
80158cb5bf
feat: git 工具升级为全操作支持(16 个子操作)
...
git 工具支持的操作:
- status: 查看状态(分支/修改/暂存/未追踪/删除/重命名)
- log: 提交历史
- diff: 差异查看(支持 staged)
- add: 暂存文件
- commit: 提交
- push/pull: 推送/拉取
- branch: 列出/创建/删除分支
- checkout: 切换分支
- merge: 合并分支
- stash: 暂存更改
- remote: 查看/添加远程仓库
- clone: 克隆仓库
- init: 初始化仓库
- reset: 重置
- tag: 标签管理
全部自动执行,无需用户确认
2026-04-16 09:55:33 +08:00
OpenClaw Agent
396100335a
feat: 工具扩展至 20 个,新增 8 个实用工具
...
新增工具:
- get_file_info: 获取文件详细元数据(自动)
- tree: 树形目录结构展示(自动)
- download_file: URL 下载文件到本地(需确认)
- diff_files: 两个文件对比差异(自动)
- replace_in_files: glob 批量查找替换(需确认)
- read_multiple_files: 批量读取多个文件(自动)
- git_status: Git 仓库状态查看(自动)
- compress: 创建/解压 zip/tar.gz(需确认)
2026-04-16 09:50:52 +08:00
OpenClaw Agent
4099b5180f
feat: 工具调用扩展,新增 5 个实用工具(共 12 个)
...
新增工具:
- move_file: 移动/重命名文件(需确认)
- copy_file: 复制文件/目录(需确认)
- web_fetch: 抓取网页内容,自动提取文本(自动)
- append_file: 追加内容到文件末尾(需确认)
- edit_file: 文件内查找替换,支持全部替换(需确认)
同步更新:
- 主进程 IPC 分发
- 工具安全检查(路径白名单)
- 设置面板工具列表 UI
- 帮助文档工具说明
2026-04-16 09:38:52 +08:00
thzxx
21d774fab4
fix: 图片/文件读取改用 base64,修复 atob Latin1 错误
...
- 主进程新增 fs:readFileBase64 IPC,读 Buffer 直接返回 base64
- 图片读取从 atob 转换改为直接使用 readFileBase64
- .metona 备份导入同理修复
- 根因:fs:readFile 用 utf-8 编码读取二进制文件,UTF-8 多字节序列超出 Latin1 范围导致 atob 失败
2026-04-08 16:46:22 +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
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
34a6b9fd0b
chore: 清除所有 console.log,主进程日志接入执行日志面板
2026-04-07 19:49:30 +08:00
thzxx
0e1f216aa4
feat: 添加工作空间面板 - 右侧终端/文件浏览器
...
- 新增主进程 workspace.ts:spawn 进程管理,流式输出,安全检查
- IPC 双向通信:workspace:exec(on/send 模式,无超时限制)
- preload 暴露 workspace API
- 渲染进程 workspace-panel.ts:多终端 Tab、ANSI 颜色渲染、文件浏览器
- 设置面板添加工作空间目录配置
- 启动时自动创建 workspace 目录
- 窗口关闭时自动清理所有子进程
- 帮助文档更新
2026-04-07 18:30:45 +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
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
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
7ca0e33d77
feat: TypeScript + Electron v2 重构 - 纯桌面版
...
- 全面迁移到 TypeScript,严格类型定义
- 放弃 Web 版,专注 Electron 桌面应用
- 主进程模块化:main.ts, preload.ts, menu.ts, tray.ts, ipc.ts, utils.ts
- 渲染进程完整迁移所有功能组件
- 删除 PWA 相关文件 (sw.js, manifest.json)
- 删除 Web 版降级逻辑
- 保留所有核心功能:流式对话、多模型、Think推理、多模态、RAG知识库、Agent预设、历史管理
- 保留 Windows 11 Fluent Design 暗色主题样式
2026-04-06 03:04:20 +08:00