fix(umind): faltaba el botón para editar las notas del conocimiento

Las plantillas de rubro dejan las notas con valores entre corchetes y la propia
pantalla dice "abrilas y reemplazalas por tus datos" — pero no había con qué.
El endpoint para editarlas existía desde que se agregaron las fuentes de texto;
lo que nunca se agregó fue el botón, así que el flujo que el producto promete
no se podía completar. Se elegía la plantilla de restaurante y quedaban cuatro
notas diciendo "[12:00]" sin forma de arreglarlas salvo borrarlas y escribirlas
de nuevo.

Ahora cada nota tiene "Editar": abre el contenido, se corrige y al guardar se
rehacen los fragmentos, así que el agente pasa a contestar con lo nuevo en el
momento.

También se puede editar el texto que se le extrajo a un archivo: si el OCR de
un PDF salió torcido, corregirlo a mano es tan válido como escribir la nota, y
es el mismo código. Las URLs no — su contenido se rehace crawleando y cualquier
corrección se perdería en la próxima actualización.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-19 20:03:58 -05:00
co-authored by Claude Opus 5
parent 3ceb61c035
commit 195590f5e4
7 changed files with 112 additions and 31 deletions
+5 -1
View File
@@ -1015,7 +1015,11 @@ func ActualizarUmindDocumentoHandler(c *fiber.Ctx) error {
updates["auto_actualizar"] = *req.AutoActualizar
}
reprocesar := false
if doc.Tipo == "texto" && strings.TrimSpace(req.Contenido) != "" {
// "texto" son las notas escritas a mano; "archivo" guarda lo que se le
// extrajo al PDF o al Word, y corregir una extracción torcida a mano es
// tan válido como escribir la nota. Una URL no: su contenido se rehace
// crawleando, editarlo se perdería en la próxima actualización.
if (doc.Tipo == "texto" || doc.Tipo == "archivo") && strings.TrimSpace(req.Contenido) != "" {
updates["contenido"] = req.Contenido
if t := strings.TrimSpace(req.Titulo); t != "" {
updates["origen"] = t