Repository navigation
test(api): aislamiento entre usuarios de extremo a extremo (RNF-01) - #19
Merged
Merged
Conversation
Prueba que el usuario B no puede listar, ver, borrar ni recuperar documentos/chunks/conversaciones de A, ni recibir sus fragmentos en una busqueda vectorial semanticamente coincidente ni en cache. Diseño y plan revisados adversarialmente por Gemini 3.1 Pro via agy antes de implementar; implementacion delegada a agy (Gemini 3.7 Flash medium), verificada con 6 mutation checks manuales (cada uno confirmado en rojo antes de revertir) y con la suite completa de integracion en verde. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BoVKssKAe1Z1vGJAEBEzvy
ErgoCodes
marked this pull request as ready for review
September 28, 2026 00:57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumen
Test de extremo a extremo (RNF-01) que registra dos usuarios reales (A y B), crea datos completos para A (documento, chunks con embeddings, conversación) y demuestra que B no puede:
numCandidates)Cómo se construyó
Plan revisado adversarialmente por Gemini 3.1 Pro (vía
agy, modo solo lectura) en varias rondas hasta quedar aprobado sin gaps — la ronda final incluyó corregir un falso positivo del propio diseño (una diferencia degenerationen la clave de caché enmascaraba una fuga real poruserId).Implementación delegada a Gemini 3.7 Flash (medium) vía
agy, orquestado por Claude Code. Verificación propia además de la del agente: lint y typecheck en verde, suite completa de integración (35 archivos, 314 tests) en verde, y 6 mutation checks manuales — cada uno reintroduciendo un bug real (quitar el filtrouserIdde una consulta, mover el filtro fuera del$vectorSearch, etc.), confirmando que el test falla como se espera, y revirtiendo.Test plan
pnpm --filter @docqa/api lintpnpm --filter @docqa/api typecheckpnpm --filter @docqa/api test:integration(314/314 tests, contra MongoDB real)🤖 Generated with Claude Code
https://claude.ai/code/session_01BoVKssKAe1Z1vGJAEBEzvy