thzxx
42eadaccc9
fix: README系统工具数量2→6
2026-06-11 22:11:50 +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
b5d8d08986
fix: Google引擎改用StartPage — Google直连反爬需要JS验证
2026-06-10 18:23:59 +08:00
thzxx
718cd98e00
feat: 加 /debug 端点查看搜索引擎原始 HTML
2026-06-10 18:20:47 +08:00
thzxx
68fffb4ce4
docs: README编译命令加 GO111MODULE=off 兼容说明
2026-06-10 18:17:31 +08:00
thzxx
aba8cbcb54
fix: 百度正则也移除前瞻(?=)
2026-06-10 18:15:13 +08:00
thzxx
9c8f2c9ac4
fix: 移除正则前瞻断言(?=) — Go regexp不支持
2026-06-10 18:13:16 +08:00
thzxx
753bd41167
Revert "fix: 兼容旧版Go — atomic.Int64→int64+atomic, any→interface{}, os→ioutil"
...
This reverts commit f68863e49b .
2026-06-10 18:08:53 +08:00
thzxx
f68863e49b
fix: 兼容旧版Go — atomic.Int64→int64+atomic, any→interface{}, os→ioutil
2026-06-10 18:06:44 +08:00
thzxx
9bbfff7e38
feat: metona-search-proxy v2.2 — Google新版解析+正则预编译+缓存清理+/stats端点+状态码日志
2026-06-10 17:46:05 +08:00
thzxx
2e4041a354
docs: README加 -start 带参数示例
2026-06-10 17:42:48 +08:00
thzxx
e4c903557d
feat: metona-search-proxy v2.1 — CLI管理(start/stop/status/restart)+PID文件+端口占用检测+两种部署方式
2026-06-10 17:34:20 +08:00
thzxx
b8266fd495
feat: metona-search-proxy v2 — CLI命令/端口7899/百度引擎/详细README
2026-06-10 17:21:19 +08:00
thzxx
87f80dd11e
feat: search-proxy v2 — 加百度引擎+限流(30rps)+优雅关闭+panic恢复+连接池+端口18080
2026-06-10 17:15:38 +08:00
thzxx
74a5a5609b
feat: 香港服务器搜索代理 search-proxy (Go) — Google/Bing/DDG直连API
2026-06-10 17:06:36 +08:00
thzxx
7f3f4d3914
fix: 代理改用 https.request+HttpsProxyAgent 直连,绕过 undici fetch 兼容问题
2026-06-10 16:22:13 +08:00
thzxx
c718d99108
fix: 代理失败日志增强 + undici ProxyAgent参数修正
2026-06-10 16:09:47 +08:00
thzxx
25809c1532
fix: 添加 https-proxy-agent 依赖,解决代理DNS解析问题
2026-06-10 16:00: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
3c54f15218
fix: git卡片描述过长超出边界,精简为一行
2026-06-10 15:18:13 +08:00
thzxx
f7e2843d4c
fix: 修复编译错误 — handleAppendFile残留引用 + _enhanced类型断言
2026-06-10 15:08:20 +08:00
thzxx
463071254d
fix: README web_search表格格式修复(多出的|),中英文两处
2026-06-10 15:00:08 +08:00
thzxx
80c5f40f2a
docs: 图标改回相对路径
2026-06-10 14:59:01 +08:00
thzxx
480272598c
fix: README图标改用Gitee raw URL,修复相对路径不显示问题
2026-06-10 14:55:13 +08:00
thzxx
7c35da4900
docs: README修复 — 文件系统17→16/删除append_file/修复表格格式/更新英文部分/工具描述同步
2026-06-10 14:53:03 +08:00
thzxx
c8cafbe58e
fix: 修复Agent Loop过早停止 — 无tool_calls时检测是否任务未完成+注入继续提示+AGENT.md加强规则
2026-06-10 14:48:12 +08:00
thzxx
5bbd8b720c
chore: 版本号 v0.10.3 → v0.11.0
2026-06-10 14:44:28 +08:00
thzxx
e2bd511489
refactor: 删除append_file工具,功能合并入write_file(mode=append),工具数39→38
2026-06-10 14:42:25 +08:00
thzxx
1e89f52d42
docs: 工具面板卡片全面更新 — 28个卡片描述反映实际能力+新增browser_wait卡片
2026-06-10 14:38:41 +08:00
thzxx
632470a26d
docs: 更新README/帮助面板/工具面板 — 38→39个工具/browser_wait/v0.10.3/增强特性描述
2026-06-10 14:36:24 +08:00
thzxx
5a38acce03
feat: 系统提示词注入OS环境信息(不可压缩)+日期标记不可压缩+run_command返回cwd信息
2026-06-10 14:31:47 +08:00
thzxx
06fdb9c457
refactor: 删除工具面板开关,Tool Calling 代码写死永久开启
2026-06-10 14:26:57 +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
d6cf7d846f
feat: 5个文件系统工具增强 — list_directory(2000)/edit_file(regex)/delete_file(返回大小)/read_multiple(50文件10KB)/tree(深度5)
2026-06-10 14:19:03 +08:00
thzxx
04f2446337
feat: write_file 全面增强 — base64写二进制/mode(overwrite+append)/覆盖提示/10MB/返回行数+文件大小
2026-06-10 14:15:26 +08:00
thzxx
da249d43de
chore: read_file 默认行数 500→2000
2026-06-10 14:12:55 +08:00
thzxx
751f548b0c
feat: read_file 全面增强 — binary模式/字节分页/5MB限制/截断提示hint/offset_bytes+limit_bytes
2026-06-10 14:11:08 +08:00
thzxx
f8842f195e
feat: web_search 智能增强 — 时间范围过滤/智能排序(可达+权重+质量)/摘要自动增强/tool参数扩展
2026-06-10 14:06:15 +08:00
thzxx
b57fd0f7e4
feat: web_fetch 全面增强 — 反爬headers/Sec-Fetch/UA自动切换/403自动回退浏览器渲染
2026-06-10 14:01:54 +08:00
thzxx
499c68d96f
fix: 流式回调(onThinking/onContent)传入模型名,确保每条AI回复都显示模型标签
2026-06-10 13:30:25 +08:00
thzxx
46d04108e0
fix: artifactName 改用 ${version} 变量,避免打包出旧版本号文件
2026-06-10 13:20:49 +08:00
thzxx
23918b8223
chore: v0.10.3 — 选择支持think的模型自动启用思考模式, 修复AI回复不显示模型标签, 版本号升级
2026-06-10 13:14:58 +08:00
thzxx
f334c6b31e
fix: 超时迁移只执行一次——用_timeout_v2_migrated标记避免误迁移用户设置的0
2026-06-10 10:05:50 +08:00
thzxx
efb7cc1241
fix: 兼容旧版超时数据——旧版0值自动迁移为-1(默认)
2026-06-10 10:04:46 +08:00
thzxx
3a6516ed76
fix: 超时设置三个输入框独立处理,改一个只打印一条日志
2026-06-10 10:03:04 +08:00
thzxx
99ef9a5078
chore: 超时设置日志改回debug级别
2026-06-10 09:55:32 +08:00
thzxx
0489952ceb
fix: 超时设置0值(禁用)无法保存的bug
...
- 保存值改用-1表示默认, 0表示禁用, 正数表示自定义秒数
- 修复parseSec区分空字符串和0值
- loadTimeoutSettings/main.ts初始化同步更新判断逻辑
- 补全types.d.ts中setTimeouts类型声明
2026-06-10 09:54:20 +08:00
thzxx
9559390d4d
fix: 超时设置日志从debug级别改为info级别,初始化时打印汇总日志
2026-06-10 09:51:07 +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
64264cc0f8
v0.10.1: 修复显存泄漏 + 删除普通聊天模式 + Tool Calling 始终开启
...
fix: ollama.ts - chat() 添加默认 keep_alive: '1h',chatStream done 时不再 reader.cancel()
refactor: 删除普通聊天模式,所有消息统一走 Agent Loop
refactor: Tool Calling 开关始终开启且不可关闭
chore: 版本号 0.10.0 → 0.10.1 (12 处)
docs: 更新帮助面板和 README 反映架构变更
2026-06-06 12:06:48 +08:00
thzxx
c9adc764ae
feat: v0.10.0 — 全面增强网络搜索、Agent Loop、工具稳定性与性能
...
网络搜索增强:
- web_search: 4引擎并行(Bing+百度+DuckDuckGo+Google), LRU缓存5min, URL可达性预检, 结构化JSON输出
- web_fetch: 自动重试(指数退避2次), 移动端UA切换, SPA页面自动升级浏览器渲染
Agent Loop增强:
- 流式调用超时保护(默认180s可配置)
- Final Answer多模式检测 + 内容长度验证
- 预算警告改用ephemeral标记(context优先丢弃)
- Token感知动态迭代预算(>80%自动缩减到3轮)
- 工具缓存TTL(搜索5min/网页10min/文件30min)
- 自动子任务拆解(并行关键词检测+spawn子代理)
- 增量记忆提取(每20轮触发)
- 智能批次划分: 16个只读工具加入ALWAYS_PARALLEL白名单
- 旧工具结果超过10轮自动截断到500字符
工具增强:
- read_multiple_files: 串行→并行Promise.all
- diff_files: 三级回退(diff -u → git diff → builtin)
- search_files: 新增use_regex正则搜索
- list_directory: 新增offset分页
- Git: stash参数修复, clone/push/pull超时保护
- browser: 提取ensureBrowserReady()消除重复, browser_open切换URL自动重建
文档更新:
- 帮助面板新增Agent Loop v0.10.0增强章节
- README中英文同步更新(四引擎搜索/工具描述)
- SOUL.md/AGENT.md更新(v0.10.0能力描述/SPA规则翻转)
2026-06-05 21:20:03 +08:00
thzxx
2217113014
feat: v0.9.1 — 图片压缩、文件token预算截断、并行上传、文档同步
...
- 图片上传: Canvas前端压缩(1280px等比缩放+JPEG), 300KB以下跳过
- 文件上传: Token预算感知截断(30% numCtx), 26种语言注释剥离
- 性能: handleImagePaths/handleTextFilePaths 并行化(Promise.all)
- sub-agent.ts: 修复3个TS编译错误(tool_name类型, success重复)
- 版本号: 全项目统一至0.9.1(10处)
- 文档: BUILD.md/DEVELOPMENT.md 同步实际架构, 移除过期分支引用
- README: 组件列表修正(log-panel.ts→prompt-modal.ts)
- 帮助面板: 更新图片/文件上传描述
2026-06-05 11:32:40 +08:00
thzxx
7b9ac8ac13
spawn_task 模型校验:指定不存在的模型自动回退
...
- tool description 提示 AI 优先用小模型,不指定则用设置默认值
- 运行时校验:列出已安装模型,指定模型不存在则 warn + 回退
- 导入 state/KEYS 替代 window 全局变量
2026-06-05 10:58:45 +08:00
thzxx
f4a92fc40f
设置面板新增子代理默认模型选择器
...
- 向量记忆引擎下方新增「子代理默认模型」下拉框
- 留空则跟随当前模型,选择后所有 spawn_task 默认使用该模型
- spawn_task 工具仍支持单次指定 model 参数覆盖默认值
2026-06-05 10:56:08 +08:00
thzxx
da71020003
spawn_task 支持指定子代理模型
...
- 工具定义新增 model 参数,可指定小模型跑简单任务
- learn_task 子代理说明更新:展示只读工具能力
2026-06-05 10:52:47 +08:00
thzxx
2d03c5f348
子代理增强:支持只读工具调用 + 可配置参数 + 10轮/5分钟
...
- 15 个只读工具可用:文件读取、搜索、浏览器查看、记忆/会话/技能查询
- 内置 mini Agent Loop,独立执行工具调用链
- 可配置 maxLoops / timeout / model
- agent-engine 批次并行已天然支持多个 spawn_task 并行
2026-06-05 10:50:14 +08:00
thzxx
361e58b8d1
调整提示词顺序:USER.md 移至 AGENT.md 之后、记忆/工作空间之前
2026-06-05 10:10:17 +08:00
thzxx
9a101b8a44
chatStream 默认 keep_alive=1h,防止模型在 Agent Loop 多轮调用后被 Ollama 服务端卸载
2026-06-05 10:04:02 +08:00
thzxx
34aa16fa3e
修复 README 特性表格行号污染
2026-06-05 09:41:16 +08:00
thzxx
ac5e3e1efc
更新帮助面板和 README:新工作空间文件文档,v1.1.0 → v0.9.0
...
- 帮助面板 SOUL.md 改为 SOUL.md/AGENT.md/USER.md 三个自定义文件
- 去掉技能自动生成 (v1.1) 版本标注
- README 版本号、特性表、架构图、快速开始同步更新
2026-06-05 09:39:17 +08:00
thzxx
988efd1733
v0.9.0: SOUL.md/AGENT.md/USER.md 化为工作空间文件,去掉代码内硬编码提示词
...
- 版本号 v1.1.0 → v0.9.0
- AGENT_SYSTEM_PROMPT + TOOL_USAGE_GUIDE 提取为 AGENT.md(工作空间优先,内置 fallback)
- SOUL.md 同级改造(工作空间优先,内置 fallback)
- 删除 inferUserProfile 自动用户画像,改为 USER.md 手动编辑
- 三个 .md 内置版本放在 src/renderer/public/(Vite publicDir 自动复制)
2026-06-05 09:35:39 +08:00
thzxx
968350861d
fix: 系统提示词卡片包含 SOUL.md 内容
...
state.set('_lastSystemPrompt') 改为从 messages 中拼接所有 system 消息,
确保 SOUL.md 也出现在 AI 回复顶部的折叠卡片中。
2026-06-04 22:04:54 +08:00
thzxx
846fa0f111
docs: 更新 README v1.1 特性 + 帮助面板实际内容
...
- README: 新增 SOUL.md/技能v1.1/上下文自动检测/系统提示词卡片特性
- README: 架构图加入 SOUL.md 不可压缩层 + 技能匹配层
- helpModal: 新增 SOUL.md 自定义人格、技能v1.1、Token实时监控说明
- helpModal: 更新聊天功能、上下文长度自动检测描述
2026-06-04 21:51:51 +08:00
thzxx
db6cb8d2cc
feat: v1.1.0 — 上下文引擎重构 + 技能系统升级 + SOUL.md 支持
...
- 版本号更新: 1.0.0 → 1.1.0,全量同步 package.json/lock/README/docs/UI
- 上下文长度自动检测: 切换模型时从 model_info 读取实际 context_length
- SOUL.md 支持: 每次发送自动扫描工作空间 SOUL.md,注入为首条 system 消息且不可压缩
- 系统提示词卡片: AI 回复顶部可折叠展示实际发送给模型的完整 system prompt
- Token 校准: 利用 Ollama 返回的实际计数动态修正估算器(EMA)
- 消息重要性评分: 纯规则打分,trim/summarize 按重要性而非时间顺序
- 结构化压缩: LLM 压缩输出 JSON 格式(topics/decisions/pendingTasks/constraints)
- 技能系统 v1.1: 语义匹配(embedding) + 参数自优化 + 未使用衰减 + 技能链合并
- 修复: 100+ TypeScript strict 模式编译错误清零
2026-06-04 21:47:18 +08:00
thzxx
b12837433b
fix: 版本号改为合法 semver 1.0.0,修复 electron-builder 校验
2026-04-28 15:02:34 +08:00
thzxx
4a7b84c9a2
fix: 调整搜索结果来源引导,优先官方文档而非知乎
2026-04-28 14:46:43 +08:00
thzxx
a742d3a5a5
docs: rewrite README with bilingual CN/EN, icons, and verified features
2026-04-25 09:23:33 +08:00
thzxx
200fc51e01
docs: remove references to deleted analysis docs
2026-04-25 08:47:37 +08:00
thzxx
14ba190864
docs: remove OpenClaw/Hermes analysis docs
2026-04-25 08:47:27 +08:00
thzxx
75549ebfa7
docs: 添加推荐规则记忆(面向用户使用)
2026-04-25 08:44:30 +08:00
thzxx
f3f81b135d
Reapply "docs: 添加推荐记忆规则到 README"
...
This reverts commit 5e5145cb17 .
2026-04-24 15:42:05 +08:00
thzxx
5e5145cb17
Revert "docs: 添加推荐记忆规则到 README"
...
This reverts commit cf40b8674d .
2026-04-24 15:41:03 +08:00
thzxx
cf40b8674d
docs: 添加推荐记忆规则到 README
2026-04-24 15:39:25 +08:00
thzxx
2118ad727f
refactor: use typed window.metonaDesktop in chat-db.ts
...
Replaced remaining '(window as any).metonaDesktop' with properly typed
'window.metonaDesktop' in chat-db.ts for consistency with the rest of
the codebase.
2026-04-24 14:04:31 +08:00
thzxx
9cb6c243a7
refactor: use typed window.metonaDesktop instead of (window as any)
...
Replaced all '(window as any).metonaDesktop' with the properly typed
'window.metonaDesktop' across mcp-client.ts, skill-manager.ts,
agent-engine.ts, and log-service.ts. The MetonaDesktopAPI type is
already declared in types.d.ts, so the 'as any' cast was unnecessary
and bypassed type checking.
2026-04-24 14:03:34 +08:00
thzxx
0065ded925
fix: replace 'any' type with ChatDB for state.get(KEYS.DB)
...
The DB state variable in agent-engine.ts was typed as 'any', bypassing
type checking for getSetting() calls. Replaced with proper ChatDB type
import and null-safe typing.
2026-04-24 14:02:56 +08:00
thzxx
dbeba20286
fix(security): add path validation to git tool handler
...
handleGit was missing checkPathAllowed validation on the working
directory (cwd), allowing git operations to execute in any directory
bypassing the security policy. Added validation for:
- The cwd used by all git operations
- The clone destination directory (write permission check)
2026-04-24 13:58:19 +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
thzxx
e4dc7f945f
fix: correct search_files result field name in formatToolResultForModel
...
The search_files tool handler returns results in a 'results' field
(containing per-file match arrays), but formatToolResultForModel was
referencing 'result.matches' which is undefined. This caused the model
to never see actual search file results, breaking the search → read
tool chain workflow.
2026-04-24 13:55:53 +08:00
thzxx
74f5e384b5
fix: import missing logSuccess in agent-engine.ts
...
logSuccess was used on line 509 for auto-compress completion logging
but was never imported from log-service.ts, causing a runtime
ReferenceError when context auto-compression triggers.
2026-04-24 13:55:33 +08:00
thzxx
fdbdc4007c
fix: 修复 Token 仪表盘 — 添加缺失的 renderGlobalChart + 修复概览卡片布局
...
- 添加 renderGlobalChart 函数(按会话渲染全局柱状图)
- 移除 td-stat-row 嵌套 div,卡片直接放入 tdOverview grid
- 修复全局统计持续报错 renderGlobalChart is not defined
- 修复 5 个统计卡片挤在 1/4 宽度的布局问题
2026-04-24 13:50:02 +08:00
thzxx
5cbb71cf50
fix: Token趋势图2秒刷新丢失滚动位置
2026-04-23 17:23:56 +08:00
thzxx
118af9dd9a
fix: Token趋势图柱子不显示 — 柱子容器高度塌缩修复
2026-04-23 17:22:41 +08:00
thzxx
aa9bfa01f7
fix: Token趋势图数值区分输入/输出颜色
2026-04-23 17:19:53 +08:00
thzxx
4070f85214
fix: 普通聊天流式模式未捕获 prompt_eval_count 导致趋势图无法区分输入/输出 token
2026-04-23 17:04:20 +08:00
thzxx
d3c38977bc
fix: AI消息时间戳显示、工具调用卡片恢复
...
1. 修复AI回复消息不显示时间戳的问题:updateLastAssistantMessage 新增 timestamp 参数
2. 恢复工具调用卡片显示(工具名称+参数,不显示执行结果):updateLastAssistantMessage 新增 toolCalls 参数
3. 根因:流式消息通过 updateLastAssistantMessage 更新 DOM,但该函数未渲染时间戳和工具卡片,
而 renderMessages 因 placeholder 已被计数而跳过 appendMessageDOM
2026-04-23 16:50:06 +08:00
thzxx
bbd408f326
fix: 工具卡片错误信息显示、清理死代码
...
1. 工具调用失败时显示错误原因(之前只有状态标签没有具体错误)
2. 删除 formatFileSize 死代码(仅在已移除的结果渲染中使用)
3. 清理 updateLastAssistantMessage 未使用的 stats 参数
2026-04-23 16:19:53 +08:00
thzxx
21b9a14824
fix: Token统计准确性修复 + 仪表盘增强
...
1. 修复eval_count只记最后一轮的bug:改为每轮累加
2. 新增prompt_eval_count(输入token)统计
3. 修复total_duration使用Ollama实际推理时间而非墙钟时间
4. 数据库messages表新增prompt_eval_count列(含兼容迁移)
5. 仪表盘显示输入/输出token分项统计
6. 柱状图堆叠显示输入(紫色)+输出(橙色)比例
7. 明细表格新增输入/输出/合计三列
2026-04-23 16:11:17 +08:00
thzxx
e96b2a840e
feat: 新增Token实时监控仪表盘
2026-04-23 16:00:13 +08:00
thzxx
684b2f773b
feat: 工具卡片精简、移除token统计、消息时间显示
...
1. 聊天消息工具卡片只显示工具名+调用内容,不显示执行结果(工作空间工具页签已有完整结果)
2. 移除所有token统计相关代码:顶栏统计、消息内token/耗时显示、历史记录中的token显示
3. 每条消息显示具体时间(年月日 时分秒),formatTime 已含秒数
2026-04-23 15:42:15 +08:00
thzxx
7ed75415a3
fix: 工具卡片状态更新后即时刷新消息渲染
...
updateMessageToolRecord 更新 state 后缺少 renderMessages() 调用,
导致消息中的工具卡片状态不会实时更新(始终显示 running)。
添加 renderMessages() 调用,确保工具执行完成后消息中的卡片
立即显示正确状态(✅ /❌ )。
2026-04-23 12:36:32 +08:00
thzxx
4d03c35ea9
fix: 工作空间面板底栏与消息输入区底栏对齐
...
.workspace-panel 显式设置 height:100vh,与 .main-wrap 一致,
确保两者 flex 子元素等高,底栏(ws-term-toolbar 与 input-area)
自然对齐。
2026-04-23 11:55:21 +08:00
thzxx
4caa230c47
fix: 会话消息中工具卡片始终显示 ✅ 0 ❌ 0且永远转圈执行中
...
根因:onNewIteration 保存工具记录时 status='running'、result=null,
工具执行完成后只更新了工作空间面板,未更新消息中的记录。
修复:
1. 新增 updateMessageToolRecord() 函数,从后往前查找消息中
running 状态的同名工具记录并更新为最终状态
2. onToolCallResult/onToolCallError 回调中同步更新消息记录
3. onDone 多迭代模式下,最终消息也包含 toolRecords
2026-04-23 11:52:53 +08:00
thzxx
f46edc308a
fix: 工具页签底栏统计文字颜色不可见(白底白字)
...
.ws-tools-hint 从 rgba(245,240,232,0.4) 改为 var(--text-tertiary),
与终端页签底栏 .ws-term-hint 保持一致。
2026-04-23 11:51:03 +08:00
thzxx
72565b3220
fix: 彻底修复 TDZ 错误和用户消息不显示问题
...
1. agent-engine.ts: onNewIteration 改用 prevToolCalls 传递上一轮工具调用,
避免引用未声明的 toolCalls 导致 TDZ (Cannot access 'B' before initialization)
2. chat-area.ts: 新增 resetCurrentPlaceholder() 清理悬空 DOM 引用
3. input-area.ts: 错误处理器删除 placeholder 后清理 currentPlaceholder 引用,
防止后续 updateLastAssistantMessage 操作已脱离 DOM 的旧节点
2026-04-22 09:40:38 +08:00
thzxx
9915b71da1
fix: Agent Loop 多轮迭代消息保存和 token 统计
...
- 修复 onDone 多轮迭代时更新旧消息而非创建新消息,导致 post-tool 回复丢失
- 修复 pre-tool 消息的 toolCalls 未保存(onNewIteration 未传递 toolCalls)
- 修复最后两条 AI 消息无 token 显示(统计附着到被覆盖的消息上)
- onNewIteration 回调增加 toolCalls 参数,保存消息时附带工具调用记录
- handleRetry 同步修复
2026-04-21 14:08:07 +08:00
thzxx
dc3d6e4b69
fix: 修复第二条消息不显示和上传文件AI读取失败
...
Bug 1: renderMessages() 统计 .message 元素时把 loading placeholder 也计入,
导致第二条用户消息被跳过不渲染。改为 .message:not(.loading) 排除加载占位符。
Bug 2: Agent Loop system prompt 缺少文件内容感知规则,用户上传文件后让AI读取,
AI 调用 read_file 去工作空间找文件导致失败。在 TOOL_USAGE_GUIDE 新增规则 16,
明确告知模型上传文件内容已在对话消息中,无需调用 read_file 工具。
2026-04-21 11:29:33 +08:00
thzxx
e5acf646c8
fix: 修复多迭代 Agent Loop 的两个UI bug
...
Bug 1: 正在思考占位符作为独立消息残留
- 根因: renderMessages() 将 loading placeholder 计入 existingCount,
导致新保存的消息不被渲染,旧 placeholder 永远留在页面上
- 修复: onNewIteration 保存消息前先移除旧 placeholder
Bug 2: 只有最后一条AI消息显示 token 统计
- 根因: onNewIteration 保存中间消息时不附带 token/duration 统计,
只有 onDone 对最后一条才添加 loopStats(总累计值)
- 修复: 追踪每轮迭代的 eval_count 增量和耗时,
中间消息和最后消息均保存 per-iteration 统计,
确保 updateTotalTokens 求和不重复计数
2026-04-21 09:05:07 +08:00
thzxx
2496e04685
fix: 修复用户消息不显示和思考气泡残留
...
renderMessages() 中 existingCount 使用 children.length 计算,
包含了 currentPlaceholder(正在思考...)元素,导致:
1. 新用户消息被误判为已渲染而跳过
2. 旧 placeholder 残留 DOM 变成独立消息气泡
修复:existingCount 改用 querySelectorAll('.message') 只计算实际消息元素
2026-04-20 21:00:42 +08:00