JianFeeeee
4d8165fde9
fix(回路): Agent↔Agent 加 2h 冷静期;冷却期内 relay 不自动重投递
缺口:maxAgentPingPong=8 撞闸后**计数永不回落** —— 只有人类插话才归零。
旧文案把出路指向「请由人类插一句话」,而那条线索上常常**根本没有人类**
(2026-10-01 报告:agent 一封都发不出,且那条线索无人在场)。
修法(两条要求分别落地):
① 2h 恢复机制:撞闸即写入 session_agent_locks(落库,内存态一重启就"恢复",
且多副本各算各的);到期自动放行,人类插话立刻解锁(优先于到期)。
② 锁定期间的邮件不自动重投递:冷却期内 relay 直接 403 丢弃 ——
**不排队、不占幂等键、不入库**。排队会在 2h 后一次性灌回去,
那等于把刚压住的回路换个更糟的形状放出来。
实测踩到的三个坑(都被判据抓住):
- `VALUES ($1,$2,$2,...)` 让 until_at 复用 locked_at 的 $2 ⇒ 锁诞生即过期
- driver 以 UTC 扫回 DATETIME,而 time.Now() 是本地(HKT+8) ⇒ 差 8h > 2h 的一半 ⇒ 锁形同虚设
- 只查**收件方**是否人类,漏了**发件方** —— 而「人类插话解锁」的常态就是
人回信、收件方仍是 Agent ⇒ 人插话反被自己写的闸 403 拦下,那条出路根本不存在
- SQLite 没有 GREATEST;在 DATETIME 上按**字符串**比大小 ⇒ CASE 也会错。
改为「已有锁一律不碰 until_at」。
判据:repo 6 格(含"读失败不得读成未锁定"—— 最初 0 格能抓,变异测试补的)
+ handler 4 格。三个变异全部经得起(且每��都先确认变异编译通过再数红格 ——
本轮多次 grep 得 0 实际是 build failed,测试压根没跑)。
2026-10-01 19:41:06 +08:00
..
2026-09-08 19:16:35 +08:00
2026-09-15 10:07:18 +08:00
2026-09-26 07:44:33 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 08:32:22 +08:00
2026-09-14 08:32:22 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-11 15:49:26 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-15 09:38:59 +08:00
2026-09-30 17:30:27 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-18 11:23:12 +08:00
2026-09-18 11:23:12 +08:00
2026-10-01 19:41:06 +08:00
2026-09-25 05:50:08 +08:00
2026-10-01 19:41:06 +08:00
2026-09-30 17:30:27 +08:00
2026-09-08 19:16:35 +08:00
2026-09-11 22:02:25 +08:00
2026-09-25 06:35:53 +08:00
2026-09-11 23:22:53 +08:00
2026-09-28 11:12:59 +08:00
2026-09-17 19:42:41 +08:00
2026-09-17 19:42:41 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 16:41:32 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-25 16:29:19 +08:00
2026-09-25 16:29:19 +08:00
2026-09-12 11:19:19 +08:00
2026-09-12 11:19:19 +08:00