feat(umind): ver qué se leyó de cada fuente, fragmento por fragmento

Una fuente crawleada decía "9 fragmentos" y nada más. Las notas y archivos al
menos tienen Editar, que muestra su texto; un sitio no tiene nada — era una
caja negra, sin forma de saber si el crawler leyó los precios o el pie de
página. Y cuando el agente contesta mal, la primera pregunta es justamente
qué tiene cargado de verdad.

Cada fuente gana un "Ver" que abre sus fragmentos tal como quedaron indexados,
numerados y en orden, con la advertencia que importa: esto es exactamente lo
que el asistente puede consultar — si acá falta algo, eso mismo le va a faltar
en las respuestas.

El botón se apaga cuando la fuente no tiene fragmentos todavía (procesando o
con error): abrir un visor vacío no informa nada.

El endpoint pasa por accesoDocumento como todos los sub-recursos, y devuelve
solo el contenido — el embedding no viaja: son miles de números que no le
sirven a nadie en pantalla.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-23 19:42:18 -05:00
co-authored by Claude Opus 5
parent be01d95631
commit ffa24a068f
9 changed files with 150 additions and 29 deletions
+1
View File
@@ -43,6 +43,7 @@ func RegistrarRutasUmind(g fiber.Router, scope fiber.Handler, escritura fiber.Ha
g.Post("/umind/documentos", w(controllers.CreateUmindDocumentoHandler)...)
g.Post("/umind/documentos/texto", w(controllers.CreateUmindTextoHandler)...)
g.Post("/umind/documentos/archivo", w(controllers.CreateUmindArchivoHandler)...)
g.Get("/umind/documentos/:id/fragmentos", r(controllers.GetFragmentosDocumentoHandler)...)
g.Put("/umind/documentos/:id", w(controllers.ActualizarUmindDocumentoHandler)...)
g.Post("/umind/documentos/:id/reprocesar", w(controllers.ReprocesarUmindDocumentoHandler)...)
g.Delete("/umind/documentos/:id", w(controllers.DeleteUmindDocumentoHandler)...)