История версий
Каждая заметка ведёт собственный журнал ревизий — историю всех состояний, через которые она прошла. Это версионирование на уровне приложения, а не git-слой над папкой: журнал живёт в служебной базе (meta-DB) и копит состояния, которые прошли через Notarium или были замечены синхронизацией файлов. Сам .md-файл при этом остаётся источником правды — журнал его дополняет, а не подменяет.
Ревизия — это снапшот
Каждая ревизия хранит полное состояние заметки на момент правки: заголовок, теги, slug и нормализованное тело — а не построчный дифф. Диффы для сравнения версий вычисляются на лету, потому что они восстановимы из снапшотов.
Тела ревизий адресуются по содержимому (content-addressed, sha-256), поэтому одинаковое содержимое хранится один раз. Восстановление версии, циклы правок агента и повторяющиеся состояния не плодят копий — дедупликация идёт по самому содержимому.
Ключ журнала — внутренний идентификатор заметки (notarium-id), а не путь к файлу. Поэтому история переживает перемещение между папками и переименование: это по-прежнему та же заметка с той же историей.
Провенанс: кто и как правил
Каждая ревизия подписана — видно, откуда взялось изменение. У ревизии есть вид и принципал-автор:
| Вид ревизии | Что означает |
|---|---|
write | Сохранение через Notarium (человек или агент) |
external | Состояние, замеченное синхронизацией файла напрямую на диске |
restore | Откат к прошлой версии (хранит ссылку на источник) |
delete | Надгробие: последнее состояние удалённой заметки |
Автор фиксируется как конкретный пользователь, персональный токен агента или интерфейс; у внешних правок автора нет — их некому подписать. Так в истории видно, что именно правил человек, а что — ИИ-агент. Подробнее о разделении правок людей и агентов — в разделе Человек и агенты.
Правки прямо в файле (в обход Notarium) журнал видит с точностью до цикла синхронизации: несколько изменений между опросами схлопываются в одно наблюдаемое состояние. Правки через сам Notarium фиксируются точно.
Ревизия также несёт счётчики добавленных и удалённых символов — «цену» правки относительно предыдущей версии.
Просмотр, сравнение и восстановление
История заметки доступна из режима чтения — вкладка History в боковой панели показывает таймлайн версий: кто внёс правку, счётчики +N −M и дату. Выбор ревизии открывает её вместо текущего текста, с переключателем между режимами Changes (пословный дифф с подсветкой вставок и удалений) и Content (само содержимое).


Откат — кнопка Restore this version. Восстановление берёт тело из журнала и записывает его как новую правку через оптимистичную проверку версии: если заметку тем временем изменили, вы получите конфликт (409), и ничего не затрётся молча.
Хранение и удаление
По умолчанию история хранится целиком — Notarium не прореживает ревизии автоматически. Полностью стереть историю заметки можно вручную, очистив её из Корзины: удаление заметки создаёт надгробие с последним состоянием (её можно восстановить), а окончательная очистка стирает и историю.
История версий требует служебной БД. Без служебной БД история живёт только на время работы процесса. Автоматического прореживания старых ревизий по расписанию нет — историю храним целиком.
Смежные темы: File-first — файл как источник правды, Корзина — удаление и восстановление, Модель доступа — кто может откатывать версии.