Skip to content

v0.8.1 — 0.8.0 之后做的是一次机制体检:不问"还能加什么",而是数每个机制到底活没活。

Choose a tag to compare

@cayan0x cayan0x released this 26 Sep 12:53
· 33 commits to main since this release

0.8.0 之后做的是一次机制体检:不问"还能加什么",而是数每个机制到底活没活。结论很直接——有几个机制从来没响过,而病根往往是我们对真实形状的假设错了。本版主线是减法 + 把瞎掉的判据修回来,以及一条你提了很久的事:输出要给人看的样子。

移除(体检证据驱动)

  • lume_patch 下线:A/B 实测(4 任务配对)省 token 5.3%、未达预设门槛(≥20%),且真实工作里 0 次调用;代码留在 077c46c 可 revert。
  • unfounded-change 触发器下线:宿主 dsh-fs-observation-policy 已把"先读后改"做成硬报错,我们的软提醒永远轮不到触发。
  • 不可逆操作闸整体下线(按你的要求):规则不该写死在代码里,也不该越过使用者的意图——真机已出现"用户明确要求跑 git reset --hard 却被硬拒"。将来若重做,须做成可配置策略 + 默认放行 + 用户明确要求即通过。

修复(都是"机制静默失效")

  • 失败判定看不见 Node 断言失败:FAILURE_RE 用 \berror\b,匹配不到 AssertionError(error 前是 n,无词边界)→ 这台机器上所有"Node 断言型失败"一直被读成成功。它是"红了要不要立刻闭环"的共同判据(验证结算 / 死路提示 / 增量验证 / 交付门槛),修好可能唤醒多条长期不响的机制。
  • 假设台账冷启动死锁:空台账 → 渲染返回 null → 模型不知道有这东西 → 永远不写第一条(14 天 0 次调用)。改为插件自动入账(验证非成功即写一条,状态 open;"已排除"仍由模型带证据裁决),台账从 0 → 1 条,机制转起来了。
  • 闸门挂在易失计数器上(已随闸移除,教训保留):真机里失败常被判成 unknown(PowerShell 管道吞退出码)→ 计数器恒 0 → 闸门永不开。不要用内存计数器当判据,要用持久化状态。

新增

  • 输出的受众:对话框里的文字是给人看的——从文档/代码搬来的代号、字段名、编号(P0 / user_id / ERR_ASSERTION)第一次出现必须用一短句说明它是什么;讲解只答三问(做了什么 / 凭什么说它对 / 还剩什么风险)。配机械判据(未解释代号识别:排除用户说过的、带解释的、代码块内、常见技术词)+ 每会话一次的提醒。诚实边界:输出拦不住,这是提醒层不是门槛。
  • scripts/boot-timing.mjs:按日志相对时间戳量每次启动的就绪耗时(用于定位"重启慢")。

降噪

  • 删掉 2 处与宿主机械强制重复的条款句(先读后改 / 授权);todo-discipline 查证已是压缩版,未虚报改动。
  • 41 处注入文案术语人话化:载具→记录、对账→核对、台账→记录、判据→怎么算、漂移→对不上、裁决→下结论、先归因→先分清是哪类原因——模型会模仿我们的腔调,想让它讲人话,先让我们对它说的话像人话。

工程

  • install-local 默认只装被投影的那一个 generation(此前每次改写 20 个 → 真机启动被拖到 148s 后被杀;修完启动回到 8–30s 级)。
  • 实验纪律:测试提示只写任务与约束,不写期望的风格/行为(两次栽在"把答案写进题目"上);门/规则必须用真实命令形状回归(git -C <路径>、cd …;、2>&1 | Select-Object 这类包装)。

安装:dsh plugin add lume-dsh-plugin(指定版本:dsh plugin add github:cayan0x/Lume#v0.8.1)
npm:https://www.npmjs.com/package/lume-dsh-plugin/v/0.8.1