Il filtro dei permessi agisce dentro la ricerca vettoriale
La forma abituale del RAG: cercare nell'indice, poi filtrare i risultati. Fallisce due volte. Perde dati — righe invisibili hanno comunque deciso quali cinque frammenti tornano. E affama — se le corrispondenze più vicine sono tutte fuori ambito, la risposta è vuota anche se esistono dati pertinenti e visibili.
Quindi l'ambito viene prima: gli id di progetti, attività e note che questo utente può leggere. È applicato nella clausola WHERE, prima di ORDER BY embedding <=> query, così i vicini più prossimi sono scelti solo tra le righe permesse. Il costo è una query di ambito per domanda; il vantaggio è che non esiste un percorso nel codice in cui il modello veda una riga che l'utente non potrebbe aprire.