# Atualizações automáticas

Como o Oleafly constrói, assina, verifica e publica o feed do atualizador multiplataforma.

O Oleafly usa o plugin de atualização do Tauri. Na inicialização, o aplicativo verifica o release mais recente do GitHub e abre a própria janela de atualização quando há uma versão mais nova disponível. Também é possível verificar pelo menu do aplicativo ou em **Sobre → Verificar atualizações**.

## Feed de releases

Cada build de plataforma cria artefatos assinados do atualizador e um fragmento de `latest.json`. O fluxo de trabalho de release mantém esses fragmentos separados até os quatro builds terminarem e então mescla as entradas de cada destino em um manifesto canônico.

O manifesto final precisa conter entradas para macOS Apple Silicon, Windows x64, Linux x64 e Linux ARM64. Ele fica anexado a um release em rascunho até um mantenedor executar o fluxo de trabalho protegido de publicação. Os aplicativos instalados não veem o rascunho.

O aplicativo baixa o `latest.json` dos releases do GitHub. Antes da instalação, o Tauri verifica a assinatura do atualizador contra a chave pública embutida em `src-tauri/tauri.conf.json`. Artefatos ausentes, não assinados ou alterados são rejeitados.

As notas de versão vêm da seção correspondente no `CHANGELOG.md`. O fluxo de trabalho extrai essa seção e a usa tanto no corpo do release do GitHub quanto na janela do atualizador.

## Chaves de assinatura

A chave pública do atualizador fica no repositório, em `src-tauri/tauri.conf.json`. A chave privada deve existir somente nos segredos do GitHub Actions:

- `TAURI_SIGNING_PRIVATE_KEY`
- `TAURI_SIGNING_PRIVATE_KEY_PASSWORD`

Nunca faça commit da chave privada. Se ela for exposta, gere um novo par, atualize o segredo do repositório e substitua a chave pública embutida. As instalações existentes confiam na chave embutida nelas, então uma rotação exige um caminho planejado de atualização manual.

A assinatura do sistema operacional é separada da assinatura do atualizador. Builds do macOS usam assinatura de código da Apple e notarização quando os segredos de release estão presentes. Builds do Windows usam Azure Artifact Signing quando as credenciais dele estão presentes.

## Falha e reversão

Uma verificação ou um download que falha deixa o aplicativo instalado inalterado. Falha de assinatura bloqueia a instalação. O aplicativo reinicia somente depois que o download verificado é instalado com sucesso.

O Oleafly não reverte automaticamente uma atualização concluída. Para voltar a uma versão anterior, feche o aplicativo, faça backup dos projetos importantes, baixe o instalador oficial anterior, verifique-o e instale-o por cima da versão atual.

Veja [Lançamento de versões do Oleafly](/docs/engineering/releasing/) para o processo de rascunho e publicação.
