# Octava Router dev460

## dev459-to-dev460-russian-default

- При первом обращении интерфейс, страницы обновления и восстановления используют русский язык. Явно выбранный английский остаётся доступным и сохраняется при повторной загрузке.
- Сообщение ожидания на странице обновления использует каталог перевода.
- Исходные строки и реализация остаются английскими; русский загружается из locale JSON.

# Octava Router dev459

## dev458-to-dev459-miners-ui

- У каждой сети поиска есть редактируемое имя. Для сети интерфейса оно по умолчанию совпадает с именем интерфейса, для своей сети обязательно заполнение. Имена сохраняются при перезапуске и восстановлении резервной копии.
- Поля и кнопки разделены отступами; форма адаптируется к узкому экрану.
- После подключения показана карточка: роутер, предприятие, площадка и последняя подтверждённая доставка. Регистрационная форма скрывается.
- Отключение находится в свёрнутом меню управления и требует отдельного подтверждения.
- Прежние сети без имён читаются без изменения диапазонов поиска, служебного AWG3 и других VPN.

# Octava Router dev458

## dev457-to-dev458-miners-awg3

### Добавлено

- Раздел Octava Connect → Майнеры: настройка конкретных IPv4-сетей, поиск и периодический опрос майнеров, состояния, модель, температура и хешрейт при поддержке API устройства.
- Подключение BPI к площадке Octava Connect по одноразовому коду. Сначала отображаются предприятие и площадка; защищённый канал включается только отдельным подтверждением администратора.
- Выделенный служебный AWG3 на UDP20580. Интерфейс изолирован от обычной маршрутизации, DNS и остальных служб. Телеметрия не передаётся через публичный HTTP.
- Локальная очередь телеметрии с подтверждением доставки; локальный мониторинг сохраняется при недоступном центре. Настройки поиска входят в резервную копию, приватная идентичность устройства не копируется.

### Исправлено

- Новый локальный агент запускается и проверяется сразу при штатном пакетном обновлении; перезагрузка для появления службы не требуется.
- Отключение подключения не ждёт завершения фонового сетевого запроса. Смена намерения отменяет устаревший запрос.

### Проверка администратором

- Задайте сеть майнеров; поиск выполняется только в сохранённых сетях. Создайте код на странице вашей площадки, вставьте его на BPI, проверьте названия и явно подтвердите подключение.
- Передача в Zabbix, массовые действия и контроллеры охлаждения этим пакетом не добавляются.

# Octava Router dev457

## dev456-to-dev457-recovery-priority

### Исправлено

- Фоновое восстановление runtime больше не вмешивается в пользовательскую транзакцию между применением и подтверждением настроек.
- При наличии ожидающей подтверждения конфигурации фоновая сверка откладывается и возобновляется после подтверждения, отката либо истечения срока транзакции.
- Сценарий «проверить план → применить → подтвердить» сохраняет журнал отката и завершается без ложной ошибки `DYNAMIC_ROUTING_TRANSACTION_NOT_FOUND`.

# Octava Router dev456

## dev454-to-dev456-routing-repair

### Исправлено

- Администратор может отключить или изменить Dynamic Routing, если после отказа VPN исчезла одна из принадлежащих модулю служебных таблиц, а остальные принятые правила сохранились.
- Исправляющее применение разрешается только для доказанного частичного состояния из объектов прежнего и нового планов. Неизвестные маршруты, правила и nftables-объекты по-прежнему блокируют операцию.
- При ошибке исправления система восстанавливает и проверяет прежнее принятое состояние.
- Для аварийного результата отката добавлены явные сообщения Web UI на русском и английском языках.

## dev443-to-dev454-networkd-ownership

### Исправлено

- `systemd-networkd` больше не удаляет policy rules, принадлежащие VPN и Dynamic Routing, при применении сетевой конфигурации или `networkctl reload`.
- В пакет включён проверяемый drop-in `ManageForeignRoutingPolicyRules=no`.

## dev442-to-dev443-dynamic-startup-system-routes

### Исправлено

- Устранено предупреждение `DYNAMIC_ROUTING_STARTUP_FAILED`, возникавшее сразу после установки dev442. Runtime compiler принимает обнаруженные системные маршруты с типом `system_route` и включает их в nft safety до правил перенаправления.
- После успешного запуска исправленной версии постоянное предупреждение снимается автоматически штатным lifecycle.

## dev441-to-dev442-system-route-precedence

### Исправлено

- Динамическая маршрутизация учитывает non-default маршруты основной системной таблицы: DHCP-подсети WAN, статические маршруты, host routes и маршруты VPN. Маршрут по умолчанию остаётся доступным правилу «весь остальной трафик через выбранный канал».
- VPN не заменяет совпадающий системный маршрут и удаляет только собственный маршрут `protocol 242`, если системный маршрут появляется позднее.
