feat: v0.8.2 安全纵深补全 · 协议保真 · 断链修复 — 图片SSRF/根MEMORY.md保护根治 · Anthropic thinking回传+pause_turn续传 · 2523 用例全量回归 + E2E 扩充
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/version-0.8.1-blue?style=flat-square" alt="Version" />
|
||||
<img src="https://img.shields.io/badge/version-0.8.2-blue?style=flat-square" alt="Version" />
|
||||
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License" />
|
||||
<img src="https://img.shields.io/badge/Electron-35-47848F?style=flat-square&logo=electron" alt="Electron" />
|
||||
<img src="https://img.shields.io/badge/React-19-61DAFB?style=flat-square&logo=react" alt="React" />
|
||||
@@ -54,19 +54,19 @@
|
||||
|
||||
---
|
||||
|
||||
## 🆕 v0.8.1 更新亮点
|
||||
## 🆕 v0.8.2 更新亮点
|
||||
|
||||
| 特性 | 说明 |
|
||||
|:---|:---|
|
||||
| ⚙️ **上下文/输出上限 全局单一配置** | 硬性契约:删除代码中一切写死的上下文窗口与最大输出上限(含六家模型元信息钳制)——唯一合法来源是设置面板「上下文长度」与「最大输出上限」,跨 Provider/模型原样透传 |
|
||||
| 🧠 **本地向量混合检索** | 激活 Ollama embeddings:记忆检索升级为 0.6×向量余弦 + 0.4×TF-IDF 混合评分,同义改写可召回;存量记忆惰性回填,嵌入不可用自动回退 TF-IDF |
|
||||
| 📝 **MEMORY.md 维护闭环** | 固化去重消除全文截断盲区;两阶段维护(AI 建议 → 用户勾选 → 原子改写 + 语义记忆双轨同步);>50KB 体积告警 |
|
||||
| 📊 **成本/缓存可观测闭环** | Prompt Cache 命中率与估算成本(可选单价配置)进 Token 面板;输入框新增上下文占用指示条(60%/80% 变色) |
|
||||
| 🔌 **MCP Prompts/Resources 对话可用** | `/mcp:{server}:{prompt}` 斜杠菜单填充输入框;`@mcp:{server}:{uri}` 资源注入附件管线(512KB 上限、二进制拒绝) |
|
||||
| 🛡 **工具自定义策略** | 每个工具可配置拒绝/允许参数正则、频率上限、强制确认(设置 → 工具管理 → 策略),保存即热生效 |
|
||||
| ⏩ **批量确认 & 游标分页 & 自启** | 连续 ≥3 同类工具确认自动聚合为单弹框;会话消息游标分页(首屏 200 条向上翻页);开机自启开关 |
|
||||
| 💾 **记忆生命周期接线** | 会话终态联动清理工作记忆;情节记忆 90 天 TTL 真实写入;语义记忆 access_count 检索回写(LRU 激活) |
|
||||
| 🧪 **E2E 冒烟** | Playwright + Electron 端到端链路(本地 mock LLM,零外联、数据隔离);附带根治权限加固启动时序、回环代理放行、safeStorage 降级三处环境级缺陷 |
|
||||
| 🛡 **适配器图片下载 SSRF 收口** | Anthropic/Ollama 的图片 URL 下载统一走 DNS Pinning 安全通道(逐跳重定向复检 + 10MB 上限 + 类型白名单),根治"诱导模型回读内网数据"的可回读外泄通道 |
|
||||
| 🔐 **根 MEMORY.md 保护根治** | 闸门从工具名单枚举反转为"任意工具的路径形参数统一精确匹配"—— delete_file / file_move / MCP 文件类工具全部纳入保护 |
|
||||
| 🔌 **Anthropic 协议保真** | extended thinking 块(含签名)在工具循环多轮回传;pause_turn 长回复自动续传(预算耗尽按截断语义收尾,不再静默丢失) |
|
||||
| 📦 **上下文压缩正确性** | 压缩时机移至本轮消息入列后、估算纳入 System Prompt、摘要调用重试 + 纯截断兜底、故障转移后预算校正值重置 |
|
||||
| 💾 **全局配置原子写 + 自愈** | global-config.json 改为 tmp+rename 原子落盘并维护备份 —— 崩溃不再丢失全部全局配置(含 LLM 凭据) |
|
||||
| 🧠 **向量记忆召回修复** | 向量检索与重要度预过滤解耦(独立召回 200 条池)、embedding 模型指纹(更换模型后惰性重算自愈)、语义记忆 access_count 更新后不再归零 |
|
||||
| 🎨 **工具结果富媒体渲染** | view_image / 浏览器截图在聊天流内联预览;diff_viewer / file_editor dry_run 渲染为增删着色的 unified diff 视图 |
|
||||
| ⌨️ **交互断链修复** | 引用回复 / Ctrl+L 聚焦输入框(受控输入桥根治)、IPC 桥缺失兜底、根级 ErrorBoundary 逐区隔离、/export 全量导出、会话列表实时刷新、Onboarding 首帧闪烁消除 |
|
||||
| 🌐 **i18n 与行为对齐** | 托盘菜单/系统对话框/剩余 8 处文案出层;MiMo 思考未配置默认关闭(尊重用户意图)、MiMo 联网搜索引用回填正文、OpenAI 推理模型 stop 参数前置拦截 |
|
||||
|
||||
---
|
||||
|
||||
@@ -262,7 +262,7 @@ Metona 的核心是一个 **ReAct (Reasoning + Acting)** 状态机驱动引擎
|
||||
| 🖼️ **多轮图片记忆** | 历史轮次的图片随上下文回传 LLM(最近 10 张,从最新向前收集);多模态总开关 `llm.multimodalEnabled` 控制上传入口 |
|
||||
| 🔄 **错误重试** | 指数退避 (1s/2s/4s) + ±20% jitter,上限 30s |
|
||||
| ⏱️ **可配置迭代** | 最大迭代次数 (默认 20)、总超时 (默认 600s)、工具执行超时 (默认 120s) |
|
||||
| 🧵 **子任务委派** | TaskOrchestrator 支持最大 3 层深度的 SubAgent 编排 |
|
||||
| 🧵 **子任务委派** | TaskOrchestrator 支持每会话最多 3 个并发 SubAgent(委派结果实时进 Trace 与 AgentMonitor) |
|
||||
|
||||
---
|
||||
|
||||
@@ -338,7 +338,7 @@ SAFE (13 个) LOW (4 个) MEDIUM (8 个) HIGH (
|
||||
| `lint_code` | LOW | 是 | TypeScript tsc 或 ESLint 检查(v0.7.4: 经 npx 执行工作区代码,升 LOW + 需确认 + --no-install 禁自动下载) |
|
||||
| `run_tests` | MEDIUM | 是 | 运行测试套件 (jest/vitest/mocha),filter 白名单防注入(v0.7.4: npm test 执行 scripts.test 任意命令,升 MEDIUM + 需确认) |
|
||||
| `project_info` | SAFE | 否 | 项目结构分析,4 种 detail 级别 |
|
||||
| `delegate_task` | MEDIUM | 否 | 子任务委派给独立 SubAgent,最大深度 3 层 |
|
||||
| `delegate_task` | MEDIUM | 否 | 子任务委派给独立 SubAgent(每会话最多 3 个并发,无递归嵌套) |
|
||||
|
||||
#### 🔀 Git (4 tools)
|
||||
|
||||
@@ -479,7 +479,7 @@ Metona 的 Agent 引擎采用分层架构,每层职责清晰:
|
||||
│ ┌─────────────────────┐ ┌──────────────────────────────────┐ │
|
||||
│ │ AgentLoopEngine │ │ TaskOrchestrator │ │
|
||||
│ │ ReAct 八状态机 │ │ 子任务分解 · 并行执行 · 结果聚合 │ │
|
||||
│ │ 流式解析 · 死循环检测 │ │ SubAgent 最大深度 3 层 │ │
|
||||
│ │ 流式解析 · 死循环检测 │ │ SubAgent 并发上限 3 │ │
|
||||
│ └─────────────────────┘ └──────────────────────────────────┘ │
|
||||
│ 类型: MetonaRequest / MetonaResponse / MetonaStreamEvent │
|
||||
├──────────────────────────────────────────────────────────────────┤
|
||||
@@ -770,7 +770,7 @@ MetonaAI-Desktop/
|
||||
│ │ │ ├── 📄 manager.ts # MemoryManager (TF-IDF, CJK 分词)
|
||||
│ │ │ └── 📄 consolidator.ts # MemoryConsolidator (LLM 提取)
|
||||
│ │ ├── 📂 orchestration/ # 编排
|
||||
│ │ │ └── 📄 orchestrator.ts # TaskOrchestrator (深度限制 3)
|
||||
│ │ │ └── 📄 orchestrator.ts # TaskOrchestrator (并发委派上限 3)
|
||||
│ │ ├── 📂 prompts/ # 提示词构建
|
||||
│ │ │ └── 📄 context-builder.ts # ContextBuilder (SOUL + MEMORY)
|
||||
│ │ ├── 📂 hooks/ # 钩子
|
||||
|
||||
Reference in New Issue
Block a user