review 发现 #3:缺省 clock = System::currentTimeMillis,超时判断是差值 比较(now - batchStartAtMs),墙钟被 NTP 回拨会让差值变负,该批多躺回拨量, 突破"刷出延迟上界一个超时窗口"的文档承诺。 修复:缺省 clock 换 System.nanoTime()/1_000_000(单调,只用于相对差值)。 clock 注入口子不变,既有假时钟测试不受影响。 测试说明:回拨行为单测无法注入(系统时钟不可控),新增缺省时钟冒烟测试 守护纳秒→毫秒换算(错用裸 nanoTime 会让任何批立即被判超时),非严格 TDD RED——超时语义本身已有注入假时钟的用例覆盖。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>