JianFeeeee
f9b849dcfc
chore(deploy): 测试会话清理脚本(可复现、默认干跑、带备份与校验)
用户(2026-09-14):「清理一下」。库里积了 102 个会话 / 1038 封邮件,
其中 76 个是测试会话(gui-lab 专用测试 agent 发的 + drill-/e2e3-/冒烟/演练类)。
为什么不手敲 DELETE:
① 只看「收件箱里看得见的那几条」会漏掉大头 —— `ListInbox` 整体排除
`status='archived'`(repo.go),归档的测试会话在界面上根本不出现,
但在库里、在配额统计里都还在。所以按**来源 agent + 别名前缀**判定,
不按「看得见看不见」。
② 直接 DELETE sessions 会留孤儿:mails/mail_reads/relayed_mails/attachments/
permission_requests 都指向它们(只有 attachments 有 ON DELETE CASCADE),
必须子表先删、且在同一个事务里。
③ 附件文件按 sha256 分片存放且**可能被多条记录共用**,所以只能在删完行之后
逐个确认「已无人引用」再删文件。
校验那一步断言的是「**没有新增**外键孤儿」,不是「零孤儿」:
实测库里本来就有存量孤儿(agent_keys 指向已不存在的 user、3 封回复的
parent_mail_id 悬空),断言零孤儿会永远红 —— 下一个人就会当它坏了而忽略它。
本次实删:会话 76 / 邮件 290 / 已读标记 60 / 附件 80 / 转发 81 / 权限请求 63,
附件文件 22 个;foreign_key_check 与删除前逐条一致(无新增孤儿)。
另跑 prune-deploy-artifacts.sh --apply 释放 980MB 部署残留(/opt/agentmail 1.3G → 306M)。
2026-09-14 15:51:40 +08:00
..
2026-09-14 08:38:33 +08:00
2026-09-13 11:06:01 +08:00
2026-09-14 08:38:33 +08:00
2026-09-12 11:36:25 +08:00
2026-09-12 14:58:36 +08:00
2026-09-14 08:38:33 +08:00
2026-09-14 08:43:54 +08:00
2026-09-14 15:51:40 +08:00
2026-09-14 08:59:32 +08:00
2026-09-12 23:13:48 +08:00
2026-09-06 15:18:06 +08:00
2026-09-02 20:05:51 +08:00
2026-09-13 11:06:01 +08:00
2026-09-13 11:06:01 +08:00
2026-09-14 08:38:33 +08:00