Skip to main content

Localizar y reabrir sesiones de gentle-shell/pi (y la trampa de la hora UTC en el nombre del fichero)

Antecedentes

Tras un reinicio del Mac con herdr gestionando mis paneles, me encontré con dos despistes seguidos: los paneles que habían nacido con gentle-shell volvieron como pi a secas, y cuando quise localizar la sesión de un mensaje concreto no sabía ni de qué hora era ni dónde vivía el fichero. Esta nota es el chuleta que me habría ahorrado el rato perdido.

Dónde viven las sesiones

  • gentle-shell: ~/.gentle-shell/agent/sessions/<proyecto>/<fecha>_<id>.jsonl — un fichero por sesión, agrupados por directorio de trabajo. Ejemplo: --Users-abkrim-mi-proyecto--

  • pi clásico: ~/.pi/agent/sessions/, con la misma filosofía

Para encontrar la sesión de hoy, lo rápido es ordenar por fecha:

ls -lt ~/.gentle-shell/agent/sessions/*/ | head

La trampa: la hora del fichero es UTC

El nombre de cada fichero lleva la fecha en formato ISO, pero en UTC, no en tu hora local. Un fichero 2026-10-29T05-47-16-683Z se creó a las 06:47 de España (CET, +1). Si buscas «la sesión de las seis y cuarenta y siete» y no la ves, es porque la hora del nombre va una hora (dos en verano) por detrás de tu reloj.

Para no liarte, compara siempre contra el reloj UTC:

date '+%H:%M %Z'; date -u '+UTC: %H:%M'

Cómo reabrir una sesión

  • Desde el shell, con gentle-shell, que le pasa los argumentos que no conoce al pi de debajo:
gentle-shell --session ~/.gentle-shell/agent/sessions/<proyecto>/<fichero>.jsonl
  • Dentro de un pi vivo: el comando /resume abre el selector de sesiones.

Un matiz importante: reabrir una sesión de esa forma no es lo mismo que recuperar el hilo de trabajo. El contexto entre sesiones me lo trae la memoria persistente (Engram), no el fichero de sesión: dos sesiones distintas pueden continuar el mismo trabajo aunque el .jsonl de la primera siga cerrado.

Relacionado — el mismo incidente

  • Tras un reinicio, herdr puede relanzar los paneles de gentle-shell como pi a secas (pi --session <fichero>), sin las herramientas propias de gentle (subagentes, revisión…), y lo hace en silencio: la conversación continúa en el mismo fichero de sesión y el agente sigue trabajando, así que no hay error que lo delate. Para saber en qué modo corre un panel: ps -o command= -p $PPID — node .../gentle-shell es modo gentle, -zsh es pi pelado. La recuperación es cerrar ese pi y relanzar la sesión con gentle-shell --session <fichero>.

  • herdr update no se puede lanzar desde dentro de un panel de herdr: el propio comando lo rechaza. Toca abrir una ventana de terminal fuera de herdr y ejecutarlo ahí.