fix(memory): 堵住 knowledge 工具绕过群聊/陌生人过滤的 P0 / owner 召回 hits 如实上报 / 静默吞点补来源日志
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled

This commit is contained in:
AskaEth committed 2026-10-05 11:30:42 +08:00
1 parent e792baa316
commit 3e3d37a824
6 files changed
+265 -52

No files matched your search

+15
View File
@@ -46,6 +46,21 @@ func OwnerEnv() SessionEnv {
return SessionEnv{ActorEnv: restrict.ActorOwner, MemWritable: true}
}
// OwnerEnvFor 返回绑定了显式角色的主人会话环境。它是**主人车道的唯一构造入口**:
// Web 主会话回合(gateway 的 turnEnvResolver.owner)与 IM 主人私聊回合
// (channelbridge 的私聊车道)都经它派生自己的 runEnv,两处因此逐字段同源 ——
// SessionEnv 将来新增字段时,两条车道会一起拿到它,而不会各自漂移出「同一个她、
// 两套环境」。
//
// personaID 为空表示「继承循环配置的默认角色」(与 OwnerEnv 同义,见 design/22 §4.2)。
// 它只界定提示词/记忆命名空间/情绪机/思考预算的作用域,**不是身份或权限输入**
// (项目红线:身份与权限在 channel 层的 actor 元数据上)。
func OwnerEnvFor(personaID string) SessionEnv {
env := OwnerEnv()
env.PersonaID = personaID
return env
}
// defaultSessionEnv 是调用方未挂载显式 env 时使用的
// owner 全权限环境:记忆全读写,即既有行为。
func defaultSessionEnv() SessionEnv {