Skip to content

v0.8.0 — 0.7.4 把载具与触发器接通后,现场又暴露出另一类失效:「跑了但没生效、没生效也不留痕」—— 补蒸馏静默不跑、诊断日志

Choose a tag to compare

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

0.7.4 把载具与触发器接通后,现场又暴露出另一类失效:「跑了但没生效、没生效也不留痕」——
补蒸馏静默不跑、诊断日志写了等于没写、声明了依赖却没调用、工具结果文本深一层让四个机制一起静默失效。
本版功能主线是跨会话记忆,另一半是把这类失效变成看得见、拦得住。

新增

  • 跨会话项目知识真正落地:工作目录从运行时快照解析;三来源自动沉淀(工具结果 / 助手结论 / 你的规范陈述);
    新会话开局即可用、任何轮次都可见,且用「会话目录名 → 工作目录」映射在装配前补 cwd(第一轮即带知识)。
  • 记忆编号与内容寻址去重:同主题即同 id,精确合并(换句话不再写第二条),更具体的版本才覆盖;
    新增 lume_project_forget,可用编号点名删除过时知识。
  • 知识作用域(repo / task):需求特有的结论不再污染别的需求;需求名与标识符取自 doc/<需求名>/。
  • 会话记忆与上下文预警:每轮导出目标 / 已拍板 / 未决 / 关键定位;占用到 75% / 90% 时提醒收尾并开新会话;
    新会话开局注入上次记忆,说一句「继续」即可接上。
  • 历史会话补蒸馏:启动时扫最近 7 天会话(含已经撑满、聊不动的),分片执行、幂等不重复。
  • 需求层与设计层:需求锚点(逐字回显 + 漂移词法检查,只扫可见正文且每会话限次)、设计 pass 与 lume_design 跨轮回放。
  • 证据核对四件:引用核对(引用本次没打开过的代码行)、断言核对(对没见过的符号下否定断言)、
    需求覆盖核对(需求原句与交付物句子并列)、提问核对(把「我没查」包装成「待你定」)。

修复(均为现场事故驱动)

  • 真机 tool/result 文本比读取层深一层 → 自动沉淀 / 失败识别 / grep 证据 / 断言证据四个机制一起静默失效(已修 + 真机形状回归测试)。
  • 补蒸馏拿不到会话目录时静默不跑、诊断日志因 DSH_HOME 缺失而写了等于没写 → 均改候选探测;留痕保留但降噪(每会话 1–2 行)。
  • carrierBlocks 声明了依赖却没调用(ensureSessionWorkspace)→ 第一轮仍缺知识;并新增 lint 规则防再犯。
  • 问答 / 查找模式一刀切禁工具,导致"提交情况"这类 git log 就能答的问题被回"不确定" → 改为只读核实该做就做;
    协议新增 P0 事实优先:禁止用「我不确定」「这是新会话」当答案。
  • 知识归属错乱(两个需求被数成三个)→ 按真实需求与文档标识符归属;并加「作用域只许升不许降」。
  • 客户端 bundle 重复声明 TEXT_CAP 导致 Harness 起不来 → 已修,并加两条产物断言(可解析 / 无重复顶层声明)。

工程

  • lint 规则增至 9 条(新增:依赖必须真的被使用 / 文档引用必须存在 / 禁 as any / 类型边界);
    机制覆盖门禁:39 个机制必须有「跑出行为」的测试(0.8.0 封版时的数字;之后新增 5 类,见顶部「未发布」一节 → 45)。
  • 发布门禁 37 条(对着产物断言,每条绑一个历史事故)+ 新增 npm run verify:live(真机清单一条命令)。
  • 测试 446 → 577;架构:index.ts 1723 → 755 行、全仓 any 164 → 23;lib/ 与 .goose/ 不再入库。

与 0.7.x 的关系:0.7.x 是"把机制接通",0.8.0 是"让记忆跨会话活着、让失效自己现形"。

发布前补入(本节原标「未发布」,随 0.8.0 一起发布)

这一版回答的是「它到底有没有变聪明」。此前整条链路只有约束(别做错),没有任何度量:
路由判错率、触发器命中后行为是否真的变了、条款加权有没有用——一个都没测,
于是每加一条规则只能靠感觉说「这次好像好点」。本版先装仪表盘,再动方向盘与油门。

新增:度量闭环(先装仪表盘)

  • 运行时度量:路由判定(模式 + 命中判据 + 证据来源)、触发器命中(含当时计数器快照)、
    块装配(留下 / 丢弃 / 字符数 + 本轮加权条款)、每轮状态快照(契约 / 设计 / 台账 / 假设),
    以及外部结果信号(用户纠正 / 重复请求 / 越权改动 / 执行轮零动作)逐条落 lume-metrics.jsonl。
  • 触发器效能判定:命中后 3 轮内是否出现机械可判的预期变化(真验证命令、契约 / 设计 / 台账 / 假设从无到有);
    没有机械口径的(判据漂移、知识采集)明确标「未判定」,不混进比例凑数。
  • lume_metrics 工具:模型与用户都能查;摘要带口径与落点,落点不可用时如实说明。
  • 度量回灌:本会话被用户纠正 ≥2 次时顶一句〔路由自校〕(带次数与落在哪个模式),上限 2 次防噪音。

新增:路由从「这一句话的词」换成「最近几轮轨迹的证据」

  • 判定结论带命中判据与证据来源(text / trajectory / sticky / correction)——误判才有得统计。
  • 纠正后按被纠正前那句话重算(不在纠正句上再猜一次);在途任务对承接式追问有粘性;
    任务型轨迹上的一句短话按轨迹判;证据不足一律回落到单句结果(轨迹只补、不猜)。
  • 补上「动词」与「语用」的分界:「把这部分整理一下」这类动词进表;
    「看看这块能不能优化」按可行性询问判诊断(给判断与办法,不直接动手);
    「怎么整理这段数据比较好」不再被动词带走。

新增:条款预算(每轮只加权最相关的三条)

  • 协议条款从正文切出来当数据(改正文只改一处,切分完整性有测试锁住),每轮按形态选三条放进易变段重述:
    纠正 > 压缩 > 模式,模式内再按「已动过 / 未写契约 / 常规执行」分流。
  • 文本明确写明「条款一条没少」——只做注意力加权,不缩减协议;漏选也不会让条款消失。

工程

  • 单测落盘目录改到临时目录(test/setup.ts):度量与诊断日志不再把测试数据写进真实指标文件——
    否则「用来判断是不是变聪明的数据」会被自己的测试污染。
  • 机制覆盖新增 5 条(条款预算 / 轨迹路由 / 运行时度量 / 度量回灌),当前 45/45、依赖声明 176 项 0 未使用。
  • 测试 577 → 620(本批提交时的数字;条数以 npm test 当场输出为准——文档不再维护硬数字)。

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