AskaEth
82e9213804
test(memory): M45 复看 P2 —— 补「temporal 不许被判定读」的源码级断言 + 注释纠正
P2-1(真缺口):r1 复看的变异 C 证明「在异步审查侧拿 item.Temporal 改判」当时
**整个 memory 包全绿** —— 已落库的行在异步侧被改判这条口径没有守卫,而异步侧
(applyVerdict / setIngestRetention)恰恰最容易被人随手接线。
新增 TestTemporalIsNotWiredIntoJudgement:扫生产代码(非 _test.go、非注释行)里
所有含 `.Temporal` 的行,逐行要求命中 temporalFieldSites 白名单(校验 3 条 / 产出 1 条,
**片段级**而不是文件级 —— 按文件放行会让同一文件里新写的接线路过),违规时报
「文件:行号: 表达式片段」;同时校验白名单每一条确实命中过,防止它老化成空头许可证。
变异实测(复看给的写法,插在 preinsert.go 的 applyVerdict 入口):
--- FAIL: TestTemporalIsNotWiredIntoJudgement
temporal 被接进了判定(裁决 D:它只许被记录,不许被判定读)…:
preinsert.go:476: if item.Temporal == TemporalOneOff {
删掉接线后全绿。
P2-2(文案与 D 矛盾):store_temporal.go 的归属清单原写「判定在 resolveRetention
(唯一入口,第 4 步)」—— D 之后第 4 步是 N1~N7、没有 temporal 步,那句等于给后来者
指了接线入口。改为:temporal 只被记录、不参与判定;要把 temporal 接进判定必须先拿到
模型真实标签分布,并只能通过 temporalFieldSites 白名单(有意的接线决定)进来。
另按复看提醒:temporal.go 头注里那两条统计 SQL 标明「**运维分析用,不属于读侧代码
路径**」,并写明读侧(timegate 与任何读侧 SQL)明令不许对 created_at/expires_at 用
datetime() —— 那是定宽文本比较,抄进查询层会静默判错。
回归:go build ./... + go vet ./... 全绿;memory/db 包测试全绿;memory -race 38.0s 全绿。
2026-10-26 19:29:16 +08:00
..
2026-10-04 19:55:18 +08:00
2026-09-06 04:26:02 +08:00
2026-10-24 20:32:36 +08:00
2026-10-26 13:58:19 +08:00
2026-10-26 13:40:00 +08:00
2026-10-04 10:54:07 +08:00
2026-10-26 18:57:38 +08:00
2026-09-08 21:36:03 +08:00
2026-10-05 13:11:04 +08:00
2026-10-03 15:22:03 +08:00
2026-10-04 12:49:40 +08:00
2026-09-06 04:17:20 +08:00
2026-10-26 19:29:16 +08:00
2026-10-26 13:58:02 +08:00
2026-10-06 18:46:27 +08:00
2026-10-04 12:07:51 +08:00
2026-10-24 19:42:58 +08:00
2026-09-05 23:09:26 +08:00