Sessões e recuperação de crash¶
Um crash do Harmony não custa a sua árvore de staging.
Até o Assemble rodar, aquela árvore não existe em nenhum outro lugar do mundo: não há formato de projeto para ela, e o vacuum lê a cena, que ainda não recebeu nada. Então o OSA a salva, continuamente, por conta própria.
O que é salvo¶
A árvore de staging, a seleção, e o estado da UI — quais painéis estão recolhidos, quais alternadores de exibição estão ligados, onde estão os divisores.
A árvore é o trabalho do dia. O estado da UI é conveniência: se coletá-lo falhar, a árvore é escrita mesmo assim, porque perder a posição do divisor é um aborrecimento e perder a árvore é um dia.
Quando ele salva¶
Dois temporizadores, não um:
| Temporizador | Dispara |
|---|---|
| Inatividade | poucos segundos depois que você para de mudar coisas — rearmado a cada edição |
| Teto | um máximo fixo, faça você o que fizer |
O teto é um segundo temporizador em vez de um contador dentro do primeiro, porque o temporizador de inatividade é rearmado a cada mutação — qualquer prazo guardado dentro dele seria empurrado para sempre por uma sessão movimentada.
Onde é salvo¶
%APPDATA%/Toon Boom Animation/Toon Boom Harmony Premium/
octo_scene_assembler/sessions/
Um arquivo por cena, nomeado com o nome da cena mais um hash. Não na pasta da cena: a cena pode nunca ter sido salva, e no Harmony Server o caminho é lógico, precisa de mapeamento e não tem garantia de ser gravável.
Como é escrito¶
tmp → o arquivo atual vira .bak → substituição atômica.
Nenhum instante deixa o alvo escrito pela metade. Num crash você tem ou o arquivo novo inteiro, ou o anterior. Existe uma geração de backup, não um histórico.
Restaurando¶
Ao abrir, se existe uma sessão para esta cena, uma barra a oferece:
| Botão | Faz |
|---|---|
| Restore | reconstrói a árvore de staging a partir da sessão salva |
| Dismiss | apaga a sessão salva |
O Dismiss apaga de verdade. Um "dismiss" que só esconde a barra faz a mesma oferta voltar a cada abertura, para sempre.
Com Auto-restore Session ligado (Preferences → Settings), a árvore volta sem perguntar.
O que a barra te diz¶
| Mensagem | Significa |
|---|---|
| Session restored — N nodes. | feito |
| …(X could not be restored.) | a árvore voltou; parte do "onde eu estava" não |
| The most recent session was corrupt; this is the previous one. | o .bak foi usado |
| The saved session is unreadable. | as duas cópias falharam ao ser interpretadas |
| This session was written by a newer version of OSA… | recusada de propósito — aplicar um formato futuro pela metade te daria uma árvore que parece a sua e não é |
Uma sessão corrompida nunca é descartada em silêncio. Não ser avisado é como um usuário conclui que o autosave nunca funcionou.
Crash vs saída limpa¶
Numa saída limpa o OSA remove um marcador de "em execução". A ausência desse marcador na próxima abertura é a única coisa que distingue um crash de uma saída normal — e é essa distinção que permite à barra de restauração dizer algo verdadeiro.
Faxina¶
A pasta de sessões se poda sozinha: 20 arquivos, 30 dias, com a sessão da cena atual sempre protegida. Sem isso, a pasta cresce um arquivo por cena para sempre e ninguém vai lá limpar.
Quando o autosave não consegue escrever¶
Se um salvamento falha, uma mensagem amarela aparece — uma vez por sequência de falhas, não a cada tique, e ela some sozinha depois de alguns segundos.
O motivo vai para o osa.log, na mesma pasta das sessões, e ele nomeia a causa. Se a falha foi um valor que não pôde ser serializado, o log nomeia a chave exata, porque "falhou" não é algo sobre o que alguém possa agir.
Onde olhar quando algo está errado
%APPDATA%/Toon Boom Animation/Toon Boom Harmony Premium/octo_scene_assembler/osa.log
Esse arquivo também é como o suporte lê o que o seu Harmony fez sem precisar da sua cena.