Sesiones y recuperación tras un crash¶
Un crash de Harmony no te cuesta el árbol de staging.
Hasta que se ejecuta Assemble, ese árbol no existe en ningún otro lugar del mundo: no hay formato de proyecto para él, y el vacuum lee la escena, que todavía no ha recibido nada. Así que OSA lo guarda, de forma continua, por su cuenta.
Qué se guarda¶
El árbol de staging, la selección y el estado de la interfaz — qué paneles están plegados, qué conmutadores de visualización están activos, dónde están los separadores.
El árbol es el trabajo del día. El estado de la interfaz es una comodidad: si recogerlo llegara a fallar, el árbol se escribe igualmente, porque perder la posición del separador es una molestia y perder el árbol es un día.
Cuándo guarda¶
Dos temporizadores, no uno:
| Temporizador | Se dispara |
|---|---|
| Inactividad | unos segundos después de que dejas de cambiar cosas — se rearma con cada edición |
| Techo | un máximo fijo, hagas lo que hagas |
El techo es un segundo temporizador y no un contador dentro del primero, porque el temporizador de inactividad se rearma con cada mutación — cualquier plazo guardado dentro de él quedaría postergado para siempre en una sesión intensa.
Dónde se guarda¶
%APPDATA%/Toon Boom Animation/Toon Boom Harmony Premium/
octo_scene_assembler/sessions/
Un archivo por escena, nombrado según la escena más un hash. No en la carpeta de la escena: puede que la escena nunca se haya guardado, y en Harmony Server la ruta es lógica, necesita mapeo y no está garantizado que sea escribible.
Cómo se escribe¶
tmp → el archivo actual se vuelve .bak → reemplazo atómico.
En ningún instante el destino queda escrito a medias. En un crash tienes o bien el archivo nuevo entero, o bien el anterior. Hay una generación de respaldo, no un historial.
Restaurar¶
Al abrir, si existe una sesión para esta escena, una barra la ofrece:
| Botón | Hace |
|---|---|
| Restore | reconstruye el árbol de staging a partir de la sesión guardada |
| Dismiss | borra la sesión guardada |
Dismiss borra de verdad. Un "dismiss" que solo oculta la barra significa que la misma oferta vuelve en cada apertura, para siempre.
Con Auto-restore Session activado (Preferences → Settings), el árbol vuelve sin preguntar.
Qué te dice la barra¶
| Mensaje | Significa |
|---|---|
| Session restored — N nodes. | hecho |
| …(X could not be restored.) | el árbol volvió; parte del "dónde estaba" no |
| The most recent session was corrupt; this is the previous one. | se usó el .bak |
| The saved session is unreadable. | ambas copias fallaron al interpretarse |
| This session was written by a newer version of OSA… | rechazada a propósito — aplicar a medias un formato futuro te daría un árbol que parece el tuyo y no lo es |
Una sesión corrupta nunca se descarta en silencio. Que no te digan nada es como un usuario concluye que el autoguardado nunca funcionó.
Crash vs cierre limpio¶
En un cierre limpio OSA elimina un marcador de "en ejecución". La ausencia de ese marcador en la siguiente apertura es lo único que distingue un crash de una salida normal — y esa distinción es lo que permite que la barra de restauración diga algo cierto.
Mantenimiento¶
La carpeta de sesiones se poda sola: 20 archivos, 30 días, con la sesión de la escena actual siempre protegida. Sin eso, la carpeta crece un archivo por escena para siempre y nadie va allí a limpiar.
Cuando el autoguardado no puede escribir¶
Si un guardado falla, aparece un mensaje amarillo — una vez por racha de fallos, no en cada tick, y se borra solo tras unos segundos.
La razón va a osa.log, en la misma carpeta que las sesiones, y nombra la causa. Si el fallo fue un valor que no se pudo serializar, el log nombra la clave exacta, porque "falló" no es algo sobre lo que nadie pueda actuar.
Dónde mirar cuando algo va mal
%APPDATA%/Toon Boom Animation/Toon Boom Harmony Premium/octo_scene_assembler/osa.log
Ese archivo es también cómo el soporte lee lo que hizo tu Harmony sin necesitar tu escena.