Novij Backup Agent

0.6.08.151408

Package site

Novij Backup Agent

Изменения

  • Storage без зарегистрированного на выбранном Relay биллингового кошелька больше

не выбирается для записи: probe сверяет фактический `wallet_id`, а не принимает

один WebSocket `pong` за полную готовность ноды. Автоматический failover также

ограничен проверенными в текущем discovery Storage.

  • Встроенные bootstrap Relay переведены с временных seed-алиасов на исходные

домены Ino и петербургского Relay.

  • Network Registry теперь используется только как авторитетный источник active

membership, а доступность Storage агент подтверждает собственным probe.

Задержавшийся heartbeat больше не создаёт ложную ошибку отсутствия Storage в

`verify`, `doctor` и `restore`.

  • Vendored C++ SDK обновлён до 48-часового срока валидного Network Registry

checkpoint и планового выбора узлов. Временный отказ одного seed по-прежнему

приводит к безопасному failover, но не вызывает лишние сетевые пробы.

  • Исправлена сборка фрагментированных текстовых WebSocket-ответов Storage:

C++ SDK теперь ждёт финальный continuation-кадр, сохраняет порядок частей и

собирается без ложного предупреждения GCC о неинициализированном opcode.

  • Устранено предупреждение современного CMake от vendored `yaml-cpp 0.8.0`:

минимальная policy-совместимость зависимости повышается до 3.5 штатным

воспроизводимым patch-step без отключения диагностик.

  • `novij-backup blocks` теперь выводит только chunks и manifest-блоки, необходимые активным сохраняемым backup; истёкшая история и устаревшие coverage-only ссылки исключены.
  • Пополнение отдельного ZK безопасно повторяется при явном `LEDGER_BACKEND_UNAVAILABLE`, но не при неоднозначном результате transfer.
  • ZK sync теперь возвращает и сразу использует фактический active coupon ID, поэтому после ротации doctor/verify не перепроверяют истёкший предыдущий купон.
  • `doctor` загружает сохранённый `zk-coupon.json` до первого аудита, поэтому повторная проверка ротированного купона идемпотентна и не перезаписывает устаревший bootstrap-купон.
  • Добавлено разделение package-site на каналы `latest` и `stable`.
  • Добавлены HTML-страницы патч-ноутов для package-site.
  • Добавлена двуязычная главная страница package-site.

Обновление

  • Обновлено автообновление: поддерживаются `updates.base_url`, `updates.channel` и `novij-backup update --channel`.
  • Обновлён установщик: поддерживается `NOVIJ_PACKAGE_CHANNEL=latest|stable`.
  • Обновлена генерация `.deb`-версий в CI: используется хронологический формат `0.<Y>.<MM>.<DDHHMM>` в зоне `Europe/Moscow`.
  • Обновлена публикация package-site: deploy проверяет права на всё дерево сайта, чинит владельца через `sudo` при возможности и показывает команду для сервера при нехватке прав.

Совместимость

  • Существующие конфиги без `updates.base_url` и `updates.channel` продолжают использовать канал `latest`.