-
v0.3.22 Stable
released this
2026-07-25 19:37:31 +08:00 | 0 commits to master since this release📋 版本概述
v0.3.22 是一个问题修复版本,重点解决了大数据(base64 图片)导致应用崩溃退出的问题,并修复了图片上传后 AI 冗余调用工具、预存类型错误等若干问题。
🐛 缺陷修复
1. 修复大数据导致应用崩溃退出(核心修复)
问题:当 Agent 调用
view_image工具或用户上传图片时,base64 图片数据(单张最大约 6.7MB)会在「IPC 传输 → 渲染进程 store → DOM 渲染」链路中被反复放大且从不裁剪,多轮对话累积后撑爆渲染进程堆内存,导致应用 OOM 崩溃退出。根因:
view_image返回的dataUrl(base64)经 ToolRegistry 的 dataUrl 白名单跳过截断后,完整进入渲染进程,并在ToolResultBlock、TraceStep中被JSON.stringify成超大字符串塞进 DOM(单条 6.7MB)。此外data:export会把所有会话 × 所有消息 × 完整 toolResult 一次性序列化,也是独立的 OOM 风险点。修复方案(LLM 看图能力不受影响):
- 新增
src/lib/tool-result-display.ts:toDisplayResult()在渲染进程显示边界剥离dataUrl等超大 base64 字段,返回轻量摘要(保留 path/size/mimeType 等小字段) ToolResultBlock、TraceStep渲染前套用toDisplayResult,store 内原始 result 不变data:export导出时剥离 dataUrl / 附件 preview,并对每会话加 2000 条消息上限 +truncated标记
效果:单条 view_image 结果显示体积从 6,700,096 字节降至 146 字节,渲染进程内存安全。
2. 修复图片上传后 AI 仍调用 view_image 工具
问题:用户上传图片并告知 AI 后,AI 仍会先调用
view_image工具去磁盘读取文件,而非直接使用已上传的图片。根因:附件提示措辞
"do NOT search in workspace"与view_image工具描述"Read an image file"语义冲突——AI 认为"读取"≠"搜索",且不确定图片已通过 vision capability 传给它。修复:强化附件提示注入,明确告知 AI 图片已可见、禁止调用
view_image/read_file读取已上传图片。3. 修复预存类型错误
- ConfirmationDialog:MUI v9 移除了
disableEscapeKeyDown顶层 prop(已从 ModalProps 类型定义中删除),迁移到onClose按reason拦截escapeKeyDown,行为与原实现一致 - ContextMenu / Sidebar:删除会话时重置
tokenUsage的对象字面量补齐lastInputTokens、lastCompressedSaved字段(v0.3.18 扩展 TokenUsage 后遗漏),消除运行时 undefined
⬆️ 依赖升级
@metona-team/metona-toast 0.1.2 → 0.2.1
- 完整 TypeScript 重构(源码由 .js 迁移至 .ts,类型更完整)
- 修复 0.1.2 内部 package.json 版本号打包 bug(错误报告为 2.0.1)
- 统一 ESM 产物路径(module 指向 dist 产物而非 src 源码)
- API 完全兼容(success/error/warning/info/configure/use 已验证),新增 promise/loading/progress/confirm/prompt 等高级 API
🧹 其他
- 删除仓库根目录误生成的
nul垃圾文件(失败的 Windowsdir命令输出被重定向到nul产生) - 版本号 0.3.21 → 0.3.22(package.json / package-lock.json / README 徽章)
📦 安装
Windows 用户可下载
MetonaAI-Desktop-Setup-0.3.22.exe安装版或MetonaAI-Desktop-0.3.22-portable.exe便携版。升级用户:直接覆盖安装即可,工作空间数据与配置不受影响。
Downloads
- 新增