# v0.5.8 ## 新功能 - **逆向工程插件 v0.4.0**(`plugins/reverse-engineering`)。仓库自带的 marketplace 现在收录一个多平台 逆向工具箱,一键安装即可获得 7 个 MCP 服务器、1 个编排 agent、11 个 skill、2 个 slash 命令: - **静态分析**:Ghidra(pyghidra-mcp)/ radare2 / JADX / apktool。覆盖 PE / ELF / Mach-O,以及 无 header 的固件 blob(路由器固件、Cortex-M flash dump、ECU dump 等)。多架构:x86/x64、ARM (含 Cortex-M Thumb-only)、AArch64、MIPS、PowerPC(含 VLE)、Motorola 68k / ColdFire、SuperH、 RISC-V,以及 AVR / MSP430 / 6502 / Z80 等小架构 - **动态分析**:Frida(Java/ObjC hook + Stalker trace)/ GDB(单步、硬件断点、watchpoint、跨架构 via `gdb-multiarch + qemu`)/ LLDB(Apple 平台单步 + ObjC method hook)。`dynamic-debug-overview` skill 让 agent 自动选车道 - **编排**:`reverse-engineer` agent 走 triage → static → 可选 dynamic → report 流程,产物落在 `${ARTIFACT_DIR}//`(默认 `artifacts/re-runs`) - **slash 命令**:`/reverse-engineering:triage `、`/reverse-engineering:report ` - **配置**:`GHIDRA_INSTALL_DIR`(可选,Ghidra 安装目录)、`ARTIFACT_DIR`(产物输出位置) - **规则**:对样本只读,不向外推任何样本(无 VT / no malware-bazaar),不破解商业授权,Frida 只跑 用户授权过的目标,纯静态结论可信度上限封在 medium 桌面端「设置 → 插件」添加本仓库 `plugins/` 目录作为 marketplace 即可启用。详见 `plugins/reverse-engineering/README.md`。 - **零成本会话接力**。新建会话欢迎页"最近活动"卡片新增"从这里继续"按钮。点击后服务端用 LLM 生成上一个会话的两层摘要(主线 + 最新进展)落盘缓存,通过 `--append-system-prompt` 注入到新 会话的 system prompt,再自动发一条短的 trigger message 让 AI 接续。前端展示生成进度阶段 ("读缓存 → 生成摘要 → 启动会话"),完成后会话头部出现 `↗ 已接续 (N tokens)` 小芯片。摘要生成 失败时静默降级到原有的 zero-token textarea 预填路径。摘要 token 上限受 `CLAUDE_CODE_HANDOFF_MAX_TOKENS` (默认 1500)和 `CLAUDE_CODE_HANDOFF_INPUT_CHARS`(默认 80000)约束,WS handler 缓存命中后不重生成。 - **欢迎任务卡片项目感知**。原本写死的 4 个起始 prompt 现在按项目状态动态填充: - "PR 预合并审查"会替换成实际的 `git.defaultBranch`,develop 分支上不会再让 AI 对着 main 做审查 - "排查失败的测试"和"补单元测试"会从最新的 dirty files 列表里挑一个真实文件路径(测试文件正则 + 源码文件正则,跳过锁文件 / 构建产物 / 二进制),自动填进 prompt - 每张卡片的 `title=` 属性都是完整解析后的 prompt,鼠标悬停就能预览要发送什么 - 第 4 张卡 `explainCode` 重命名为 `understandProject`,prompt 改成读 CLAUDE.md / AGENTS.md / README + 列技术栈和顶层目录的项目全景介绍 - 服务端 `recent-activity` 接口新增 `dirtyFiles[]` 字段(`git status --porcelain=v1 -z` 解析,按 mtime 倒序,最多 20 个),走原有 TTL 缓存 - **伪 tool_use 检测与 provider 兼容追踪**。某些第三方 Anthropic 兼容网关(mimo / lgfzer / 部分代理) 不转发原生 tool_use block,模型只能在 `content_delta` 里输出 XML 风格的 `{...}` 当文本流过来,渲染后变成 `