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.
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).


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: excluir uma nota cria um tombstone com seu último estado (que pode ser restaurado), e uma purga final apaga o histórico também.
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 — o arquivo como fonte da verdade, Lixeira — exclusão e restauração, Modelo de acesso — quem pode reverter versões.