Doramagic 项目包 · 项目说明书
cavemem 项目
面向编码助手的跨智能体持久化记忆:压缩存储、快速检索,默认本地运行。
cavemem System Overview & Architecture
cavemem 是面向编码助手的跨智能体(cross-agent)持久化记忆系统,其核心目标是在多个 IDE 会话之间保留上下文,并尽量降低存储与检索成本。系统通过 IDE 钩子(hooks)在会话边界触发采集,使用 caveman 语法 对散文文本进行确定性压缩(约 75% token 缩减),最终写入本地 SQLite + 向量索引。资料来源:[README.md:1-...
继续阅读本节完整说明和来源证据。
项目定位与设计目标
cavemem 是面向编码助手的跨智能体(cross-agent)持久化记忆系统,其核心目标是在多个 IDE 会话之间保留上下文,并尽量降低存储与检索成本。系统通过 IDE 钩子(hooks)在会话边界触发采集,使用 caveman 语法 对散文文本进行确定性压缩(约 75% token 缩减),最终写入本地 SQLite + 向量索引。资料来源:README.md:1-30
设计上有四个显著特征:
- 本地优先:默认无网络调用;可选用远端嵌入提供者。
- 压缩落盘:所有持久化文本必须经过
@cavemem/compress,技术 token(代码块、文件路径、URL、版本号等)按字节保留。资料来源:CLAUDE.md:18-30 - 渐进式检索:通过 MCP 工具
search/timeline/get_observations/list_sessions让模型先过滤再拉取正文。资料来源:README.md:34-50 - 混合检索:基于 SQLite FTS5 关键词 + 本地向量索引,配合可调的 ranker。资料来源:README.md:18-25
当前版本(v0.2.1)支持的 IDE 包括:Claude Code、Cursor、Gemini CLI、OpenCode、Codex。资料来源:README.md:9-12
系统架构与组件
cavemem 采用 monorepo 结构,使用 pnpm 工作区进行管理,Node 版本要求 ≥ 20.0.0。资料来源:package.json:6-19 顶层包结构包含 apps/(CLI、worker、MCP server)和 packages/(config、core、storage、embedding、hooks、compress)。
graph LR
A[IDE 钩子] --> B[redact <private>]
B --> C[@cavemem/compress]
C --> D[MemoryStore]
D --> E[(SQLite + FTS5)]
D --> F[(本地向量索引)]
G[MCP 客户端] --> H[@cavemem/mcp-server]
H --> E
I[浏览器] --> J[Worker HTTP Viewer<br/>127.0.0.1:37777]
J --> E
H --> K[Embedder Worker<br/>懒加载]
K --> F关键组件职责:
| 组件 | 路径 | 职责 |
|---|---|---|
@cavemem/config | packages/config | 基于 Zod 的自描述 schema,导出 settingsDocs() 用于 cavemem config show。资料来源:packages/config/CHANGELOG.md:8-15 |
@cavemem/compress | packages/compress | caveman 文法压缩/解压,是写路径必经环节。资料来源:packages/compress/package.json:1-30 |
@cavemem/embedding | packages/embedding | 懒加载单例嵌入器,MCP 握手阶段不阻塞。资料来源:packages/embedding/CHANGELOG.md:18-21 |
@cavemem/worker | apps/worker | 嵌入构建后台守护,空闲自动退出。资料来源:apps/worker/package.json:1-25 |
@cavemem/mcp-server | apps/mcp-server | 提供四个检索工具(search、timeline、get_observations、list_sessions)。资料来源:apps/mcp-server/CHANGELOG.md:14-18 |
@cavemem/hooks | packages/hooks | IDE 钩子协议适配,同时支持 Claude Code 新旧字段名。资料来源:packages/hooks/CHANGELOG.md:18-22 |
数据流与生命周期
写路径遵循 CLAUDE.md 中列出的"非协商规则":所有持久化散文必须经过 MemoryStore,它内部强制调用 @cavemem/compress。资料来源:CLAUDE.md:18-30 钩子以同步方式写入 SQLite,绝不阻塞于守护进程。
嵌入后台进程由首次钩子事件触发(embedding.autoStart 控制),模型加载采用懒加载单例以保持 MCP 握手速度;embedding.idleShutdownMs 控制空闲自动关闭。资料来源:packages/config/CHANGELOG.md:8-15 与 packages/embedding/CHANGELOG.md:18-21
读路径分为两类:
- 模型面:MCP 工具默认返回摘要/元数据(
search返回{id, score, snippet, session_id, ts}),正文按需get_observations。资料来源:README.md:34-50 - 人类面:Worker HTTP Viewer 在
http://127.0.0.1:37777提供浏览器 UI,解压后的散文供人阅读。资料来源:README.md:22-26
@cavemem/compress 提供多档压缩档位(lite / full / ultra),针对 articles、hedges、pleasantries、abbreviations 等类别分别裁剪;技术 token 的保护由 packages/compress/src/tokenize.ts 唯一权威化。资料来源:packages/compress/src/lexicon.json:1-40 与 CLAUDE.md:22-30
CLI 命令与配置
CLI 入口 cavemem 提供如下顶层命令:
| 命令 | 作用 | |||||
|---|---|---|---|---|---|---|
install [--ide <name>] | 注册钩子到指定 IDE(claude-code / cursor / gemini-cli / opencode / codex) | |||||
status | 单屏仪表盘:设置路径、数据目录、数据库计数、已装 IDE、嵌入后端、worker pid 与运行时长。资料来源:apps/cli/CHANGELOG.md:6-12 | |||||
| `start \ | stop \ | restart` | 控制 worker 守护(一般无需手动启动) | |||
viewer | 打开 http://127.0.0.1:37777 浏览器界面 | |||||
doctor | 校验安装完整性 | |||||
search <query> [--limit N] [--no-semantic] | BM25 + 可选余弦重排 | |||||
compress <file> | 对文件执行 caveman 压缩 | |||||
reindex | 重建 FTS5 + 向量索引 | |||||
export <out.jsonl> | 导出观测为 JSONL | |||||
mcp | 启动 stdio MCP 服务 | |||||
| `config show \ | get \ | set \ | open \ | path \ | reset` | 基于 Zod .describe() 的自描述配置操作。资料来源:apps/cli/CHANGELOG.md:8-15 |
配置文件位于 ~/.cavemem/settings.json,关键字段包括 dataDir(默认 ~/.cavemem)、privacy.redactSecrets、privacy.excludePatterns、embedding.{provider,model,batchSize,autoStart,idleShutdownMs}。资料来源:README.md:55-60
已知问题与社区反馈
下列社区高频问题对架构理解有直接影响:
- #51 Viewer 未鉴权:worker 在
127.0.0.1:37777无任何鉴权即返回解压后的记忆;本地进程或经 CSRF / DNS rebinding 的网页可读取全部内容。架构层应将 Viewer 默认视为受信通道,但部署时需注意。资料来源:Issue #51 - #50 钩子无 matcher:Claude Code 安装器注册的
PostToolUse钩子未指定 matcher,导致所有工具 I/O 全部入库;privacy.excludePatterns在文档中承诺"永不读取"但代码层未消费(#48),privacy.redactSecrets是无操作占位符(#49)。 - #11 / #43 Windows 兼容性:Windows 下
cavemem start报spawn EFTYPE;Claude Code 钩子命令中的反斜杠在 git-bash 下被吞并为C:Usershp...,安装路径需在 Windows 上特殊处理。 - #37 better-sqlite3 在 Node 26 失败:V8 14.6 ABI 变更导致原生绑定加载失败;社区讨论提议用
bun:sqlite兜底。 - #39 跨项目上下文泄漏:
session-start钩子的"上一次会话摘要"未按 cwd 范围过滤,可能在项目 A 注入项目 B 的内容。 - #17 Codex 安装器过期:写入
~/.codex/config.json,而 Codex 实际读取config.toml,且钩子功能需features.codex_hooks = true显式开启。 - #3 MCP 静默退出(v0.1.3):CLI 的
mcp子命令通过动态import('@cavemem/mcp-server')期望副作用启动,但isMainEntry()守卫使main()未执行。v0.2.1 的补丁 c756051 修复该问题。
See Also
- cavemem Compression Pipeline & Lexicon
- cavemem MCP Server Reference
- cavemem Hooks & IDE Integrations
- cavemem Storage Schema & FTS5
- cavemem Configuration Reference
来源:https://github.com/JuliusBrussee/cavemem / 项目说明书
Compression Grammar, Settings & Privacy Controls
cavemem 的核心价值主张是「压缩态持久化」(compression-at-rest):会话事件经过语法压缩后再写入 SQLite,由本地工作者在后台重建向量索引以支持语义检索。本页说明负责这套机制的三块基石——压缩语法、设置架构、隐私控制——以及它们在源码中的真实行为。
继续阅读本节完整说明和来源证据。
概述
cavemem 的核心价值主张是「压缩态持久化」(compression-at-rest):会话事件经过语法压缩后再写入 SQLite,由本地工作者在后台重建向量索引以支持语义检索。本页说明负责这套机制的三块基石——压缩语法、设置架构、隐私控制——以及它们在源码中的真实行为。
数据流概览:
flowchart LR
Hook[Hook 事件] --> Redact[redactPrivate]
Redact --> Compress[Compress 引擎]
Compress --> Storage[(SQLite + FTS5)]
Storage --> Worker[后台 Worker]
Worker --> Embed[向量索引]
Storage --> MCP[MCP 工具]资料来源:packages/compress/src/privacy.ts:1-15、README.md 数据流描述
资料来源:packages/compress/src/privacy.ts:1-15、README.md 数据流描述
IDE Installers, Hooks & MCP Server
cavemem 是一个跨代理持久记忆系统,由三类协作模块组成。IDE 安装器负责在每个受支持的编码助手(Claude Code、Cursor、Gemini CLI、OpenCode、Codex)中注入钩子命令;钩子处理包在会话边界(SessionStart / SessionEnd)以及工具调用后(PostToolUse)触发压缩与写库;MCP 服务器则通过 stdio 向...
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
IDE 安装器、钩子与 MCP 服务器
概述与组件职责
cavemem 是一个跨代理持久记忆系统,由三类协作模块组成。IDE 安装器负责在每个受支持的编码助手(Claude Code、Cursor、Gemini CLI、OpenCode、Codex)中注入钩子命令;钩子处理包在会话边界(SessionStart / SessionEnd)以及工具调用后(PostToolUse)触发压缩与写库;MCP 服务器则通过 stdio 向代理暴露查询工具。三者共同保证「写入路径上无守护进程、读取路径上有本地守护进程」这一非协商性约束,使得钩子延迟不会反馈到代理的响应时间。
IDE 安装器架构
安装器接口与契约
Installer 接口定义了四个核心成员:id、label、detect(ctx)、install(ctx)、uninstall(ctx)。上下文 InstallContext 同时携带 IDE 配置目录、CLI 入口绝对路径、Node 二进制绝对路径以及本地数据目录。源码注释明确指出:IDE 配置必须以 nodeBin cliPath … 形式 spawn,不能直接 spawn 裸的 .js 文件——在 Windows 上后者会触发 EFTYPE 错误,因为 .js 没有关联的 binfmt 处理程序。
资料来源:packages/installers/src/types.ts:1-29、packages/installers/CHANGELOG.md
支持的 IDE 与配置差异
CLI 在 cavemem install 命令中注册的 IDE 列表由注册表(registry)驱动;当前受支持的目标为 claude-code、gemini-cli、opencode、codex、cursor。Codex 安装器使用 smol-toml 解析 ~/.codex/config.toml,按官方规范向 [features] 段添加 codex_hooks = true,并在 mcp_servers 中注册 cavemem,同时独立写入 ~/.codex/hooks.json。社区请求中的 Trae SOLO、Antigravity、GitHub Copilot 暂未列入注册表(#38、#40、#23)。
资料来源:packages/installers/src/codex.ts:38-67、packages/installers/package.json
钩子系统与跨平台行为
写入路径上的无守护进程约束
CLAUDE.md 明确指出:钩子可以「detach-spawn」worker,但永远不能等待它——观察值必须同步写入 SQLite。该约束确保 IDE 钩子的延迟不会进入代理的关键路径。钩子处理包按职责组织为独立的 5 个 handler(runner + 全部 5 个 lifecycle 事件 + 热路径预算检查),分别覆盖 session-start、session-end、post-tool-use 等事件。
资料来源:CLAUDE.md、packages/hooks/CHANGELOG.md
字段映射与协议演进
CLI 0.2.x 修订了钩子协议:处理器现在读取 Claude Code 实际发送的字段名 tool_name、tool_response、last_assistant_message、source、reason,同时保留旧字段别名 tool、tool_output、turn_summary 以兼容其他 IDE 与历史测试套件。该变化由 scripts/e2e-publish.sh 端到端验证——脚本会把工件打包、安装到隔离前缀、并用真实 Claude Code payload 驱动每个钩子事件。
跨平台已知问题
社区已记录多个与平台相关的故障:Windows 上的 spawn EFTYPE 已在 0.2.x 通过 nodeBin + cliPath 修复;Windows + Git Bash 环境下反斜杠路径被 bash 解析坍缩为 C:Usershp…(#43);OpenCode 桌面版没有钩子系统,仅暴露 MCP 协议,因此不会向 cavemem 数据库写入任何观察值,查询工具始终返回空(#45)。
MCP 服务器
MCP 服务器以 stdio 模式启动,通过 @modelcontextprotocol/sdk 提供四个渐进式披露工具:search、timeline、get_observations、list_sessions。其中 search 与 timeline 返回紧凑结果(id、score、snippet、ts),get_observations 按需取回完整正文。0.2.x 引入了「惰性单例」embedder:MCP 握手保持快速,模型仅在首次调用 search 时加载;新增的 embedding.batchSize / embedding.autoStart / embedding.idleShutdownMs 字段由 zod .describe() 自文档化。
资料来源:apps/mcp-server/package.json、apps/mcp-server/CHANGELOG.md、README.md
v0.2.1 修复了 cavemem mcp 命令静默退出的问题:CLI 的 mcp 子命令通过 await import('@cavemem/mcp-server') 触发导入副作用以启动服务器,但服务器模块将 main() 守护在 isMainEntry() 检查之后——动态导入时 import.meta.url 不等于 process.argv[1],因此 main() 从未运行。补丁将 mcp 子命令改为直接执行 stdio 服务器入口文件。
flowchart LR A[IDE 代理] -->|SessionStart/SessionEnd/PostToolUse| B[钩子脚本] B -->|同步写入| C[(SQLite + FTS5)] B -.->|detach-spawn| D[Worker 守护进程] D -->|回填嵌入| C D -->|HTTP 127.0.0.1:37777| E[只读 Viewer] A -->|MCP stdio| F[MCP Server] F -->|查询| C F -->|惰性加载| G[Embedder]
已知问题与社区反馈
- 隐私设置未生效:
privacy.redactSecrets默认true但代码中未被消费;privacy.excludePatterns文档声称「never read」但实际未被读取,匹配路径仍会被捕获(#48、#49)。 - 工具 I/O 无选择性捕获:
PostToolUse钩子注册时未指定matcher,敏感 MCP 工具的输入输出默认全部入库(#50)。 - 会话上下文跨项目泄漏:
session-start钩子未按cwd作用域隔离,可能在项目 A 中注入项目 B 的历史摘要(#39)。 - Worker HTTP 鉴权缺失:
127.0.0.1:37777绑定无身份验证,存在 CSRF / DNS-rebinding 风险(#51)。 - 原生绑定兼容性:Node.js 26.0.0 的 V8 14.6 破坏
better-sqlite3原生绑定(#37);WSL 安装也可能失败(#22)。
另请参阅
- 持久化与压缩架构
- 嵌入提供者配置
- 发布与端到端验证流程
CLI Commands, Worker & Known Failure Modes
cavemem 是一个面向多 IDE 的本地持久化记忆系统,由 apps/cli、本地 apps/worker 守护进程与 apps/mcp-server 三个进程协作构成。CLI 负责用户面命令、配置管理与 IDE 集成;Worker 提供只读查看器和后台嵌入回填;MCP Server 暴露查询工具。CLAUDE.md 将整体布局描述为 apps/cli(用户二进制)、a...
继续阅读本节完整说明和来源证据。
概述
cavemem 是一个面向多 IDE 的本地持久化记忆系统,由 apps/cli、本地 apps/worker 守护进程与 apps/mcp-server 三个进程协作构成。CLI 负责用户面命令、配置管理与 IDE 集成;Worker 提供只读查看器和后台嵌入回填;MCP Server 暴露查询工具。CLAUDE.md 将整体布局描述为 apps/cli(用户二进制)、apps/worker(本地 HTTP 守护进程)以及 apps/mcp-server(stdio MCP)三段式 资料来源:[CLAUDE.md]。
本页聚焦三个问题:CLI 公开了哪些命令、Worker 的运行时模型与边界、社区与仓库 issue 中反复出现的故障模式。
CLI 命令总览
CLI 基于 commander 与 kleur 构建,并使用 tsup 打包发布,@modelcontextprotocol/sdk 出现在依赖中以支持 cavemem mcp 子命令 资料来源:[apps/cli/package.json]。README.md 列出了当前稳定的顶层命令:
| 命令 | 用途 | |||||
|---|---|---|---|---|---|---|
cavemem install | 在 Claude Code / Cursor / Gemini CLI / OpenCode / Codex 中注册钩子 | |||||
cavemem status | 单窗格仪表板:settings 路径、数据目录、DB 计数、已安装 IDE、嵌入模型、worker pid 与运行时长 | |||||
| `cavemem config show\ | get\ | set\ | open\ | path\ | reset` | 基于 zod .describe() 的自文档化配置管理 |
| `cavemem start\ | stop\ | restart` | 控制 worker 守护进程(一般无需手动操作,钩子会触发自动启动) | |||
cavemem viewer | 在浏览器中打开只读记忆查看器 | |||||
cavemem doctor | 验证安装完整性 | |||||
cavemem search <query> [--limit N] [--no-semantic] | BM25 + 余弦重排搜索记忆 | |||||
cavemem compress <file> | 用 caveman 语法压缩文件 | |||||
cavemem reindex | 重建 FTS5 + 向量索引 | |||||
cavemem export <out.jsonl> | 将观察记录导出为 JSONL | |||||
cavemem mcp | 启动 stdio MCP 服务器 |
apps/cli/CHANGELOG.md 强调新增的 cavemem config 子命令以 zod schema 的 .describe() 字符串为唯一信息源,避免文档与代码漂移;settingsDocs() 导出为每个字段提供 {path, type, default, description} 资料来源:[apps/cli/CHANGELOG.md]。
Worker 守护进程
apps/worker 在 127.0.0.1:<workerPort>(默认 37777)上绑定本地 HTTP 端点,承担两件事:提供浏览器端只读 viewer,以及在后台循环为新写入的观察生成向量嵌入 资料来源:[CLAUDE.md]。apps/worker/CHANGELOG.md 进一步说明 worker 与三个嵌入配置项 embedding.batchSize、embedding.autoStart、embedding.idleShutdownMs 联动 资料来源:[apps/worker/CHANGELOG.md]。
CLAUDE.md 文档化的"非协商规则"是理解 worker 行为的关键:钩子可以 detach-spawn 启动 worker,但绝不能 wait 在它上面;观察记录必须同步写入 资料来源:[CLAUDE.md]。这意味着写入路径完全不依赖 worker 可达,写入失败也只与 SQLite 相关,与 worker 进程解耦。
flowchart LR Hook[IDE Hook 脚本] -->|同步写入| DB[(SQLite + FTS5 + 向量)] Hook -.->|detach-spawn| Worker[Worker Daemon<br/>127.0.0.1:37777] Worker -->|回填嵌入| DB Worker --> Viewer[浏览器只读 UI] MCP[MCP stdio Server] -->|查询| DB CLI[apps/cli] -->|status / search / viewer| DB CLI -.->|按需| Worker
钩子协议契约
钩子事件载荷在 packages/hooks/src/types.ts 中定义,并同时支持 Claude Code 的新字段(tool_name、tool_response、last_assistant_message、source、reason)与遗留别名(tool、tool_output、turn_summary)资料来源:[packages/hooks/CHANGELOG.md]。e2e-publish.sh 在打包后将所有钩子事件与真实 Claude Code 负载对齐,从而在全局安装场景下也能端到端工作 资料来源:[packages/hooks/CHANGELOG.md]。
已知故障模式
下表汇总了社区与 issue 中反复出现、可被运维或升级流程提前识别的故障模式(事件与版本信息来自仓库 issue 与 release notes):
| 现象 | 触发条件 | 状态 / 备注 |
|---|---|---|
cavemem mcp 静默退出 | 打包后 isMainEntry() 判定失败,main() 未执行 | 已在 v0.2.1 由 c756051 修复:CLI 直接调用 main 而非依赖 import 副作用 资料来源:[apps/cli/CHANGELOG.md] |
cavemem start 报 spawn EFTYPE | Windows 全局安装后 npm shim 触发 | 同时影响钩子的 worker 自动启动 |
better-sqlite3 加载失败 | Node.js 26.0.0(V8 14.6)原生绑定不兼容 | 社区建议以 bun:sqlite 作为回退 |
| Claude Code 钩子路径折叠 | Windows 下 C:\Users\hp\... 在 bash -c 中被解析为 C:Usershp... | 安装器需改写为正斜杠或跨平台序列化 |
cavemem status 报 DB fail | better_sqlite3.node 是为旧版 V8 编译的 | WSL/Linux 全局安装常见 |
session-start 跨项目泄漏 | 钩子未按 cwd 过滤"最近会话" | 启动 B 项目时可能注入 A 项目上下文 |
| Codex 钩子未安装 | 安装器把配置写到 config.json,而 Codex 实际读取 config.toml | 需要在 ~/.codex/config.toml 启用 codex_hooks |
| OpenCode 桌面端不工作 | opencode 没有钩子系统,只有 MCP | 桌面端无数据来源,仅查询可用 |
安全注意事项
下列问题源自仓库 issue,反映出当前版本在隐私与本地暴露面方面的边界:
- Worker 查看器无认证(issue #51):
127.0.0.1:37777上多条路由返回解压后的记忆内容,本地进程或通过 CSRF / DNS-rebinding 攻击的网页均可读取。 - 无工具级白名单(issue #50):Claude Code 安装器注册
PostToolUse时没有matcher,post-tool-use.ts默认捕获全部工具的输入与输出。 redactSecrets是空操作(issue #49):配置项privacy.redactSecrets默认true,但代码中没有任何消费点,工具输出中的密钥以明文存储。privacy.excludePatterns不被读取(issue #48):README 与 CLAUDE 声称"在写入边界强制执行",但实际从未读取,匹配路径仍被捕获。
这些已知问题意味着 cavemem status 通过、cavemem doctor 通过,并不等于隐私边界已就位;用户在公开机器上运行前应额外审计。
See Also
来源:https://github.com/JuliusBrussee/cavemem / 项目说明书
失败模式与踩坑日记
保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
可能增加新用户试用和生产接入成本。
可能阻塞安装或首次运行。
可能增加新用户试用和生产接入成本。
Developers may expose sensitive permissions or credentials: No per-tool capture allowlist/matcher: sensitive MCP tool I/O captured by default
Pitfall Log / 踩坑日志
项目:JuliusBrussee/cavemem
摘要:发现 35 个潜在踩坑项,其中 8 个为 high/blocking;最高优先级:安装坑 - 来源证据:Codex installer is out of date。
1. 安装坑 · 来源证据:Codex installer is out of date
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Codex installer is out of date
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/17 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。
2. 安装坑 · 来源证据:cavemem start fails with spawn EFTYPE on Windows
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:cavemem start fails with spawn EFTYPE on Windows
- 对用户的影响:可能阻塞安装或首次运行。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/11 | 来源讨论提到 node 相关条件,需在安装/试用前复核。
3. 配置坑 · 来源证据:session-start: prior-session context not scoped to cwd, leaks across unrelated projects
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个配置相关的待验证问题:session-start: prior-session context not scoped to cwd, leaks across unrelated projects
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/39 | 来源讨论提到 node 相关条件,需在安装/试用前复核。
4. 安全/权限坑 · 失败模式:security_permissions: No per-tool capture allowlist/matcher: sensitive MCP tool I/O captured by default
- 严重度:high
- 证据强度:source_linked
- 发现:Developers should check this security_permissions risk before relying on the project: No per-tool capture allowlist/matcher: sensitive MCP tool I/O captured by default
- 对用户的影响:Developers may expose sensitive permissions or credentials: No per-tool capture allowlist/matcher: sensitive MCP tool I/O captured by default
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/50 | No per-tool capture allowlist/matcher: sensitive MCP tool I/O captured by default
5. 安全/权限坑 · 失败模式:security_permissions: Windows: hook commands written with backslashes break under bash -c (path collapse to `C:User...
- 严重度:high
- 证据强度:source_linked
- 发现:Developers should check this security_permissions risk before relying on the project: Windows: hook commands written with backslashes break under bash -c (path collapse to
C:Usershp...) - 对用户的影响:Developers may expose sensitive permissions or credentials: Windows: hook commands written with backslashes break under bash -c (path collapse to
C:Usershp...) - 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/43 | Windows: hook commands written with backslashes break under bash -c (path collapse to
C:Usershp...)
6. 安全/权限坑 · 失败模式:security_permissions: Worker HTTP viewer on 127.0.0.1:37777 is unauthenticated and serves decompressed memory
- 严重度:high
- 证据强度:source_linked
- 发现:Developers should check this security_permissions risk before relying on the project: Worker HTTP viewer on 127.0.0.1:37777 is unauthenticated and serves decompressed memory
- 对用户的影响:Developers may expose sensitive permissions or credentials: Worker HTTP viewer on 127.0.0.1:37777 is unauthenticated and serves decompressed memory
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/51 | Worker HTTP viewer on 127.0.0.1:37777 is unauthenticated and serves decompressed memory
7. 安全/权限坑 · 失败模式:security_permissions: privacy.excludePatterns is documented as enforced but is never read (matching paths still cap...
- 严重度:high
- 证据强度:source_linked
- 发现:Developers should check this security_permissions risk before relying on the project: privacy.excludePatterns is documented as enforced but is never read (matching paths still captured)
- 对用户的影响:Developers may expose sensitive permissions or credentials: privacy.excludePatterns is documented as enforced but is never read (matching paths still captured)
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/48 | privacy.excludePatterns is documented as enforced but is never read (matching paths still captured)
8. 安全/权限坑 · 失败模式:security_permissions: redactSecrets is a no-op: secrets in tool output are stored verbatim (no output-side scrubber)
- 严重度:high
- 证据强度:source_linked
- 发现:Developers should check this security_permissions risk before relying on the project: redactSecrets is a no-op: secrets in tool output are stored verbatim (no output-side scrubber)
- 对用户的影响:Developers may expose sensitive permissions or credentials: redactSecrets is a no-op: secrets in tool output are stored verbatim (no output-side scrubber)
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/49 | redactSecrets is a no-op: secrets in tool output are stored verbatim (no output-side scrubber)
9. 安装坑 · 失败模式:installation: Add Antigravity IDE support
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: Add Antigravity IDE support
- 对用户的影响:Developers may fail before the first successful local run: Add Antigravity IDE support
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/38 | Add Antigravity IDE support
10. 安装坑 · 失败模式:installation: Add Trae SOLO IDE support
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: Add Trae SOLO IDE support
- 对用户的影响:Developers may fail before the first successful local run: Add Trae SOLO IDE support
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/40 | Add Trae SOLO IDE support
11. 安装坑 · 失败模式:installation: Codex installer is out of date
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: Codex installer is out of date
- 对用户的影响:Developers may fail before the first successful local run: Codex installer is out of date
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/17 | Codex installer is out of date
12. 安装坑 · 失败模式:installation: cavemem start fails with spawn EFTYPE on Windows
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: cavemem start fails with spawn EFTYPE on Windows
- 对用户的影响:Developers may fail before the first successful local run: cavemem start fails with spawn EFTYPE on Windows
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/11 | cavemem start fails with spawn EFTYPE on Windows
13. 安装坑 · 失败模式:installation: cavemem v0.1.0
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: cavemem v0.1.0
- 对用户的影响:Upgrade or migration may change expected behavior: cavemem v0.1.0
- 证据:failure_mode_cluster:github_release | https://github.com/JuliusBrussee/cavemem/releases/tag/v0.1.0 | cavemem v0.1.0
14. 安装坑 · 失败模式:installation: cavemem v0.1.1
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: cavemem v0.1.1
- 对用户的影响:Upgrade or migration may change expected behavior: cavemem v0.1.1
- 证据:failure_mode_cluster:github_release | https://github.com/JuliusBrussee/cavemem/releases/tag/v0.1.1 | cavemem v0.1.1
15. 安装坑 · 失败模式:installation: v0.1.3
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: v0.1.3
- 对用户的影响:Upgrade or migration may change expected behavior: v0.1.3
- 证据:failure_mode_cluster:github_release | https://github.com/JuliusBrussee/cavemem/releases/tag/v0.1.3 | v0.1.3
16. 安装坑 · 失败模式:installation: v0.2.1
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this installation risk before relying on the project: v0.2.1
- 对用户的影响:Upgrade or migration may change expected behavior: v0.2.1
- 证据:failure_mode_cluster:github_release | https://github.com/JuliusBrussee/cavemem/releases/tag/v0.2.1 | v0.2.1
17. 安装坑 · 来源证据:Add Antigravity IDE support
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Add Antigravity IDE support
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/38 | 来源类型 github_issue 暴露的待验证使用条件。
18. 安装坑 · 来源证据:Add Trae SOLO IDE support
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Add Trae SOLO IDE support
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/40 | 来源类型 github_issue 暴露的待验证使用条件。
19. 安装坑 · 来源证据:No per-tool capture allowlist/matcher: sensitive MCP tool I/O captured by default
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:No per-tool capture allowlist/matcher: sensitive MCP tool I/O captured by default
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/50 | 来源类型 github_issue 暴露的待验证使用条件。
20. 安装坑 · 来源证据:Windows: hook commands written with backslashes break under bash -c (path collapse to `C:Usershp...`)
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Windows: hook commands written with backslashes break under bash -c (path collapse to
C:Usershp...) - 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/43 | 来源讨论提到 node 相关条件,需在安装/试用前复核。
21. 安装坑 · 来源证据:bug: better-sqlite3 native bindings fail on Node.js 26.0.0 (v147) - use bun:sqlite as fallback?
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:bug: better-sqlite3 native bindings fail on Node.js 26.0.0 (v147) - use bun:sqlite as fallback?
- 对用户的影响:可能影响升级、迁移或版本选择。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/37 | 来源讨论提到 node 相关条件,需在安装/试用前复核。
22. 安装坑 · 来源证据:privacy.excludePatterns is documented as enforced but is never read (matching paths still captured)
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:privacy.excludePatterns is documented as enforced but is never read (matching paths still captured)
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/48 | 来源类型 github_issue 暴露的待验证使用条件。
23. 配置坑 · 可能修改宿主 AI 配置
- 严重度:medium
- 证据强度:source_linked
- 发现:项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主,或安装命令涉及用户配置目录。
- 对用户的影响:安装可能改变本机 AI 工具行为,用户需要知道写入位置和回滚方法。
- 证据:capability.host_targets | github_repo:1213956965 | https://github.com/JuliusBrussee/cavemem | host_targets=claude_code, claude, mcp_host, cursor, gemini_cli
24. 配置坑 · 来源证据:Cavemen with Opecode Desktop App on windows not working
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个配置相关的待验证问题:Cavemen with Opecode Desktop App on windows not working
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/45 | 来源讨论提到 windows 相关条件,需在安装/试用前复核。
25. 能力坑 · 能力判断依赖假设
- 严重度:medium
- 证据强度:source_linked
- 发现:README/documentation is current enough for a first validation pass.
- 对用户的影响:假设不成立时,用户拿不到承诺的能力。
- 证据:capability.assumptions | github_repo:1213956965 | https://github.com/JuliusBrussee/cavemem | README/documentation is current enough for a first validation pass.
26. 维护坑 · 失败模式:migration: bug: better-sqlite3 native bindings fail on Node.js 26.0.0 (v147) - use bun:sqlite as fallback?
- 严重度:medium
- 证据强度:source_linked
- 发现:Developers should check this migration risk before relying on the project: bug: better-sqlite3 native bindings fail on Node.js 26.0.0 (v147) - use bun:sqlite as fallback?
- 对用户的影响:Developers may hit a documented source-backed failure mode: bug: better-sqlite3 native bindings fail on Node.js 26.0.0 (v147) - use bun:sqlite as fallback?
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/37 | bug: better-sqlite3 native bindings fail on Node.js 26.0.0 (v147) - use bun:sqlite as fallback?
27. 维护坑 · 维护活跃度未知
- 严重度:medium
- 证据强度:source_linked
- 发现:未记录 last_activity_observed。
- 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
- 证据:evidence.maintainer_signals | github_repo:1213956965 | https://github.com/JuliusBrussee/cavemem | last_activity_observed missing
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 证据:downstream_validation.risk_items | github_repo:1213956965 | https://github.com/JuliusBrussee/cavemem | no_demo; severity=medium
29. 安全/权限坑 · 存在评分风险
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 对用户的影响:风险会影响是否适合普通用户安装。
- 证据:risks.scoring_risks | github_repo:1213956965 | https://github.com/JuliusBrussee/cavemem | no_demo; severity=medium
30. 安全/权限坑 · 来源证据:Worker HTTP viewer on 127.0.0.1:37777 is unauthenticated and serves decompressed memory
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Worker HTTP viewer on 127.0.0.1:37777 is unauthenticated and serves decompressed memory
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/51 | 来源类型 github_issue 暴露的待验证使用条件。
31. 安全/权限坑 · 来源证据:redactSecrets is a no-op: secrets in tool output are stored verbatim (no output-side scrubber)
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:redactSecrets is a no-op: secrets in tool output are stored verbatim (no output-side scrubber)
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 证据:community_evidence:github | https://github.com/JuliusBrussee/cavemem/issues/49 | 来源类型 github_issue 暴露的待验证使用条件。
32. 能力坑 · 失败模式:capability: session-start: prior-session context not scoped to cwd, leaks across unrelated projects
- 严重度:low
- 证据强度:source_linked
- 发现:Developers should check this capability risk before relying on the project: session-start: prior-session context not scoped to cwd, leaks across unrelated projects
- 对用户的影响:Developers may hit a documented source-backed failure mode: session-start: prior-session context not scoped to cwd, leaks across unrelated projects
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/39 | session-start: prior-session context not scoped to cwd, leaks across unrelated projects
33. 运行坑 · 失败模式:performance: Cavemen with Opecode Desktop App on windows not working
- 严重度:low
- 证据强度:source_linked
- 发现:Developers should check this performance risk before relying on the project: Cavemen with Opecode Desktop App on windows not working
- 对用户的影响:Developers may hit a documented source-backed failure mode: Cavemen with Opecode Desktop App on windows not working
- 证据:failure_mode_cluster:github_issue | https://github.com/JuliusBrussee/cavemem/issues/45 | Cavemen with Opecode Desktop App on windows not working
34. 维护坑 · issue/PR 响应质量未知
- 严重度:low
- 证据强度:source_linked
- 发现:issue_or_pr_quality=unknown。
- 对用户的影响:用户无法判断遇到问题后是否有人维护。
- 证据:evidence.maintainer_signals | github_repo:1213956965 | https://github.com/JuliusBrussee/cavemem | issue_or_pr_quality=unknown
35. 维护坑 · 发布节奏不明确
- 严重度:low
- 证据强度:source_linked
- 发现:release_recency=unknown。
- 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
- 证据:evidence.maintainer_signals | github_repo:1213956965 | https://github.com/JuliusBrussee/cavemem | release_recency=unknown
来源:Doramagic 发现、验证与编译记录