Saltar al contenido principal

La consola del operador

La pestaña Chat de Korvun Desktop es la consola del operador: lee todas las conversaciones que fluyen por tus canales, respóndelas tú mismo cuando quieras y habla con tus cerebros directamente — todo desde la app, todo persistido en el mismo almacén durable.

Necesita los bloques storage y session de la referencia de configuración. El escritorio aprovisiona ambos automáticamente en el primer arranque y al actualizar una configuración existente, así que normalmente no hay nada que hacer. El chat directo con la IA necesita además una entrada de canal console:

{ "type": "console" }

La bandeja de entrada​

El panel izquierdo lista todas las conversaciones del almacén, actividad más reciente primero:

  • Filtra mientras escribes — la caja acota la lista al instante por clave de conversación y además busca en el contenido de los mensajes en el servidor.
  • Badges de no leídos — cada conversación muestra cuántos turnos llegaron desde la última vez que la abriste; abrirla la marca como leída.
  • TAKEN OVER marca las conversaciones donde mantienes el takeover (más abajo).

Los turnos van estilizados por rol: el usuario final, el cerebro (Korvun), tú (Operador, alineado a la derecha) y líneas de sistema discontinuas, como los acuses de reinicio de sesión. Los adjuntos llegan anunciados: una foto persiste y se muestra como un marcador [image].

Sesiones, /new y /reset​

Una conversación es una serie de sesiones; solo la más nueva está activa y solo la activa es el contexto del cerebro. Una sesión termina cuando:

  • el usuario final (o tú, en chat directo) envía un disparador de reinicio — /new o /reset por defecto — como primer token exacto; el canal responde con un acuse fijo y se abre una sesión nueva; o
  • pasa una expiración configurada daily_at / idle_min, aplicada de forma perezosa en el siguiente mensaje entrante.

Las sesiones viejas siguen almacenadas: las pestañas de sesión sobre la transcripción las navegan en solo lectura. Reiniciar nunca borra nada — solo corta el contexto.

Recuperar un corte: /recall​

El corte es recuperable a propósito, nunca por accidente. /recall (habilitado por session.recall_max) cita la cola de la sesión anterior de vuelta en la activa como UN bloque claramente marcado — la cabecera nombra la sesión de origen y el acuse dice cuántos turnos volvieron. Solo funciona sobre una sesión activa VACÍA; sobre una no vacía se niega y te señala /new primero. Recuperación deliberada, procedencia visible, duplicación imposible por construcción. El diseño completo está en la página de memoria gobernada.

Notas y /notes​

Un cerebro con memoria configurada también guarda notas — hechos breves que el modelo almacena a través de la herramienta gobernada memory_note (mira herramientas y skills gobernadas). Las notas no son historial: SOBREVIVEN a los reinicios de sesión a propósito, viajando en el contexto del cerebro solo dentro de su ámbito. /notes las lista numeradas; /notes clear vacía el ámbito — ambos son comandos de sistema instantáneos, sin llamada al modelo, y vaciar las notas nunca toca la transcripción.

Responder como operador (takeover)​

En un canal de red (Telegram, Discord, webhook), responder a mano requiere primero Take over: mientras lo mantienes, el cerebro queda silenciado para esa conversación — los turnos entrantes siguen persistiendo y apareciendo en vivo, pero ningún modelo responde. Tus respuestas salen por el adaptador del propio canal (coste cero — sin llamada al modelo) y persisten como turnos de operador, así que al pulsar Release el cerebro retoma con tus respuestas en su contexto. El takeover es por conversación, sobrevive a los reinicios de sesión y no es durable tras un reinicio del core (fail-open: el cerebro vuelve a responder).

Chat directo con la IA (canal console)​

Con un canal console configurado, New chat ▾ pregunta primero — «¿Con qué cerebro?» — e inicia la conversación dirigida al cerebro que elijas. La elección forma parte de la conversación: sobrevive a los reinicios, se muestra como badge en el buzón y en la cabecera, y solo se honra en el canal console (un canal de red nunca puede colar una dirección de cerebro por encima de su ruta configurada). Aquí el usuario eres tú, así que no hay takeover; los mensajes recorren el pipeline completo (política, enrutado, persistencia). Las sesiones, /new, el borrado, la búsqueda y los badges se comportan igual que en el resto.

La espera nunca miente sobre quién trabaja. Mientras hay una respuesta en vuelo, la consola nombra al cerebro y al modelo reales — «mybrain está pensando — llama3.2:1b · local…» — con su localidad honesta (local / nube). Si una petición muere (error del proveedor, modelo caído, ruta rota), la línea de espera SE CORTA y una banda visible lo dice con Reintentar a mano — nunca un spinner eterno. Tras 60 segundos sin respuesta la consola avisa y ofrece Cancelar y reintentar, pero nunca corta por su cuenta: un modelo local real en hardware modesto puede necesitar ese tiempo legítimamente. Estos estados de error viven solo en la UI — la conversación guardada conserva turnos reales, y el registro permanente sigue siendo el feed de Actividad.

Desde el canal console, /tools devuelve el informe del gatekeeper del cerebro de esa conversación — sus permisos efectivos y la actividad reciente de herramientas.

Borrar​

  • Delete conversation elimina la conversación entera — cada sesión, cada turno — del disco, y libera antes cualquier takeover.
  • Delete session elimina una sesión archivada; la sesión activa no puede borrarse (usa /new primero si de verdad quieres cortarla).

Ambos son permanentes. No hay deshacer.

Notas de seguridad​

  • La UI de escritorio nunca sostiene el bearer de administración: el shell lo inyecta en el lado servidor, y el stream de eventos en vivo queda libre de secretos.
  • Los secretos son siempre nombres de variables de entorno en la configuración; los valores viven en el entorno o en el llavero del sistema operativo. En el escritorio, la tarjeta SECRETOS de Ajustes gestiona los valores del llavero en modo solo-escritura — ningún valor se muestra jamás de vuelta.