El Guardián de Golem deja entrar a un técnico en un servidor por sus ocho dígitos, sin nadie delante. Atiende a un técnico cada vez, y mientras alguien tiene la sesión abierta, el siguiente que llama recibe toque_ocupado.

Ayer el soporte de un cliente me mandó el informe de una tarde entera de toque_ocupado. Un técnico había terminado con un servidor y había desconectado, y su compañero no podía entrar. golem_disconnect cerraba la conexión del cliente, pero la sesión del Guardián seguía viva hasta que pasaban 30 minutos sin llamadas, y durante ese rato la ranura estaba tomada por alguien que ya no estaba. Así lo había diseñado yo.

La 1.6 arregla eso y añade lo que hacía falta para que dos técnicos se repartan un servidor sin llamarse por teléfono.

Desconectar suelta la ranura

golem_disconnect le pide ahora al Guardián que cierre la sesión, y la respuesta dice si lo hizo (guardian_session_released). El siguiente técnico entra en su próximo intento.

Un técnico que siga con el cliente 1.5 también suelta la ranura. Al desconectar, un cliente 1.5 solo cierra su sesión MCP, y el Guardián 1.6 toma ese cierre como una desconexión. Basta con actualizar el Guardián del servidor para que nadie deje la ranura ocupada.

Quién está dentro, y una nota para él

Cuando la ranura está ocupada, la respuesta trae quién la tiene, a qué hora entró, cuántos minutos lleva sin hacer nada y cuántos le quedan. Ese detalle va cifrado para el técnico que pregunta y firmado por el Guardián, así que el portal, que es por donde pasa el aviso, no sabe de quién es la sesión.

Sabiendo quién está, golem_notify deja una nota corta al otro técnico a través del Guardián, en los dos sentidos: el que espera escribe al que está dentro y al revés. El titular la ve en la siguiente respuesta de cualquier herramienta, y quien quiera enterarse al momento lanza golem_listen, que deja a la herramienta Monitor de Claude escuchando los avisos: notas, alguien que se pone a esperar, la ranura que queda libre.

Esperar turno, y la cesión a los 5 minutos

golem_connect acepta wait: true. Si la ranura está ocupada, la llamada contesta pending y Claude vuelve a preguntar con resume, como mucho una vez por minuto y hasta 10 minutos. Mientras tanto, el que está dentro ve en cada respuesta que alguien le espera.

Si el titular pasa 5 minutos sin una sola llamada con alguien esperando, el Guardián le cede la sesión al primero de la cola. Pensé en la conversación de Claude que se queda abierta en otro ordenador y que nadie va a cerrar. Al que entra se le dice a quién ha sustituido y cuántas tareas suyas se han parado. Al que se queda fuera, su siguiente herramienta le dice que la sesión se cedió y a quién, en vez de un error de red. Los 5 minutos se cambian al instalar el Guardián con --yield-minutes, y con 0 no se cede nunca.

Solo se cede a quien sigue esperando. Si el técnico de la cola cerró su conversación, no se lleva la sesión de nadie, y mirar el estado con golem_status no cuenta como actividad: un Claude que solo comprobaba si la conexión seguía viva impedía la cesión.

Probado en un servidor real

La certificación pasó por varias rondas en un Windows Sandbox y dos en un servidor real, con dos técnicos desde dos clientes distintos. En el servidor real salió lo que el sandbox no podía enseñar: casi todos los Guardianes de clientes funcionan por túnel, y en ese modo el túnel se cerraba en el mismo instante que la sesión. El técnico que desconectaba recibía un error aunque la ranura sí había quedado libre, y el que esperaba no tenía por dónde recibir sus avisos. En la 1.6 el túnel sigue 10 minutos después de cerrarse una sesión y lo aprovecha la siguiente.

También salió un fallo que venía de la 1.4: un Guardián recién instalado podía pasarse una hora sin aceptar a nadie, porque su primera consulta al portal llegaba en el mismo segundo en que se registraba su ranura. Ahora, los primeros 10 minutos, ese rechazo se reintenta.

La 1.5.4, de paso

El día anterior salió la 1.5.4, que no tuvo nota propia. Un fabricante de software puede poner en su programa un botón «Soporte remoto» que abra Golem Assist y conecte sin que el usuario pulse nada más, y el instalador del cliente prepara la clave del técnico para el Guardián.

Actualizar

La 1.6.0 está firmada, y los hashes de cada fichero están en la guía de instalación. Para un servidor que ya tiene Guardián no hace falta reinstalarlo: se cambia su golem.exe y se conservan los ocho dígitos y la identidad. Si se reinstala, el servidor recibe una ranura nueva. Un cliente 1.6 entra en un Guardián 1.5 y al revés; las notas y la espera necesitan los dos en 1.6.