feat: vendor official hippo memory extension

This commit is contained in:
云服务部-叶林立
2026-08-19 21:07:23 +08:00
parent 9b2ec36a2d
commit 3cdcc3510b
21 changed files with 975 additions and 106 deletions
+23 -8
View File
@@ -11,7 +11,7 @@
- `pi-context-view@0.4.2`:查看上下文占用。
- `@firstpick/pi-extension-codex-fast-mode@0.1.1`:为 Codex provider 提供会话级 `/fast-mode`
- `pi-lsp@0.1.7`:为 TypeScript/JavaScript、Kotlin 和 Java 提供 LSP 诊断、跳转与符号工具;TypeScript 后端由组合包内置。
- `pi-hermes-memory@0.9.6`:提供持久记忆、会话搜索和 secret scanning
- `hippo-memory-pi/`:从官方 `hippo-memory v1.33.0` 源码导入的 Pi Extension,提供项目记忆注入、错误捕获和 sleep consolidation
- `@ogulcancelik/pi-codex-compaction@0.1.3`:为 `openai-codex` 提供原生远程压缩。
- `@ogulcancelik/pi-minimal-footer@0.1.10`:用紧凑的上下文仪表和订阅用量条替换默认 footer。
- `pi-condense@2.9.1`:把已完成的工具调用批次总结为可恢复的短摘要,并通过 `context_tree_query` 按需取回原始输出;组合包首次加载时默认开启。
@@ -104,9 +104,12 @@ PI_PACKAGE_SOURCE="git:git@bitbucket.org:siakitem/my-pi.git" ./update.sh
`package.json` 对外部依赖使用精确版本,对本仓库维护的包使用 `file:` 路径;`package-lock.json` 固定完整依赖树。不要再用项目级 `.pi/settings.json` 重复安装这些扩展,否则同一扩展可能被加载两次。
Hermes Memory 的 SQLite search 依赖 `better-sqlite3` 原生模块;根包只在 `allowScripts`
精确放行当前锁定版本的构建脚本。若升级 Hermes 或 `better-sqlite3`,必须同步核对并更新该精确
版本,不能把其他依赖的 install scripts 一并放行。
Hippo 官方 Pi Extension 存在于上游 Git 仓库的 `extensions/pi-extension/`,但没有包含在
`hippo-memory@1.33.0` npm tarball 中。本仓库从官方 `v1.33.0` /
`e928179a3b35e8fe5837878aed071d6025ced45c` 导入源码到 `hippo-memory-pi/` 并直接加载;
匹配的 CLI 版本由 `config/hippo-memory-version` 声明。`install.sh` 会在 CLI 缺失时询问是否执行
`npm install -g hippo-memory@<固定版本>`,但不会选择项目或执行 `hippo init`。用户应进入需要记忆的
项目目录自行运行 `hippo init`
默认配置不需要系统 `rtk` CLI。只有以后在 `/rtk` 中主动开启
`RTK command rewriting` 时,才需要另外安装 `rtk` 可执行文件。
@@ -275,11 +278,23 @@ brew install JetBrains/utils/kotlin-lsp
JDT LS 需要 Java 21 或更高版本;可使用带 `jdtls` wrapper 的官方发行包或系统包。
### Hermes Memory
### Hippo Memory
Hermes Memory 使用上游默认的 `policy-only` 模式:不把完整记忆直接注入每轮上下文,由工具按需
搜索;同时启用后台复核、自动 consolidation、session search 和 secret scanning。首次需要检索
旧会话时运行 `/memory-index-sessions`
官方扩展要求全局 `hippo` CLI,并要求目标项目存在 `.hippo/`。组合包加载仓库内官方扩展源码,
注册 `hippo_recall``hippo_remember``hippo_outcome``hippo_status``hippo_context` 五个工具。
Session 启动时它注入项目记忆上下文,失败工具结果经过噪声过滤、每 Session 上限和去重后自动记录,
Session 关闭时运行 `hippo sleep`,从 Git 学习、整理记忆并执行官方共享逻辑。项目 `.hippo/`
本机记忆状态,本仓库默认忽略提交。
Hermes 的 `memory_add` / `session_search` / `skill_manage` 与 Markdown/SQLite 数据不会被 Hippo 自动迁移;
切换扩展不会删除 `~/.pi/agent/pi-hermes-memory/``~/.pi/agent/projects-memory/` 中的旧数据。需要保留的
旧记忆应另行审核后导入,不在安装、升级或卸载流程中自动转换或删除。
`install.sh` 只对缺失的 Hippo CLI 询问一次,默认拒绝;缺少 npm 时保留已完成的组合包安装并报告失败。
脚本不会扫描仓库、选择目录或执行 `hippo init``update.sh` 只处理已经存在且确认属于 npm 全局安装的
Hippo CLI:从升级后的组合包读取固定版本,先通过 npm 确认版本存在,再比较本地版本,只有不同时才升级。
`uninstall.sh` 移除组合包后询问是否一并执行 `npm uninstall -g hippo-memory`,默认保留;无论选择什么,
`.hippo/` 和用户记忆数据都不会被脚本删除。
### Codex 原生远程压缩