---
title: "Histórico de versões"
description: "O registro de revisões de uma nota: snapshots deduplicados por conteúdo, proveniência das edições e restauração de qualquer versão."
---

# Histórico de versões

Cada nota mantém seu próprio registro de revisões — um histórico de todos os estados pelos quais ela passou. Isto é versionamento no nível da aplicação, não uma camada git sobre uma pasta: o registro vive no banco de metadados (metadata DB) e acumula os estados que passaram pelo Notarium ou foram detectados pela sincronização de arquivos. O próprio arquivo `.md` continua sendo a fonte da verdade — o registro o complementa, sem substituí-lo.

## Uma revisão é um snapshot

Cada revisão guarda o estado completo da nota no momento da edição: título, tags, slug e corpo normalizado — não um diff linha a linha. Os diffs para comparar versões são calculados na hora, porque podem ser reconstruídos a partir dos snapshots.

Os corpos das revisões são endereçados por conteúdo (content-addressed, sha-256), então conteúdo idêntico é armazenado apenas uma vez. Restaurar uma versão, os ciclos de edição de um agente e estados que se repetem não geram cópias extras — a deduplicação se baseia no próprio conteúdo.

A chave do registro é o identificador interno da nota (`notarium-id`), não o caminho do arquivo. É por isso que o histórico sobrevive à movimentação entre pastas e à renomeação: continua sendo a mesma nota, com o mesmo histórico.

## Proveniência: quem editou, e como

Cada revisão é assinada — dá para ver de onde veio a mudança. Uma revisão tem um tipo e um principal como autor:

| Tipo de revisão | O que significa |
|---|---|
| `write` | Um salvamento pelo Notarium (humano ou agente) |
| `external` | Um estado detectado pela sincronização de arquivos diretamente no disco |
| `restore` | Uma reversão a uma versão anterior (mantém uma referência à origem) |
| `delete` | Tombstone: o último estado de uma nota excluída |

O autor é registrado como um usuário específico, o token pessoal de um agente ou a interface; edições externas não têm autor — não há quem as assine. Assim, o histórico mostra exatamente o que um humano editou e o que um agente de IA fez. Para saber mais sobre a separação entre edições de humanos e de agentes, veja [Humanos e agentes](/docs/concepts/human-and-agents/).

> [!note] Granularidade das edições externas
> As edições feitas diretamente no arquivo (contornando o Notarium) são vistas pelo registro com a precisão de um ciclo de sincronização: várias mudanças entre sondagens colapsam em um único estado observado. As edições feitas pelo próprio Notarium são registradas com precisão.

Uma revisão também carrega a contagem de caracteres adicionados e removidos — o "custo" da edição em relação à versão anterior.

## Visualizar, comparar e restaurar

O histórico de uma nota fica disponível no modo de leitura — a aba **History** no painel lateral mostra uma linha do tempo das versões: quem fez a edição, as contagens `+N −M` e a data. Selecionar uma revisão a abre no lugar do texto atual, com um alternador entre Changes (um diff no nível de palavras, com inserções e remoções destacadas) e Content (o conteúdo em si).

![A aba History: revisões com seu autor e suas contagens; a v3 foi feita por um agente](/media/app-history-light.webp)

Para reverter, use o botão **Restore this version**. A restauração pega o corpo do registro e o grava como uma nova edição, protegida por uma verificação otimista de versão: se a nota tiver sido alterada nesse meio-tempo, você recebe um conflito (409), e nada é sobrescrito silenciosamente.

## Armazenamento e exclusão

Por padrão, o histórico é mantido por completo — o Notarium não descarta revisões automaticamente. Você pode apagar o histórico de uma nota inteiramente à mão, esvaziando-o pela [Lixeira](/docs/guides/trash/): excluir uma nota cria um tombstone com seu último estado (que pode ser restaurado), e uma purga final apaga o histórico também.

> [!note] Limites do registro
> O histórico de versões requer o banco de metadados. Sem o banco de metadados, o histórico vive apenas durante a execução do processo. Não há descarte automático agendado de revisões antigas — mantemos o histórico por completo.

Tópicos relacionados: [File-first](/docs/concepts/file-first/) — o arquivo como fonte da verdade, [Lixeira](/docs/guides/trash/) — exclusão e restauração, [Modelo de acesso](/docs/concepts/access-model/) — quem pode reverter versões.
