AskaEth
42a07cb454
fix(config): 单条入库审查的墙钟上限收敛到唯一真源(M16)
生产启动行仍是 timeout=20s —— M15 把 memory 包的 defaultReviewTimeout
抬到 90s 的修复**从未生效**:config 层的 env tag 自己带着 default:"20",
env 层永远产出非零值,于是 memory 侧「≤0 才回落默认」的归一化成了死代码。
修法(二选一中的「① 让 memory 侧成为唯一真源」):去掉 config 侧
MEMORY_REVIEW_TIMEOUT_SEC 的字面默认值,未配置时读出 0 = 「没配」,
由 normalizeReviewConfig 单点落地 90s。
生效值:
.env / env 没写这个键 ⇒ 90s(唯一真源)
写了正数 ⇒ 原样生效(不做任何「保底抬到 90」的加码)
写了 0 / 负数 ⇒ 90s(与项目其它旋钮同一口径:≤0 = 用默认)
新增测试(走真实组装路径,不绕过任何一层):
config.LoadMemoryReviewConfig → ReviewConfig.Timeout →
NewPreInsertReviewer → normalizeReviewConfig → 生效值(= 启动行打印的 timeout=)
断言生效值严格大于「实测最坏召回链 57s + T1 子超时 8s」,并断言启动行打印它。
变异自证(修前红):把 tag 的 default:"20" 加回去 ⇒ 报出
「组装后 timeout = 20s」+「生效值 20s != 唯一真源 1m30s」
原有 TestEmbeddingTimeoutFitsReviewBudget 拦不住这条,因为它比的是**本包常量**,
看不见 env 层;注释里已写明「比常量」与「比组装后生效值」的区别(防后人重蹈)。
2026-10-13 23:09:19 +08:00
..
2026-10-05 11:47:39 +08:00
2026-10-13 21:43:27 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 21:46:24 +08:00
2026-10-13 21:43:27 +08:00
2026-10-13 21:43:27 +08:00
2026-10-13 21:54:38 +08:00
2026-10-13 20:57:31 +08:00
2026-10-13 21:06:33 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 20:22:48 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-07 14:10:33 +08:00
2026-10-13 23:09:19 +08:00
2026-10-13 20:22:48 +08:00
2026-10-07 11:41:44 +08:00
2026-10-07 11:41:44 +08:00
2026-10-07 11:41:44 +08:00
2026-10-13 22:11:41 +08:00
2026-10-06 15:59:16 +08:00
2026-10-06 15:59:16 +08:00
2026-10-13 20:22:48 +08:00
2026-10-06 15:59:16 +08:00
2026-10-13 23:09:19 +08:00
2026-10-13 21:59:31 +08:00
2026-10-06 15:59:16 +08:00
2026-10-13 20:22:48 +08:00
2026-10-13 21:59:18 +08:00
2026-10-07 14:10:33 +08:00
2026-10-07 16:25:54 +08:00
2026-10-07 16:25:54 +08:00
2026-10-07 14:10:33 +08:00
2026-10-13 20:22:48 +08:00
2026-10-06 08:04:12 +08:00
2026-10-13 22:11:41 +08:00
2026-10-13 22:11:41 +08:00
2026-10-05 11:47:39 +08:00
2026-10-05 08:04:47 +08:00
2026-10-05 08:04:47 +08:00
2026-10-04 14:20:22 +08:00
2026-10-05 08:04:47 +08:00
2026-10-04 13:32:54 +08:00
2026-10-05 11:47:39 +08:00
2026-10-05 08:04:47 +08:00
2026-10-04 13:32:54 +08:00
2026-10-05 11:47:39 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 19:54:19 +08:00
2026-10-04 12:07:44 +08:00
2026-10-04 12:07:44 +08:00
2026-10-07 09:48:37 +08:00
2026-10-05 11:47:39 +08:00
2026-10-07 11:41:44 +08:00
2026-10-05 11:47:39 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 14:20:22 +08:00
2026-10-13 19:54:19 +08:00
2026-10-06 22:39:35 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-06 08:04:12 +08:00
2026-10-07 11:26:34 +08:00
2026-10-13 21:59:31 +08:00
2026-10-05 11:29:36 +08:00
2026-10-07 11:07:00 +08:00
2026-10-06 08:04:12 +08:00
2026-10-06 08:04:12 +08:00
2026-10-07 11:07:00 +08:00
2026-10-13 22:33:07 +08:00
2026-10-07 19:21:32 +08:00
2026-10-06 08:04:12 +08:00
2026-10-13 20:51:10 +08:00
2026-10-13 20:51:10 +08:00
2026-10-07 11:07:00 +08:00
2026-10-07 11:07:00 +08:00
2026-10-07 11:07:00 +08:00
2026-10-06 22:39:35 +08:00
2026-10-06 22:39:35 +08:00
2026-10-07 11:07:00 +08:00
2026-10-13 22:50:38 +08:00
2026-10-13 22:50:38 +08:00
2026-10-13 22:33:07 +08:00
2026-10-13 20:38:02 +08:00
2026-10-13 20:22:48 +08:00
2026-10-13 19:54:19 +08:00
2026-10-07 11:07:00 +08:00
2026-10-07 19:21:32 +08:00
2026-10-07 19:21:32 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-13 20:33:26 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 19:54:19 +08:00
2026-10-13 19:54:36 +08:00
2026-10-04 14:20:22 +08:00
2026-10-04 14:20:22 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 14:20:22 +08:00