AskaEth
a017ab6cf8
feat(memory): 临时记忆到期物理删除(有界清扫 + 同步清向量 + 删前审计)
design/23 §19 的第 ② / ③ 步:读侧时效闸(M1)只负责「看不见」,本切片负责
「真删掉」。三条护栏照 §19.3:删除是本包内唯一 DELETE 出口、有界(500 行/批 ×
20 批)、删前留审计。
- internal/runtime/memory/expire.go:扫描集合写死为「expires_at ≠ '' ∧
expires_at ≤ now ∧ status='active' ∧ 来源非受限」。空 expires_at(长期/日常
记忆,含 M2 登记的「INSERT 与补写之间中断」窗口)结构性进不了集合;受限来源
复用 nonOwnerSource(与整理/审查同一处判据)。键集游标 (expires_at, rowid)
保证被跳过的行只读一次、扫描位置一定前移。审计串 = id + persona_id + scope +
expires_at + 按 rune 截断(48)的摘要 —— 本仓唯一一处允许携带内容片段的审计。
- internal/runtime/memory/expire_loop.go:清扫循环挂在 TidyService 的生命周期上
(AttachExpirySweep 由组合根调用),随心跳 ctx 跑、随 Stop 停;一轮只写一行
汇总日志,逐条的那一行进审计。
- internal/runtime/memory/vector/delete.go:新增可选删除能力 vector.Deleter +
两个后端实现,删行时同步清向量(M1 reviewer 的 finding:过期向量占 top-K 预算)。
- cmd/cyrene/wire_memory_tidy.go:挂上清扫;顺带把已过时的「这十键」改成「这十一
键」(M2 加了第十一键 tempTtlSec)。
2026-10-13 21:43:27 +08:00
..
2026-10-05 11:47:39 +08:00
2026-10-13 21:43:27 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 21:43:27 +08:00
2026-10-13 21:43:27 +08:00
2026-10-13 21:43:27 +08:00
2026-10-13 21:43:27 +08:00
2026-10-13 20:57:31 +08:00
2026-10-13 21:06:33 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 20:22:48 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-07 14:10:33 +08:00
2026-10-13 20:22:48 +08:00
2026-10-13 20:22:48 +08:00
2026-10-07 11:41:44 +08:00
2026-10-07 11:41:44 +08:00
2026-10-07 11:41:44 +08:00
2026-10-13 20:22:48 +08:00
2026-10-06 15:59:16 +08:00
2026-10-06 15:59:16 +08:00
2026-10-13 20:22:48 +08:00
2026-10-06 15:59:16 +08:00
2026-10-07 16:22:28 +08:00
2026-10-06 08:04:12 +08:00
2026-10-06 15:59:16 +08:00
2026-10-13 20:22:48 +08:00
2026-10-13 20:22:48 +08:00
2026-10-07 14:10:33 +08:00
2026-10-07 16:25:54 +08:00
2026-10-07 16:25:54 +08:00
2026-10-07 14:10:33 +08:00
2026-10-13 20:22:48 +08:00
2026-10-06 08:04:12 +08:00
2026-10-13 20:22:48 +08:00
2026-10-13 20:22:48 +08:00
2026-10-05 11:47:39 +08:00
2026-10-05 08:04:47 +08:00
2026-10-05 08:04:47 +08:00
2026-10-04 14:20:22 +08:00
2026-10-05 08:04:47 +08:00
2026-10-04 13:32:54 +08:00
2026-10-05 11:47:39 +08:00
2026-10-05 08:04:47 +08:00
2026-10-04 13:32:54 +08:00
2026-10-05 11:47:39 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 19:54:19 +08:00
2026-10-04 12:07:44 +08:00
2026-10-04 12:07:44 +08:00
2026-10-07 09:48:37 +08:00
2026-10-05 11:47:39 +08:00
2026-10-07 11:41:44 +08:00
2026-10-05 11:47:39 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 14:20:22 +08:00
2026-10-13 19:54:19 +08:00
2026-10-06 22:39:35 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-06 08:04:12 +08:00
2026-10-07 11:26:34 +08:00
2026-10-13 20:33:26 +08:00
2026-10-05 11:29:36 +08:00
2026-10-07 11:07:00 +08:00
2026-10-06 08:04:12 +08:00
2026-10-06 08:04:12 +08:00
2026-10-07 11:07:00 +08:00
2026-10-13 20:51:10 +08:00
2026-10-07 19:21:32 +08:00
2026-10-06 08:04:12 +08:00
2026-10-13 20:51:10 +08:00
2026-10-13 20:51:10 +08:00
2026-10-07 11:07:00 +08:00
2026-10-07 11:07:00 +08:00
2026-10-07 11:07:00 +08:00
2026-10-06 22:39:35 +08:00
2026-10-06 22:39:35 +08:00
2026-10-07 11:07:00 +08:00
2026-10-07 19:21:32 +08:00
2026-10-13 20:38:02 +08:00
2026-10-13 20:22:48 +08:00
2026-10-13 19:54:19 +08:00
2026-10-07 11:07:00 +08:00
2026-10-07 19:21:32 +08:00
2026-10-07 19:21:32 +08:00
2026-10-07 11:26:34 +08:00
2026-10-07 11:26:34 +08:00
2026-10-13 20:33:26 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 13:32:54 +08:00
2026-10-13 19:54:19 +08:00
2026-10-13 19:54:36 +08:00
2026-10-04 14:20:22 +08:00
2026-10-04 14:20:22 +08:00
2026-10-04 13:32:54 +08:00
2026-10-04 14:20:22 +08:00