缺口:SecurityToolGrantApprovalFacade 仅 Unavailable 兜底(恒拒 AI_TOOL_GRANT_NOT_APPROVED)→ admin 登记 Tool Grant 必败 → runtime 永查不到已批准 grant 投影(闭环陷阱:runtime 侧 ProjectionSecurityRuntimePermissionFacade 已就绪+测试,但唯一写投影入口被堵死)。 新增 LocalSecurityToolGrantApprovalFacade(@Primary 压过 Unavailable):以 Security owner 身份做策略式合规审批——校验 scope/egress 取值合法(取值集与 runtime 侧对齐,防越界 scope 落库)即批准、否则驳回。 诚实标注:approvedBy=security-policy-local、approvalId 带 security:local: 前缀(经 grant.action 透传 runtime envelope),明示单体内本地策略审批而非外部 Security 人工审批,绝不伪造外部批准;与 admin RBAC 门禁(muse:ai:tool-grant:adjust)叠加。刻意不做:grant/runtime 物理分包(独立 P2)、外部 Security RPC(P1R-4 推迟)。 验证:facade 单测 7/7(approved+越界/空refs/非法refType/开放出网无目标 驳回 + @Primary 装配选主断言);回归 service 6/6、runtime 15/15、controller 注解 2/2 全绿(共30);重建 muse-server jar 单体启动成功(20.4s,无 NoUniqueBeanDefinition/BeanCreationException)。admin curl 端到端被 RBAC 拦 403(鉴权层,facade 之前,预期安全边界)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
Java
64.8%
TypeScript
17.2%
Vue
13.8%
HTML
1.5%
JavaScript
1.2%
Other
1.3%