Skip to content

v0.15.1 — 补上 0.15.0 漏进包体的自述与 README 核对

Choose a tag to compare

@Max-Null Max-Null released this 28 Sep 22:10
· 12 commits to main since this release

这是一个补丁版: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 —

  1. 第一版断言没红:它检查「名字出现在自述全文里」,而 memory_move 在后面的括号说明里也有一份。
  2. 第二版收紧到「工具清单那一段」——仍然没红:正则 [^。]* 太贪,跨到了说明段。
  3. 第三版「取清单段 + 剥掉中文括号」才红在正确位置。

这条也顺带暴露了一个坑:registeredToolNames 是模块级数组,apply 时不清空的话,同进程多次挂载会累积成双份——而断言里的数字是固定的。这个坑只有跑全套才暴露,单独跑那条用例反而是绿的。

门槛

typecheck 零错误,174 测试全绿,构建产物已确认转正(dist/self.js 里 12 个工具 在、11 个工具 不在),check:memory 全绿。

教训

§2(README 与实现核对)应当在 §8(发布)之前完成并进入包体。这次是发布先落地、核对后完成——两者的时间差就是这一版的全部内容。