JianFeeeee
3444d2d903
fix(lua): 导出函数调用不标脏,插件状态从不落盘
quota 声明 hooks=[],全部工作都在导出函数里。markDirty 只从 hook 与
SetState 触发,Call 两边都不占 —— 于是探测改的内存没人写盘,状态文件要等
下一次无关的配置写入才顺带刷新。
现象是「插件看起来没写」:负 memo 要等到下一次改配置才出现。用隔离实例
逐步观察时,一度把这误读成 memo 状态机的三个缺陷,逐个查清后只有这一条
是真的:
- 「未就绪轮次累计 streak」 —— 不成立。写侧本来就对临时条目用 streak=1,
65ed1b 版本已是这个行为。
- 「读侧用旧快照,streak 永远停在 1」 —— 是退避的设计行为。单进程内第二
次探测被退避挡在写侧之前,streak 自然不再增长;真实的多轮计数在跨进程
(trace_streak.py)下是 1/2/3/4。
- 「Call 不标脏」 —— 真缺陷,已验证:去掉 markDirtyLocked,
新增的 TestOnDemandCallIsPersisted 立刻变红。
顺带保留两处无行为差异的可读性收紧:provisionalEntry 统一按「集合非空」
判断临时条目(与 copySet 空集返回 nil 的写法对齐)。
判据:TestOnDemandCallIsPersisted 用 hookless 插件走导出函数累加,
反向证明(去掉 markDirtyLocked)会红。
2026-10-07 02:31:11 +08:00
..
2026-10-06 14:53:15 +08:00
2026-10-07 02:31:11 +08:00
2026-10-06 14:53:15 +08:00
2026-10-02 12:41:35 +08:00
2026-10-04 14:50:47 +08:00
2026-10-04 14:50:47 +08:00
2026-10-02 10:45:20 +08:00
2026-10-02 10:45:20 +08:00
2026-10-02 10:45:20 +08:00
2026-10-02 14:07:44 +08:00
2026-10-07 02:31:11 +08:00
2026-10-04 14:50:46 +08:00
2026-10-04 14:50:46 +08:00
2026-10-04 20:37:09 +08:00
2026-10-04 20:37:09 +08:00
2026-10-04 21:56:10 +08:00
2026-10-04 20:37:09 +08:00
2026-10-04 20:37:09 +08:00
2026-10-04 14:50:46 +08:00
2026-10-04 14:50:46 +08:00
2026-10-04 14:50:46 +08:00
2026-10-04 14:50:46 +08:00
2026-10-04 14:50:46 +08:00
2026-10-07 01:19:15 +08:00
2026-10-04 21:56:45 +08:00
2026-10-07 01:19:15 +08:00
2026-10-04 14:50:46 +08:00
2026-10-04 14:50:46 +08:00
2026-10-03 08:48:46 +08:00
2026-10-07 02:31:11 +08:00
2026-10-07 01:42:24 +08:00
2026-10-07 02:31:11 +08:00
2026-09-27 17:12:03 +08:00
2026-09-27 17:12:03 +08:00
2026-09-27 17:12:03 +08:00
2026-10-02 14:07:44 +08:00