• v0.3.16 Stable

    thzxx released this 2026-07-22 13:18:40 +08:00 | 0 commits to master since this release

    v0.3.16 发行版

    概述

    本次版本包含 v0.3.16 主提交及两个后续补丁修复,共计 56 个文件改动(+1975 / -341 行),涉及安全加固、Provider 适配器优化、Agent 引擎增强、工具系统扩展、数据层重构、前端体验改进等核心模块,并修复了工作空间切换配置丢失、选择文件夹按钮无响应、上传图片被内容审核拦截等关键问题。


    一、v0.3.16 主提交(commit 2c2ca4a)

    工单修复 51 项 + 审查修复 30 项,涉及 43 个文件(+1462 / -309 行)。

    1. 安全加固

    • Sandbox 权限系统增强sandbox/permissions.ts +75 行):完善路径校验、命令白名单、符号链接防护
    • Prompt 注入防御增强security/prompt-injection-defense.ts +113 行):扩展检测规则、增强系统提示词隔离
    • 审计服务增强audit.service.ts +45 行):完善操作日志记录、敏感操作追踪
    • Sandbox 执行环境增强sandbox/sandbox.ts):隔离边界加固

    2. Provider 适配器优化

    • base-adapter 错误处理增强(+53 行):HTTP 错误解析、status code 精准识别、abort signal 管理
    • Ollama 适配器大幅优化(+80 行):本地模型连接稳定性、超时处理
    • MiMo / DeepSeek / Agnes-AI 适配器调优:流式解析、工具调用兼容性
    • 共享层优化openai-format.ts 格式标准化、sse-stream.ts SSE 解析增强

    3. Agent 引擎增强

    • engine.ts 状态机与错误处理(+78 行):
      • 死循环检测(DeadLoopError)
      • abort 信号注入 adapter,支持用户中断正在进行的 fetch
      • context window 从 adapter 同步,避免压缩阈值计算错误
      • runId 机制防止旧 run 事件污染新 run
      • waitForAbort 超时保护,防止 abort 后立即重发卡死

    4. 工具系统扩展

    • command 工具大幅增强(+127 行):命令执行、超时控制、输出处理
    • http-request 工具大幅增强(+136 行):请求方法、头管理、响应解析
    • filesystem / file-editor / git / code-search 工具优化:路径校验、权限控制
    • browser-window-manager 工具增强(+39 行):窗口管理能力
    • 工具注册表增强registry.ts +31 行):动态注册、权限策略

    5. 数据层重构

    • database.service 重构(126 行改动):连接管理、事务、迁移
    • session.service 优化(75 行改动):会话生命周期管理
    • session-recorder.service 增强(+72 行):会话录制、回放
    • 新增 mcp-manager.service(+82 行):MCP 协议管理器

    6. 前端体验改进

    • ConfirmationDialog 增强(+53 行):批量审批、ESC 防穿透
    • MessageItem 精简优化(-60 行):移除冗余逻辑
    • ErrorBoundary 增强:错误边界捕获
    • OnboardingWizard 增强(+47 行):引导流程优化
    • SettingsModal 增强:工作空间配置管理
    • 新增 useKeyboardShortcuts hook(+16 行):键盘快捷键支持

    7. 其他优化

    • 内存管理器优化(memory/manager.ts
    • 编排器优化(orchestration/orchestrator.ts
    • 提示词上下文构建器增强(context-builder.ts
    • 钩子系统增强(confirmation-hook / post-tool
    • Token 估算器优化(token-estimator.ts

    二、补丁 1(commit 9af9984)

    构建修复

    • 修复 electron/harness/tools/built-in/command.ts 中 JSDoc 注释 GIT_*/ 被解析为注释结束符(*/)导致后续中文被当作代码,构建失败
    • 修改为 GIT_* /*/ 之间加空格分隔)

    三、补丁 2(commit 3e5ddea)

    1. Sandbox 兼容性修复

    • 问题sandbox: true 不兼容 ESM 格式(.mjs)的 preload 脚本,导致 preload 不执行、window.metonaundefined,引导弹框"选择文件夹"按钮点击无反应
    • 修复sandbox: true → false,并添加注释说明 ESM preload 不兼容 sandbox 的限制

    2. 全局配置层(新功能)

    解决切换工作空间后 LLM / Agent 配置全部丢失的问题。

    • 新增 GlobalConfigServiceglobal-config.service.ts +247 行):全局配置存储于 userData/global-config.json
    • 三层回退读取:工作空间 DB 非空值 → 全局 JSON → 默认值
    • 双写机制:全局配置 key 同时写入工作空间 DB 和全局 JSON
    • 首次启动迁移:扫描工作空间 DB 的 app_config 表,将非默认值的全局 key 同步到全局 JSON
    • SEED_DEFAULTS 默认值映射表:30 个 key 的默认值,值等于默认值时视为"未配置"并回退全局层

    3. 工作空间继承修复

    • 继承选项显示条件放宽:当目标 SOUL.md 缺失或 .metona/agent.db 不存在时才显示继承面板
    • push 前校验:继承 SOUL.md 前检查 missingFiles.includes('SOUL.md'),继承 agent.db 前检查 !dbExists,避免覆盖目标已有文件

    4. 配置实时刷新

    • config:changed IPC 广播:后端配置变更后通知前端
    • 前端监听useAgentStream.ts):收到 agent.maxIterations 变更时调用 store.setMaxIterations
    • 效果:修改 Agent 配置最大迭代数后,详情栏 Token 用量和 Agent 状态实时刷新

    5. 附件提示注入

    • 问题:用户上传图片后,AI 先在本地工作空间查找图片,没找到才意识到是用户直接上传的
    • 修复:在 System Prompt 的 dynamicReminders 注入附件提示,明确告知 AI 上传的文件是 inline 附件(非工作空间文件),并提供类型特定指引(图片走 vision、文本已内联、其他为直接上传)

    6. content_filter 错误处理

    • 问题:上传图片发消息被 Provider(如 MiMo)安全审核拦截,返回 "The request was rejected because it was considered high risk",项目将错误映射为 UNKNOWN 并透传原始 JSON 错误体
    • 修复
      • 新增 ContentFilterError 类(base-adapter.ts
      • throwHttpError 解析 JSON 错误体,识别 content_filter 错误码
      • mapError 优先识别 ContentFilterError,映射为 MetonaErrorCode.CONTENT_FILTERED
      • engine.ts finish 方法区分 content_filter 错误,发射友好消息
      • 前端显示 ⚠️ 内容被 Provider 安全审核拦截,请修改图片或文本后重试

    7. 构建修复

    • 修复 config.service.ts 中 JSDoc 注释 llm.*/agent.*/onboarding.completed*/ 被解析为注释结束符
    • 修改为 llm.* / agent.* / onboarding.completed(加空格分隔)

    升级说明

    • 直接安装新版本即可,首次启动会自动迁移旧工作空间配置到全局层
    • 切换工作空间后 LLM / Agent 配置将自动继承,无需重新配置
    • 如遇内容审核拦截,请修改图片或文本内容后重试
    Downloads