Files
Genarrative/apps
lhk229 a8215a5997 P5:把委派栅栏 detail 的「拼串→再解析」锁成等价关系
M1C-1 把 userRevisionPending 同时加进了 StaticDelegateCompletionBarrier::detail()
的输出和 project_gates 的解析门,两边靠一个字段名字符串隔空对齐,中间没有共享 schema。
当时生产侧只有 delegation.rs 一条 detail().contains("userRevisionPending=1"),解析侧
一条测试都没有,两者之间也没有任何东西相连:字段名一改,生产侧那条照过,而三个门静默
返回 false,父 run 就会越过用户修订边界收束。

已核实这条路径是「单一生产者 → 四个解析点」:static_delegate_completion_blocker_at
原样使用 detail: Some(barrier.detail()),main_loop 的四处解析都以
tool == "runtime.delegate_receipts" 为前提。

新增用例锁的是等价关系而不是拼写:对七个计数的全部 128 种 0/1 组合,断言三个门的判定
与 barrier 自己的语义谓词逐一相等;另加多位数计数与「键之间互不为前缀」两条护栏——后者
是 strip_prefix 读对值的隐含前提,等价关系测试抓不到这层前提何时被打破。

鉴别力已用变异验证:把解析器的 userRevisionPending 改名为 userRevisionRequested,
或往 has_waiting() 里加一个解析器不认的计数,两个漂移方向都会被抓住。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 07:24:55 +00:00
..
2026-07-17 16:56:46 +08:00