AskaEth
454ddb0b70
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
feat(memory): 记忆整理**应用路径 + 调度修复 + 手动真跑**(TIDY-1,主人投诉的根因)
主人实测:memory_items 1191 行、候选 77 条全 pending、memory_tidy_runs 仅 1 行、两晚定时没跑。
根因两条(都在这片里修掉):
① **以前根本没有执行面** —— 只有只读试算,候选永远 pending
② **调度被重启饿死** —— interval=24h 的 ticker 从进程启动算起,两天重启十几次 ⇒ 24h 永远走不完
- 应用路径:逐条 / 按 run 批量(默认 100、硬顶 500、超限 truncated)/ revert;**软合并**
(status + merged_into/merged_from/merge_count,**绝不改 content、行不删**)+ 审计
(memory.tidy.apply / memory.tidy.revert)+ **幂等**(候选状态条件更新 + 行 status 闸两道)
- 调度:改成**到点即跑**(catchUp:无历史+窗口内 / 距上次 run ≥ interval / 窗口起点晚于上次 run),
「上次 run」以 memory_tidy_runs 为**持久事实**;注入时钟用例证明**重启不饿死**
- 手动真跑端点 POST /admin/memories/tidy/run(同档鉴权 + 审计 + 回执:新增/合并/软删/耗时)
- 候选表加 run_id 列 + 索引(前滚;顺序=建表→补列→建索引,否则既有库会 no such column)
- 3 个变异自检(删 catchUp / 去掉两道 status 闸 / truncated 恒 false)
⚠️ 生产库零动作:1191 行真跑与 77 条候选应用**未执行**(按红线由主人确认后主会话执行)
⚠️ 契约段在报告里(candidates 列表/apply/revert/tidy.run),Docs/ 待登记
2026-10-06 22:39:35 +08:00
..
2026-10-04 12:30:16 +08:00
2026-10-04 12:30:16 +08:00
2026-10-06 21:48:49 +08:00
2026-10-06 21:48:49 +08:00
2026-10-04 14:21:41 +08:00
2026-10-06 21:48:49 +08:00
2026-10-05 14:15:55 +08:00
2026-10-05 14:15:55 +08:00
2026-10-05 13:29:53 +08:00
2026-10-05 10:37:56 +08:00
2026-10-05 10:37:56 +08:00
2026-10-04 13:42:37 +08:00
2026-10-05 14:01:52 +08:00
2026-10-05 14:38:37 +08:00
2026-10-05 14:38:37 +08:00
2026-10-06 09:03:53 +08:00
2026-10-03 22:28:25 +08:00
2026-10-06 09:03:44 +08:00
2026-10-05 10:37:56 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-06 09:03:44 +08:00
2026-10-03 22:28:25 +08:00
2026-10-06 09:03:44 +08:00
2026-10-05 13:54:56 +08:00
2026-10-06 09:03:32 +08:00
2026-10-06 08:04:12 +08:00
2026-10-05 10:37:56 +08:00
2026-10-04 14:00:25 +08:00
2026-10-05 16:19:32 +08:00
2026-10-05 15:38:53 +08:00
2026-10-06 08:16:03 +08:00
2026-10-06 21:16:21 +08:00
2026-10-06 21:16:21 +08:00
2026-10-06 08:16:03 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 12:43:04 +08:00
2026-10-04 12:43:04 +08:00
2026-10-04 12:43:04 +08:00
2026-10-04 12:43:04 +08:00
2026-10-04 18:11:43 +08:00
2026-10-04 13:06:54 +08:00
2026-10-04 18:11:43 +08:00
2026-10-04 22:16:26 +08:00
2026-10-05 14:38:37 +08:00
2026-10-06 14:12:27 +08:00
2026-10-06 14:12:27 +08:00
2026-10-06 22:39:35 +08:00
2026-10-06 22:39:35 +08:00
2026-10-06 22:39:35 +08:00
2026-10-06 08:04:12 +08:00
2026-10-06 08:04:12 +08:00
2026-10-06 22:39:35 +08:00
2026-10-06 22:39:35 +08:00
2026-10-06 08:04:12 +08:00
2026-10-06 08:04:12 +08:00
2026-10-04 10:46:51 +08:00
2026-10-04 13:07:52 +08:00
2026-10-06 14:12:23 +08:00
2026-10-06 14:12:23 +08:00
2026-10-04 14:21:41 +08:00
2026-10-06 18:46:58 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 14:21:41 +08:00
2026-10-04 12:30:16 +08:00
2026-10-06 21:48:49 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 19:44:53 +08:00
2026-10-04 19:44:53 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-05 14:01:52 +08:00
2026-10-04 18:57:58 +08:00
2026-10-05 10:37:56 +08:00
2026-10-04 21:33:11 +08:00
2026-10-04 21:33:11 +08:00
2026-10-04 21:33:11 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 13:07:52 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 12:07:51 +08:00
2026-10-04 13:07:52 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 14:21:41 +08:00
2026-10-03 22:28:25 +08:00
2026-10-05 14:15:55 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-05 10:37:56 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-06 07:58:42 +08:00
2026-10-06 21:16:20 +08:00
2026-10-05 11:36:18 +08:00
2026-10-04 17:59:28 +08:00
2026-10-04 19:46:36 +08:00
2026-10-04 14:37:37 +08:00
2026-10-05 09:18:50 +08:00
2026-10-06 09:03:55 +08:00
2026-10-05 22:06:54 +08:00
2026-10-04 19:46:36 +08:00
2026-10-04 17:07:20 +08:00
2026-10-05 11:36:18 +08:00
2026-10-04 14:37:37 +08:00
2026-10-03 22:28:25 +08:00
2026-10-06 08:16:03 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 17:42:16 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 21:50:08 +08:00
2026-10-04 21:50:08 +08:00
2026-10-06 15:59:14 +08:00
2026-10-06 09:03:55 +08:00
2026-10-06 09:03:55 +08:00
2026-10-05 10:56:39 +08:00
2026-10-06 14:12:27 +08:00
2026-10-06 14:12:27 +08:00
2026-10-03 22:07:56 +08:00
2026-10-04 14:13:27 +08:00
2026-10-06 14:12:27 +08:00
2026-10-06 14:12:27 +08:00
2026-10-04 14:21:52 +08:00
2026-10-04 14:21:52 +08:00
2026-10-06 14:12:27 +08:00
2026-10-06 14:12:27 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:07:56 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 13:58:03 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 13:58:03 +08:00
2026-10-04 13:58:03 +08:00
2026-10-04 13:58:03 +08:00
2026-10-04 13:58:03 +08:00
2026-10-05 11:36:18 +08:00
2026-10-03 22:28:25 +08:00
2026-10-06 21:16:20 +08:00
2026-10-05 16:02:36 +08:00
2026-10-05 16:02:36 +08:00
2026-10-05 16:02:36 +08:00
2026-10-06 21:16:20 +08:00
2026-10-05 14:38:37 +08:00
2026-10-04 16:27:35 +08:00
2026-10-05 09:18:50 +08:00
2026-10-06 22:39:35 +08:00
2026-10-05 22:06:54 +08:00
2026-10-03 22:28:25 +08:00
2026-10-04 17:42:16 +08:00
2026-10-04 21:50:08 +08:00
2026-10-05 11:36:18 +08:00
2026-10-05 09:18:50 +08:00
2026-10-05 09:38:11 +08:00
2026-10-05 09:38:11 +08:00
2026-10-05 09:53:08 +08:00
2026-10-03 22:28:25 +08:00
2026-10-05 12:21:24 +08:00
2026-10-05 10:56:39 +08:00
2026-10-05 12:21:24 +08:00
2026-10-05 09:18:50 +08:00
2026-10-05 09:53:08 +08:00
2026-10-05 10:56:39 +08:00
2026-10-05 12:21:24 +08:00
2026-10-04 17:59:28 +08:00
2026-10-05 09:18:50 +08:00
2026-10-05 09:46:10 +08:00
2026-10-03 22:28:25 +08:00
2026-10-06 07:58:42 +08:00
2026-10-04 17:59:28 +08:00
2026-10-05 09:38:11 +08:00
2026-10-05 09:38:11 +08:00
2026-10-05 11:36:18 +08:00
2026-10-04 17:25:35 +08:00
2026-10-05 11:36:18 +08:00
2026-10-05 09:18:50 +08:00
2026-10-05 09:46:10 +08:00
2026-10-05 10:56:39 +08:00
2026-10-05 10:56:39 +08:00
2026-10-05 10:56:39 +08:00
2026-10-05 10:56:39 +08:00
2026-10-05 09:18:50 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:10:33 +08:00
2026-10-05 10:56:39 +08:00
2026-10-04 17:59:28 +08:00
2026-10-05 09:38:11 +08:00
2026-10-06 21:48:48 +08:00
2026-10-06 09:03:53 +08:00
2026-10-06 09:03:53 +08:00
2026-10-06 09:03:53 +08:00
2026-10-03 22:07:56 +08:00
2026-10-03 22:10:33 +08:00
2026-10-04 17:59:28 +08:00
2026-10-03 22:07:56 +08:00
2026-10-03 22:28:25 +08:00
2026-10-03 22:07:56 +08:00
2026-10-05 09:38:11 +08:00
2026-10-06 09:03:53 +08:00
2026-10-05 10:56:39 +08:00
2026-10-05 10:56:39 +08:00
2026-10-04 17:59:28 +08:00
2026-10-04 11:26:35 +08:00
2026-10-06 21:48:48 +08:00