feat(memory): P1 长期记忆升级 —— 异步攒批 Consolidate + 软删 + importance/last_seen #1

Merged
Blizzard merged 181 commits from feat/wails3 into main 2026-07-17 01:12:32 +00:00
Showing only changes of commit 22183cac51 - Show all commits
+7 -2
View File
@@ -169,8 +169,13 @@ RBAC 未做,暂以单管理员账号代理;概览口径必须是**系统级*
(统一强制、别靠人肉);ctx 无租户(系统/回填)则不过滤;中间件把 tenant 注入 request ctx;启动回填存量行。 (统一强制、别靠人肉);ctx 无租户(系统/回填)则不过滤;中间件把 tenant 注入 request ctx;启动回填存量行。
live 验证:创建自动写 tenant_id ✓;**同 owner 不同 tenant 的行被查询过滤掉** ✓(隔离机制生效)。 live 验证:创建自动写 tenant_id ✓;**同 owner 不同 tenant 的行被查询过滤掉** ✓(隔离机制生效)。
Doc/DocLink(异步入库)、Task/Eval(无 owner,待提交链改造) 下一增量铺开。 Doc/DocLink(异步入库)、Task/Eval(无 owner,待提交链改造) 下一增量铺开。
- [ ] 增量2bDoc/DocLink 走异步 JetStream 入库,tenant 需随 job payload 传播;Task/Eval 补 owner+tenant | M - [x] **增量2b核心表 tenant_id 全链路闭合**✅(ee1e9cf + 766eaab)—— Task 加 owner+tenant(插件填)、
- [ ] Redis/MinIO/Milvus/Neo4j 的 tenant 前缀/namespace | M Eval/Doc/DocLink 加 tenant(异步 background ctx 无请求租户 → 按关联源显式补:Eval 从 task 复制、
Doc/DocLink 按 owner 查默认租户)`store.WithoutTenant` 系统旁路 + 修 admin overview 被自己租户
误过滤的回归;RecentTasks/RecentRuns 按 owner+tenant 过滤"我的运行"(raw Table 查询手动补)
BackfillRowTenants 扩到 doc/doc_link/task/eval。live 验证:创建自动填/异步补/跨用户读被过滤/admin
全局口径全过。**PG 核心表(KB/Agent/Task/Eval/Doc/DocLink)隔离闭合。**
- [ ] Redis/MinIO/Milvus/Neo4j 的 tenant 前缀/namespace(各存储隔离,PG 已闭合)| M
- [ ] 真正的 RBACUser 加 role 字段 + 角色/权限表,`RequireAdmin`(middleware/auth.go:46) 从白名单升级为角色校验 | M - [ ] 真正的 RBACUser 加 role 字段 + 角色/权限表,`RequireAdmin`(middleware/auth.go:46) 从白名单升级为角色校验 | M
- [ ] 用户管理接口:列举 / 禁用 / 改角色(现仅注册/登录/查我,handler/auth.go| M - [ ] 用户管理接口:列举 / 禁用 / 改角色(现仅注册/登录/查我,handler/auth.go| M
- [ ] 多租户:Task/Eval/KB/Agent 加 tenant_idowner_id 之上补租户隔离边界 + 租户表/关联表(store 全表,单租户假设)| L - [ ] 多租户:Task/Eval/KB/Agent 加 tenant_idowner_id 之上补租户隔离边界 + 租户表/关联表(store 全表,单租户假设)| L