Le filtre de droits s'applique dans la recherche vectorielle
La forme habituelle du RAG : chercher dans l'index, puis filtrer les résultats. Ça échoue deux fois. Ça fuit — des lignes invisibles ont quand même décidé quels cinq fragments reviennent. Et ça affame — si les plus proches correspondances sont toutes hors périmètre, la réponse est vide alors que des données pertinentes et visibles existent.
Le périmètre vient donc en premier : les identifiants des projets, tâches et notes que cet utilisateur peut lire. Il est appliqué dans la clause WHERE, avant ORDER BY embedding <=> query : les plus proches voisins sont choisis parmi les lignes autorisées uniquement. Le coût, c'est une requête de périmètre par question ; le bénéfice, c'est qu'aucun chemin de code ne montre au modèle une ligne que l'utilisateur ne pourrait pas ouvrir.