El agente puede ver la base de la sala: estructura y filas - #102
Merged
Merged
Conversation
La tool sql solo cambia la estructura y contesta "listo", asi que el agente adivinaba tablas y columnas, sobre todo en un proyecto adoptado donde migraciones/ esta vacia, y no podia comprobar si algo se guardo. - Tool nueva ver_base: sin argumentos describe tablas, columnas, llaves, RLS y politicas; con una consulta devuelve hasta 50 filas. Todo va a Supabase con read_only, que es quien garantiza que no escribe; ademas se rechaza lo que no empieza como lectura y los SELECT viajan con limit 51. - sql y ver_base devuelven el error de Postgres como error de la tool, no como "error inesperado", y sql sugiere revisar con ver_base. - El prompt pide mirar la base antes de crear tablas o escribir codigo contra ellas, y no copiar datos de personas si no hace falta. - La actividad del chat dice "Revisando la base de datos". - demo:ver-base cubre la tool y entra al CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HJ5oT2Xm3VZMvbPAcgKbz4
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.
Qué pasaba
La única tool de la base era
sql, que cambia la estructura y contesta "listo" (ejecutarSqldescartaba la respuesta). El agente no podía ver qué tablas, columnas o políticas había, así que las adivinaba y escribía código contra columnas que quizá no existían. Pasa sobre todo con proyectos adoptados (#98), dondemigraciones/está vacía aunque la base no. Tampoco podía comprobar si algo se guardó.Cambios
ver_base(server/src/agent/tools/ver-base.ts), solo lectura, como en Lovable:publiccon columnas (tipo, not null, default), llaves, si tienen RLS activo o forzado, y sus políticas. Sale del catálogo, no lee filas.consulta: un SELECT, hasta 50 filas y unos 8000 caracteres, con aviso si hay más.read_only: trueen/database/query). Además, se rechaza antes de llamar lo que no empieza como lectura, y los SELECT de una sola sentencia viajan envueltos conlimit 51.ejecutarSqldevuelve lo que responde Supabase y aceptasoloLectura. Los que la llaman hoy ignoran el retorno, así que el cambio es compatible.sqlDeLaSalay la nuevalecturaDeLaSalacompartenconLaBaseDeLaSala: el token se sigue renovando en cada llamada y la credencial sigue sin entrar al contenedor.sqlyver_basedevuelven el error de Postgres como error de la tool, no comoerror inesperado, que parecía una falla de Multi.demo:ver-base(28 casos) entra al CI.Lo que no toca
OAuth, callback, preparación del proyecto, las reglas de políticas abiertas y las migraciones de
sql. El candado por sala desqly el resumen de cambios a la base para otros agentes van aparte.Cómo se probó
npm run typecheck,npm run buildy las demos del CI (providers,back,politicas,actividad,modo-de-sala,ver-base).ver_base) y la de Supabase:ver_baseentre sus tools, y la actividad llega comoverBase.select * from tareasdevuelve 50 filas y avisa que hay más.count(*)devuelve1 fila. {"total":7}.delete from tareasse rechaza sin llamar a la base.42703de Postgres, limpio.read_only: truey envueltas enlimit 51. La única escritura fue la dearmarRlsal preparar el proyecto.Falta confirmarlo contra un Supabase real (el proxy de esta sesión lo bloquea). En producción: pedirle al agente que liste las tablas, que cuente registros, y que intente un
deleteconver_base, que debe fallar.🤖 Generated with Claude Code
https://claude.ai/code/session_01HJ5oT2Xm3VZMvbPAcgKbz4
Generated by Claude Code