Novij Storage
Безопасное удаление и восстановление блоков
- Cleanup неоплаченных блоков теперь удаляет только тело с полностью проверенным
canonical recovery identity; body-only legacy-блоки остаются защищёнными.
- Prepare и commit повторно сверяют тело с linear/mergeable manifest, а
delete-attestation сохраняет physical hash и параметры consistency mode.
- `sync restore-deleted` поддерживает mergeable manifest и отдельное явное
восстановление исторического body-only backup по точному операторскому SHA3.
Governance config epoch consumer
- Удалён минутный polling `/network/settings`.
- Добавлен один process-wide consumer: startup read, config-head в существующем
keep-alive, bounded cursor pull и атомарная замена runtime snapshot.
- `config_epoch/config_hash/certificate_id/cursor` сохраняются локально;
rollback, hash-конфликт и несертифицированное событие отклоняются.
- Governance-only epochs не создают лишнюю runtime-работу. Новых idle HTTP
запросов для network config: 0.
P30-P32 package/sync foundation
- Добавлен read-only sync/status foundation: `/sync/status`, `/sync/peers`,
`/sync/inventory`, `/sync/block/{block_id}/chunks`, `/sync/conflicts`, `/sync/lag`.
- Добавлен `novij-storagectl` для audit dry-run, safe pull-missing, peer visibility,
install-auth и first-run setup.
- Добавлена Debian packaging конфигурация для `novij-storage`.
- Добавлен package smoke и package-site publish flow для `packages.novij.tech/storage`.
- Сервисы пакета требуют owner-signed install authorization перед запуском.
- `novij-storage-sync.timer` выполняет missing-only sync с caps, без overwrite/delete.
Live write/append, fake billing source и payout settlement не добавлялись.