MadoHub Docs

Persistencia

Qué guarda MadoHub, dónde lo guarda y cómo.

MadoHub conserva el estado de su espacio de trabajo en disco para que todo se restaure cuando vuelva a abrir la app. Todos los datos persistentes del espacio de trabajo se almacenan localmente en su máquina.

Ubicación de almacenamiento

Todos los archivos se guardan en ~/.madohub/:

~/.madohub/
├── canvas-state.json         # Estado completo del lienzo
├── config.json               # Configuración de la app
├── chat-history.json         # Historial de mensajes del chat
├── memory-policies.json      # Políticas de inserción automática de memoria
├── templates/
│   └── <slug>.json           # Una por cada plantilla de espacio de trabajo guardada
├── flows/
│   └── <id>.json             # Uno por cada flow guardado
├── logs/
│   └── madohub.log           # Registros de la aplicación
├── notifications/            # Marcadores de finalización del hook Stop
└── orchestrator/              # Estado del modo orquestador

Qué se guarda

Estado del lienzo (canvas-state.json)

DatosDetalles
TilesTipo, posición, tamaño, z-index, rutas de archivo, directorio de trabajo
FramesRutas de espacios de trabajo, colores, posiciones
ViewportDesplazamiento de paneo (X/Y) y nivel de zoom
ConnectionsTodas las conexiones de enrutamiento con su configuración de trigger/transform
SettingsProveedor de API, clave, modelo; estado de los hooks de notificación
Max z-indexPara el orden de apilado de nuevos tiles
Dismissed sessionsSesiones tmux ocultas

Configuración de la app (config.json)

DatosDetalles
Hooks stateSi los hooks de notificación de Claude Code están habilitados
Workspaces (heredado, inactivo)El esquema de configuración todavía define una lista de directorios de proyecto registrados y un ID de espacio de trabajo activo, pero ninguna ruta de código del frontend llama a las funciones de guardado/carga correspondientes, así que están muertos. El concepto vigente para el estado por proyecto son los frames, almacenados en canvas-state.json.

Cómo funciona el guardado

  • Auto-save: Se activa con cualquier cambio en el lienzo, la conexión o la configuración.
  • Debounced: Retraso de 500ms para agrupar cambios rápidos.
  • Atomic writes: Los datos se escriben primero en un archivo hermano único (<name>.tmp.<pid>.<seq>) y luego se renombra a su ubicación final. Esto evita la corrupción si la app falla a mitad de la escritura.
  • Recuperación de corrupción: Si un archivo no se puede analizar como JSON al cargarlo, sus bytes se ponen en cuarentena en un archivo hermano con nombre basado en contenido <name>.corrupt.<hash> (estable entre reinicios), y la carga recurre a los valores por defecto en lugar de fallar.

Qué NO se guarda

  • Contenido de sesiones de terminal (la salida PTY es efímera)
  • Contenidos del portapapeles

On this page