memoryweave/go/internal/storage
xiaowei f6cd93fbd7 fix(forgetting): P2 候选源升级 — Rust scan 全表替代纯缓存遍历
GetCandidatesForForgetting 原实现只遍历进程内 _local.memories 缓存
(commit/recall/search 才触碰), 重启后缓存空 → decay scanned=3 扫不全,
9-25 到期记忆若不在缓存则永远无法被遗忘(闭环断)。

安全版 scan_for_forgetting (防 febc2c9 风暴复发):
- 强制 limit (IPC 钳制硬上限 5000, decay 侧 2000)
- 不读 vector 列 (1024维×3000条≈12MB+, IPC JSON 会卡)
- 真读 last_recalled_at 列 (scan_all 旧实现 String::new() 恒空 → 遗忘判定失真)
- 消费方截断护栏已就位 (merge 桶500 / conflict 500 / sanity 1000)
- IPC 失败/空 → fallback 缓存遍历 (保持可用)

验证: [decay] scanned=3 → 2000 (重启即扫全表), CPU 0%, 无 panic
2026-09-06 02:32:58 +08:00
..
bench_test.go
cooccur.go
embedder.go fix(recall): Embedder http client 8s 超时 + decay 分批 AC-1 日志 2026-09-06 01:08:42 +08:00
graph_cache.go feat: P0 recall fallback + P2 trust scoring for graph edges 2026-07-02 00:22:28 +08:00
lancedb.go
lancedb_ipc.go fix(forgetting): P2 候选源升级 — Rust scan 全表替代纯缓存遍历 2026-09-06 02:32:58 +08:00
memvector.go
recall.go fix: H1-H6 gaps all resolved 2026-07-02 00:43:46 +08:00
redis.go
reranker.go
searchcache.go
sqlite.go fix(forgetting): P1 防风暴 - 限长/分桶/抽样下推/decay分批 2026-09-06 00:56:06 +08:00
sqlite_mem.go fix: add clusters_found/noise_points/quality_score to consolidate API response 2026-06-08 10:35:10 +08:00