JianFeeeee
63d430f423
文档: API.md 记一条 —— **"计数"对了不代表"账记上了"**(已读权威列静默少行)
接在「已读按调用者记录」那节后面(同一段语义迁移的下游后果)。
`markReadFor` 把 reader 前置成 `$1`,而调用方 `where` 早把 `$1` 用成 recipient
⇒ 绑定表右移一格 ⇒ 最后一封永远插不进(单封一封都不插)。
`marked` 与 `mails.status` 都对,只有权威列 `mail_reads` 静默少行
⇒ 邮件"看起来已读、实际仍算未读" ⇒ 重启补投时被当新信重投。
**为什么 7 天零痕迹**:`marked` 来自**另一条 UPDATE**,而当时那 4 个测试断言的
是冗余列 `mails.status` —— **判据守错了列**。
教训(写成可复用的):**一个值的"计数"来自 A 语句、"记账"来自 B 语句时,
A 对不代表 B 对;判据必须断言决定行为的那个列。**
修在 `17908c1`,回归判据 `internal/repo/markread_authcolumn_test.go`。
2026-09-21 04:26:49 +08:00
..
2026-09-19 14:01:21 +08:00
2026-09-21 04:26:49 +08:00
2026-09-20 22:35:35 +08:00
2026-09-15 06:33:54 +08:00
2026-09-19 12:47:32 +08:00
2026-09-14 16:11:00 +08:00
2026-09-15 11:17:23 +08:00
2026-09-19 14:01:21 +08:00
2026-09-15 11:21:00 +08:00
2026-09-13 06:16:59 +08:00
2026-09-08 19:16:35 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 23:50:35 +08:00
2026-09-13 14:25:44 +08:00