
rootandClaude Opus 5.5
8c8b252667
feat(storage): 数据保留补齐引擎运行与流水表,新增每天低峰的流水数据清理和 db-retention 脚本
- 保留规则改为声明式(retention.ts 每个任务的 rules),定时任务、立即清理、脚本 dry-run 共用一份条件;
删得多(≥ 1000 行)的表删完 ANALYZE
- 引擎 run 单独保留期 engineRun(缺省 14 天):只删终态、过期、没被保留中业务任务引用、父 run 已结束的;
step_attempts 级联,运行元数据 / 事实 / 信号跟随 run(原来按时间直接删,长时间运行的 run 会丢元数据)
- 业务任务被 agent_run / decision 等引用时不删(外键 set null,删了会断开引用)
- 新任务 storage.retention.pipeline(每天 04:40):已投递 outbox 事件(只删无幂等键或一次性幂等键)、
识别尝试(每条资源留最近 3 次)、已识别且资源仍绑定作品的待识别条目(忽略 / 归档不删)、
站点快照(每站最近一次成功的列表快照保留)
- settings.storage.retentionDays 追加 engineRun / outboxEvent / resolutionAttempt / identityResolved /
siteSnapshot(旧库按缺省补),设置页「系统 → 数据保留」显示
- scripts/db-retention.ts:缺省 dry-run 输出每张表将删行数,--apply 执行,--only 选目标
- 测试:各表按规则删、被引用 / 未结束的不删、dry-run 与删除一致、分批;EXPLAIN 确认改写后的查询走索引
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
2026-10-06 20:24:26 +08:00
..
2026-10-06 19:37:34 +08:00
2026-10-06 16:47:18 +08:00
2026-10-06 17:58:08 +08:00
2026-10-03 11:43:08 +08:00
2026-10-06 19:37:34 +08:00
2026-10-02 16:54:04 +08:00
2026-10-06 18:46:40 +08:00
2026-10-06 16:42:22 +08:00
2026-10-06 15:48:46 +08:00
2026-10-06 19:27:14 +08:00
2026-10-02 17:40:43 +08:00
2026-10-06 19:27:14 +08:00
2026-10-06 17:58:08 +08:00
2026-09-28 20:28:34 +08:00
2026-10-02 15:47:17 +08:00
2026-10-02 17:40:43 +08:00
2026-10-03 02:28:29 +08:00
2026-10-03 00:04:31 +08:00
2026-10-06 19:37:34 +08:00
2026-10-06 19:37:34 +08:00
2026-10-06 19:37:34 +08:00
2026-10-03 23:22:16 +08:00
2026-10-06 19:27:14 +08:00
2026-10-02 17:40:43 +08:00
2026-10-06 20:24:26 +08:00
2026-09-29 21:44:13 +08:00
2026-09-27 18:53:06 +08:00
2026-09-29 20:35:43 +08:00
2026-09-27 18:53:06 +08:00
2026-09-27 18:53:06 +08:00
2026-09-30 00:24:21 +08:00
2026-09-27 22:24:44 +08:00
2026-09-27 19:30:55 +08:00
2026-10-06 19:27:14 +08:00
2026-10-02 15:47:17 +08:00
2026-09-27 21:27:55 +08:00
2026-09-27 21:10:02 +08:00
2026-09-27 18:53:06 +08:00
2026-10-06 17:58:08 +08:00
2026-09-30 00:24:21 +08:00