- Shipped
- October 11, 2026 at 6:28 AM UTC
- Author
- Kamo
- Commit
- daf34e5
ChatPolicyService(loader, grants, graphs) answers interaction()/interactions(): a live CONTACT grant turns REQUIRES_APPROVAL into ALLOW (CONTACT_GRANT), the approver of what still needs approval and the overseer of a supervised verdict are named from the org graph (InteractionApprovers). verdict()/verdicts() are the grant-aware CHAT answer; the old constructors read no grants. The loader reads chat_policy_rule_channels in one query; the analyzer checks channels, initiator-only rules, mirrored directional qualifiers, TEAM/ROLE references, raises AI_ONLY and adds aiImpact for SIs off CHAT. The telemetry summary groups by channel.
