feat(core): add compact durable world storage and verified CLI

This commit is contained in:
Emil
2026-09-14 16:32:48 +03:00
parent ddfcef2e1d
commit cf8d1aae2e
29 changed files with 4392 additions and 20 deletions
+2 -2
View File
@@ -78,7 +78,7 @@
Одна успешная мутация атомарно фиксирует:
1. Новые секции и изменения ссылок мира.
2. Новую ревизию, если состояние мира изменилось.
2. Новую ревизию принятой операции, включая no-op.
3. Запись операции, её отпечаток и точный результат для повторной выдачи.
4. Данные истории, необходимые для безопасного undo.
@@ -102,7 +102,7 @@
Отпечаток включает метод и все его значимые аргументы, включая `expected_revision`; порядок уникальных позиций канонизируется. Область уникальности идентификатора — стабильный внутренний ID мира, а не имя, которое в будущем может быть переиспользовано.
Для операции, реально не изменяющей блоки, предлагается сохранять идемпотентный результат с `changed=0` без увеличения ревизии. Пустые и повторные запросы не должны бесконечно увеличивать номер состояния. Такая операция всё же требует долговечной записи дедупликации.
Принятая семантика первого этапа: каждая новая успешно принятая edit-операция повышает ревизию, даже при `changed=0`. Такая операция также ставит границу для консервативного undo и сохраняет долговечный результат дедупликации. Точный повтор операции не увеличивает ревизию.
Повтор возвращает ревизию исходной операции, которая может быть меньше текущей. Клиент не должен откатывать свою текущую ревизию по такому ответу. Ошибка после commit, но до доставки ответа, означает неопределённость для вызывающего кода: безопасный повтор использует тот же идентификатор и те же аргументы.