feat: 权限档位体系(三档 plan/workspace/full + 四桥 from_session_id)

L2 核心改动:sessions 表补 permission_mode / permission_enforcement 两列
(sqlite + pg 同步),三桥 lib/permission-mode.js 翻译档位到平台原生配置,
homeagent advisory 模式提示词告知模型实际强制力。四桥全部携带 from_session_id
供 relay 去重与会话回溯。

FromHuman / ToHuman 判据已加入心跳 payload 与 notify/mail.go。
This commit is contained in:
2026-09-06 15:16:49 +08:00
parent 13fcb00acc
commit a44fd6949b
32 changed files with 3462 additions and 177 deletions

View File

@ -9,6 +9,7 @@
*/
import { replyInstruction, inboundHeadline } from '../lib/relay-policy.js';
import { clampRelayKey } from '../lib/relay-key.js';
/** 去掉已有的 Re: 前缀,避免 Re: Re: Re: 叠加。 */
export function stripRe(subject) {
@ -180,7 +181,10 @@ export function buildMailPrompt({ agentName, data, kind, reused }) {
* @returns {string}
*/
export function relayKeyFor(piSessionId, leafId) {
return `${piSessionId || 'unknown'}:${leafId || 'noleaf'}`;
// clampRelayKey 收尾:会话 id 与 leafId 平常都短,但不能假定——
// 同一个假定在权限询问那边已经坏过一次(toolCallId 被拼了思考签名,
// 437 ~ 13601 字节)。超限时才改写,所以合规的键不受影响。
return clampRelayKey(`${piSessionId || 'unknown'}:${leafId || 'noleaf'}`);
}
/**