Por Canuto  

MentisDB presentó la versión 0.9.3.39 con una actualización que pone por fin a su interfaz TUI en el centro de la experiencia de mentisdbd. La nueva edición incorpora copia por arrastre, registros en vivo, un arranque continuo sin destellos y varias correcciones que buscan eliminar errores silenciosos y mejorar la operación diaria del daemon.
***

  • La versión 0.9.3.39 añade una TUI completa de tres paneles con registros en tiempo real, tablas con pestañas y lanzador de agentes.
  • MentisDB resolvió fallos que afectaban el arranque, el copiado al portapapeles y el desplazamiento automático de los logs.
  • La actualización también mejora el renderizado, el manejo de errores al iniciar y la experiencia de primera ejecución.


MentisDB lanzó la versión 0.9.3.39 con una serie de cambios centrados en la interfaz de terminal de mentisdbd. La actualización introduce la TUI completa que, según explica la publicación oficial, siempre estuvo prevista para el daemon y ahora pasa a ofrecer un panel en vivo de tres secciones, registros en tiempo real y un iniciador de agentes con un solo clic.

En términos prácticos, el cambio apunta a hacer más usable la operación diaria del software. El nuevo diseño incorpora un registro con pestañas para cadenas, agentes y habilidades, además de funciones de copia directa desde la propia terminal, una mejora que busca resolver fricciones comunes en entornos donde el texto técnico debe reutilizarse con rapidez.

La nueva versión también corrige varios errores que, hasta ahora, restaban confiabilidad a la TUI. Entre ellos figuran un fallo silencioso durante el inicio, un destello visible al arrancar, registros aparentemente congelados en la entrada más antigua y un sistema de copia al portapapeles que en ocasiones no respondía pese a no mostrar advertencias.

Ese conjunto de ajustes no solo añade funciones. También cambia la percepción general del daemon, que pasa de una herramienta con comportamientos inconsistentes a una propuesta más estable para usuarios que dependen de la terminal como interfaz principal.

Una TUI más completa para el daemon

Al ejecutar mentisdbd en una terminal interactiva, el usuario obtiene ahora un panel a pantalla completa en modo alternativo. En la esquina superior izquierda aparece un banner ASCII con MENTIS en verde y DB en cian, junto con la versión, el estado del daemon y un resumen de configuración.

La parte superior derecha muestra en vivo las direcciones de los endpoints MCP, REST, HTTPS y del panel, además del estado de TLS. A esto se suma el llamado panel Prime, que concentra la línea de pegado que los agentes necesitan para iniciarse a sí mismos y que puede copiarse al instante al presionar la tecla c.

Las tablas integradas ofrecen una vista con pestañas de cadenas, agentes y habilidades. Las flechas del teclado permiten moverse por filas, mientras las flechas izquierda y derecha cambian entre pestañas. La tecla c también sirve para copiar la clave de la fila seleccionada.

El panel de registros funciona como un historial de eventos en vivo. Las entradas más nuevas aparecen arriba y se combinan con desplazamiento por teclado y copia de las líneas visibles. Todos los paneles incluyen barras de desplazamiento y responden a Tab y Shift-Tab para cambiar el foco desde el teclado.

La publicación aclara además que, si el daemon se ejecuta en segundo plano con nohup mentisdbd &, se obtiene el mismo servicio sin la sobrecarga de la TUI. Eso mantiene la flexibilidad para quienes prefieren una operación más discreta o automatizada.

Copiar texto con arrastrar y soltar dentro de la terminal

Uno de los cambios más llamativos de MentisDB 0.9.3.39 es la copia por selección con el ratón. El usuario puede arrastrar sobre líneas de registro, rutas de almacenamiento, claves de cadena, URL de endpoints, valores de configuración o la línea de pegado del iniciador y, al soltar, ese contenido pasa al portapapeles.

La mecánica no depende del panel desde el cual se selecciona el texto ni exige combinaciones de teclas. Tras la acción, la TUI muestra una notificación verde para confirmar que la operación se completó, con lo que se vuelve más evidente que el sistema respondió correctamente.

Detrás de esa función había un problema técnico poco visible, pero importante. El enfoque más directo consistía en leer terminal.current_buffer_mut() después de que terminal.draw() terminara. Sin embargo, esa vía fallaba de manera silenciosa debido a cómo ratatui intercambia internamente sus búferes al final del renderizado.

Según explica la fuente original, tras draw() el búfer “actual” ya apunta al espacio limpiado y reiniciado para el siguiente fotograma. El contenido recién dibujado permanece en el búfer previo, al que no existe acceso público directo. Para resolverlo, MentisDB encola la extracción en MouseUp como pending_extract = Some((start, end)).

En la siguiente iteración, la lectura ocurre dentro del cierre de terminal.draw(), donde frame.buffer_mut() sí representa el búfer vivo antes del intercambio. Allí se extrae el texto y, una vez que termina el dibujo, se ejecutan la escritura al portapapeles y la notificación visual correspondiente.

La entrega al portapapeles se realiza además por dos rutas a la vez. Por un lado, usa arboard para la API nativa del sistema operativo, ya sea NSPasteboard en macOS, X11 o Wayland en Linux, o Win32 en Windows. Por otro, emplea OSC 52 con la secuencia x1b]52;c;<base64>x07, escrita directamente en stdout.

Esa doble vía permite que emuladores como iTerm2, Terminal.app en macOS 14 o superior, kitty y WezTerm puedan establecer el portapapeles del sistema incluso cuando la captura del ratón sigue activa. En otras palabras, la mejora no es solo cosmética, sino operativa para distintos entornos de uso.

Arranque continuo, menos fallos silenciosos y logs que sí reflejan actividad

Otra corrección relevante tiene que ver con el ciclo de vida de la TUI. Antes, el daemon ejecutaba dos instancias separadas de la interfaz, una para el progreso de inicio y otra para el estado en ejecución. Entre ambas, la pantalla alternativa se cerraba y volvía a abrirse, lo que producía un destello que podía confundirse con un fallo.

La nueva versión elimina esa duplicidad y pasa a ejecutar exactamente una sola llamada a run_tui() durante toda la vida útil del proceso. Así, el arranque transita desde la superposición de progreso hasta la vista completa de ejecución sin parpadeos visibles.

MentisDB también modificó el comportamiento cuando el inicio falla. Antes, un conflicto de puertos, una mala configuración o un error de migración podía terminar con la salida del daemon sin mayores explicaciones para el usuario. Eso complicaba el diagnóstico, sobre todo en instalaciones nuevas o en ambientes con servicios superpuestos.

Ahora aparece una superposición roja a pantalla completa con el mensaje de error y un panel de registros desplazable. El usuario puede leer el problema, revisar las líneas relevantes y salir con la tecla q. El objetivo es claro: evitar una terminación silenciosa que deje al operador sin contexto.

También se corrigió el desplazamiento automático del panel de logs. Como el sistema renderiza las entradas con las más recientes arriba, la configuración previa de log_scroll = len – 1 terminaba anclando la vista en la parte inferior de la lista invertida, es decir, en el mensaje más antiguo.

Eso hacía que, aunque agentes y procesos escribieran nuevos eventos en memoria, la interfaz pareciera congelada. La corrección fija ahora log_scroll = 0, de modo que la vista permanezca en la entrada más nueva ubicada en la parte superior.

Mejoras menores que refuerzan la experiencia general

Además de los cambios principales, MentisDB 0.9.3.39 suma varios ajustes orientados a pulir la experiencia. Entre ellos figura el autoajuste de columnas, que dimensiona las columnas de clave de cadena y nombre de habilidad según la entrada más larga más uno, para evitar truncamientos.

La actualización también mejora la precisión del estado de inicio. En lugar de mostrar “Ejecutando migraciones…” cuando no había nada que migrar, la TUI informa ahora “Comprobando cadenas para migraciones…”, una diferencia pequeña, pero útil para interpretar mejor lo que está ocurriendo.

Las superposiciones visuales recibieron otra corrección. El modal de progreso de inicio, el diálogo de actualización y la superposición de fallo llaman ahora a frame.render_widget(Clear, popup_area) antes de dibujar su bloque, con lo que el contenido del fondo deja de filtrarse por los bordes de las ventanas emergentes.

En la primera ejecución, el asistente de configuración interactivo no puede funcionar mientras la TUI mantiene la terminal en modo raw y pantalla alternativa. Por eso, el sistema incorpora una nota para los usuarios nuevos, indicándoles que ejecuten mentisdbd wizard en una terminal separada.

Finalmente, el renderizado del panel de registros fue optimizado. La función render_logs deja de asignar un Vec<&str> intermedio en cada tick de fotograma y pasa a utilizar un único recorrido con .iter().rev(), una mejora que reduce trabajo innecesario en cada actualización visual.

Para actualizar, la instrucción indicada es cargo install mentisdb –force. El binario del daemon sigue siendo mentisdbd. Puede ejecutarse directamente en una terminal para acceder a la TUI o en segundo plano con nohup mentisdbd & para una operación sin interfaz interactiva.


ADVERTENCIA: DiarioBitcoin ofrece contenido informativo y educativo sobre diversos temas, incluyendo criptomonedas, IA, tecnología y regulaciones. No brindamos asesoramiento financiero. Las inversiones en criptoactivos son de alto riesgo y pueden no ser adecuadas para todos. Investigue, consulte a un experto y verifique la legislación aplicable antes de invertir. Podría perder todo su capital.

Suscríbete a nuestro boletín