启动入口只保留查找和记录时机。从 Trellis 迁移时,清掉仍指向已删除脚本的 hook,并保留用户自己的配置。
用户能感受到的变化
- 更短的会话入口:SessionStart 不再携带“如何更新主题、回读和写 journal”的步骤。这些步骤留在
remember命令里。compact 之后的入口会提示:摘要里丢掉的细节,可以用mem recall/mem read从本地会话历史找回。 - 迁移不再留下坏 hook:删除
inject-*.py和statusline.py之前,会先从.claude/settings.json和.codex/hooks.json去掉对应命令,再写入 mini-trellis 的 SessionStart。用户自己的 hook 和env保留。 - Pi 与 Codex 配置:去掉
./extensions/trellis/index.ts、npm:pi-subagents,以及 Trellis 写入的[agents] max_depth = 1。其他 extension、package 和用户键保留。 - 可补跑:如果上次迁移已经删了脚本,但配置里还留着
inject-*.py,再运行一次migrate会清掉这些条目。 - 拒绝过的方案可以记下:值得以后不要重试的做法,记成 rejected,不写进当前 spec。
- 大规模迁移仓库检索:
mem recall不再因笔记内部交叉链接超过 200 条或深层非 Markdown 数据目录而误报doc-search-incomplete,并将正式研究笔记排在迁移归档的legacy/任务文件之前;doctor将unknown检查项显示为?。
get_context.py 仍然保留。OpenCode 用它判断 monorepo 的 spec 范围。已从模板中删除、并且 migrate / refresh 会从项目里清掉的任务引擎模块:task_store.py、task_context.py、task_utils.py、task_queue.py、cli_adapter.py。
升级与核对
升级前请备份项目知识和自定义配置,包括被 Git 忽略的文件。
已有 mini-trellis 项目:
mini-trellis upgrade
mini-trellis refresh --dry-run
mini-trellis refresh
mini-trellis doctor
从 Trellis 迁入,或上次迁移后 hook 仍报缺少 .py 文件:
mini-trellis migrate --dry-run
mini-trellis migrate
mini-trellis doctor
Refresh 只更新受管理且未被本地修改的文件。完成后开启新会话。Codex 仍需分别信任项目和 hook,见 README。
上下文开销与兼容性
- 上下文实测:在同一测试仓库完成 10 轮后端修改任务、且两边完整读取相同的 3 份后端规范(2,690 字符)与研究笔记(474 字符)的前提下,会话启动注入从 7,883 字符降至 1,167 字符,10 轮累计注入从 37,619 字符降至 4,910 字符(减少 86.9%)。在包含 19 份领域规范(13.7 万字符)与 262 篇迁移笔记(237 万字符)的生产仓库中,会话启动仍保持在 1,171 字符。
- 多宿主行为一致:OpenCode 和 Pi 的启动入口与 Claude Code / Codex 统一为短入口;Claude Code 与 Codex 在
/compact后额外提示从本地会话历史找回摘要遗漏的细节。