v0.3.2
2026-11-01。问一条已经写下的规则时,复述问题的那句话不再把规则笔记挤出默认结果。正文写了规则的现行笔记,排在标题重复查询的归档任务前面。归档任务正文也提到主题词时同样成立。
提示词没有加长。升级步骤在文末。
回归测试覆盖的行为
- 提问不再挤掉规则。 用户原话如果只是在重复查询,后面再加「写出路径」这类说明,也不会单独占满默认前三条。问题里带了
TASK-4419这类编号时,也仍按提问处理,不当成答案。笔记少一个查询词,只要正文写了规则,仍能进默认结果。 - 确认、纠正与否决仍保留。 用户原话只有在每个词都是查询词或请求词时,才当成提问。多出来的事实(例如「改用指数退避,固定间隔已废弃」)即使没有「确认」或数字,也保留检索资格。带数字的纠正和中文否决同样保留。
- 现行正文先于归档标题。 比较时不把第一个标题当成正文。标题下只有 TODO 的现行笔记,不能挤掉正文里写了规则的归档。正文写了规则的现行笔记排在标题重复查询的迁移归档前面,包括归档正文自己也讨论了主题词的情况。查询里只有一个共有普通词时,仍不足以让现行笔记压过归档。
TASK-4419这类带数字的编号先于通用词比较。用完整路径或唯一标识符仍能找到归档,并保留归档状态。已声明的替代关系、--limit 1和范围检查没有改。 - 单词查询。 单个查询词(包括没有空格的中文词)也能用正文证据判断,不再要求至少两个词。
以上都有召回回归测试。查询时怎么表现,见 recall 会返回什么。
已知边界
这些是词表与阈值启发式,不是语义分类。
- 提问判定是保守的:看是不是整句都在复述问题,不靠确认词表。无法归类的用户原话保留原来的检索资格。请求词之外的新词不会被清成弱线索。
- 正文证据要求命中至少一个词,多词查询还要求至少两个词且过半。只共享一个普通词的现行笔记不会因此压过归档。
- 标识符只认查询词中的数字,不含数字的编号不走这条优先。
- 第一个标题被排除后,后面的标题行仍算正文。没有
#的纯文本标题仍算正文。
摘录足够之后
原有说明仍然是:摘录里已经有规则、出处和必要条件时,记忆命令停在一次 recall;缺条件再 read;不转成 search 或 context。
2026-10-23,Claude Code 2.1.306 和 Codex CLI 0.159.2 上,短规范查了六次。六次的记忆命令都是一次 recall,没有 mem read、mem search 或 mem context。其中五次仍然自己打开了文件,或在工作区里再搜了一次:三次直接打开规范,两次在 recall 之后又用 rg 搜了一遍。只有一次停在单独的 recall。这不是「已经不再读文件」。
2026-11-01,DeepSeek Harness dsh 0.2.1-rc.2 的 headless 用已配置的 deepseek-ai/DeepSeek-V4.1-Flash-1017 问了一次现行规则。一次 recall 之后停住,没有再读文件或搜索。回答采用的是现行笔记里的 4 次,并把归档里的 9 次标成旧草稿。同一天 Claude Code 用同一模型没有跑通:网关返回空响应,这次没有工具调用,不能当作通过。
升级与核对
升级前备份项目知识和自定义配置,包括被 Git 忽略的文件。
已有 mini-trellis 项目:
mini-trellis upgrade
mini-trellis refresh --dry-run
mini-trellis refresh
mini-trellis doctor
upgrade 更新全局 CLI。refresh 只更新受管理且未被本地修改的文件,保留 .trellis/spec/、research/、workspace/ 和用户自己的配置。完成后开启新会话。
从 Trellis 迁入仍使用 mini-trellis migrate --dry-run,确认后再执行 mini-trellis migrate。