'agent-rag-gate' (IT117, deterministic): pre-execution RAG's scope-permission gate, exercised by calling
AgentPreExecutionRAG.Execute() directly (no model). It seeds no corpus (a note save embeds, which the
deterministic lane cannot rely on): the proof is the search log, a Success row for a granted run and a Forbidden row for a refused one.
RG2 refuses through the AGENT (an unsaved copy of IT: Search Agent set to SearchScopeAccess='None'), not
through the seeded no-grant user: that user holds no roles, so it cannot read MJ: AI Agent Search Scopes
or MJ: Search Scope Permissions (the resolver fails, and a resolver failure writes no Forbidden row) nor
create a MJ: Search Execution Logs row; and its search returns nothing anyway (RS3), so a null result for
it would not show the gate ran.
'agent-rag-gate' (IT117, deterministic): pre-execution RAG's scope-permission gate, exercised by calling
AgentPreExecutionRAG.Execute()directly (no model). It seeds no corpus (a note save embeds, which the deterministic lane cannot rely on): the proof is the search log, a Success row for a granted run and a Forbidden row for a refused one.RG2 refuses through the AGENT (an unsaved copy of IT: Search Agent set to SearchScopeAccess='None'), not through the seeded no-grant user: that user holds no roles, so it cannot read
MJ: AI Agent Search ScopesorMJ: Search Scope Permissions(the resolver fails, and a resolver failure writes no Forbidden row) nor create aMJ: Search Execution Logsrow; and its search returns nothing anyway (RS3), so a null result for it would not show the gate ran.