Repository navigation
v0.15.1 — 补上 0.15.0 漏进包体的自述与 README 核对
这是一个补丁版:0.15.0 发布时,它的 README 与自述核对还没落地。
发生了什么
0.15.0 在 06:05 发布,而 README / 自述的核对在 06:06–06:08 才完成——发布抢在了核对前面。于是已发布的包体里:
- 自述(
memory:self,模型每轮都会读到的那段)说「你有 11 个工具」,而实际注册 12 个 - 自述里那条「自动升上来的常驻在 30 天未命中后撤下」——0.13.0 已改为只计量不生效
- README 有五处在描述两条已被取消的自动规则(命中累计 2 次自动升常驻、30 天未命中自动撤下)
验证方式:从 npm 下载 @max-null/dsh-memory@0.15.0 的 tarball 解包,dist/self.js 里 11 个工具 在、12 个工具 不在。
这一版改了什么
- 自述的工具清单补上
memory_move,数字改为 12 个;那条已停用的自动规则改成如实描述。 - README:删掉流程图里两行已取消的规则,改写两段说明,「超预算按最近使用优先」改为最近更新(0.12.0 就改了的行为,README 一直停在旧写法),工具清单补全到 12 个。
- 工具清单不再手抄:
index.ts新增registeredToolNames——注册时登记(ToolRegistry只提供register/get,没有列举 API,没法反查注册表)。新增用例遍历它,断言每个工具名都出现在自述清单里。
关于那把锁
负向控制实测过三轮才真正锁住:从清单里删掉 memory_move —
- 第一版断言没红:它检查「名字出现在自述全文里」,而
memory_move在后面的括号说明里也有一份。 - 第二版收紧到「工具清单那一段」——仍然没红:正则
[^。]*太贪,跨到了说明段。 - 第三版「取清单段 + 剥掉中文括号」才红在正确位置。
这条也顺带暴露了一个坑:registeredToolNames 是模块级数组,apply 时不清空的话,同进程多次挂载会累积成双份——而断言里的数字是固定的。这个坑只有跑全套才暴露,单独跑那条用例反而是绿的。
门槛
typecheck 零错误,174 测试全绿,构建产物已确认转正(dist/self.js 里 12 个工具 在、11 个工具 不在),check:memory 全绿。
教训
§2(README 与实现核对)应当在 §8(发布)之前完成并进入包体。这次是发布先落地、核对后完成——两者的时间差就是这一版的全部内容。