Repository navigation
v1.0.0
WrtMonitor v1.0.0 - Public Release
Первый публичный выпуск self-hosted управления OpenWrt для одного владельца. Apache License 2.0. Сервер, агент и Android имеют согласованную версию 1.0.0; Android versionCode 126.
Исправлено
- Публичные аппаратные и диагностические отчёты используют разрешённый набор полей, без raw UCI, системных журналов и аргументов процессов.
- JWT требуют обязательные claims; обработка архивов восстановления ограничивает размер, пути и типы файлов.
- Резервные копии сервера создаются в уникальных временных файлах с закрытыми правами доступа.
- Android корректно различает публичные имена серверов и локальные IPv6-адреса.
- Заданы обязательный пароль PostgreSQL и проверки ошибок подключения агента.
- На Netis исправлена реальная ошибка BusyBox: проверка Wi-Fi через
trпортила JSON и откатывала уже поднятый SSID. Теперь используетсяjsonfilter; исправлены также нормализация MAC и duplex. - Состояние гостевой сети и профиля доступа согласовано, профиль включён в rollback при изменении/удалении SSID.
- Короткая PTY-сессия больше не считается ошибкой запуска после успешного завершения. Аппаратный runner использует явно подтверждённые SSH-ключи.
Комплект выпуска
- Apache License 2.0 включена в сервер, APK, архив агента и файлы выпуска. Лицензии сторонних компонентов сохранены.
- Добавлены Quick Start, границы аппаратной совместимости, сравнение решений и troubleshooting.
- Полный release inventory содержит commit, версии и immutable digest контейнера; контрольные суммы подписываются Ed25519 и RSA.
- Stable gate требует полный физический E2E именно кандидата и отдельное решение владельца.
RELEASE_INVENTORY.json фиксирует commit и immutable digest контейнера. RELEASE_SHA256SUMS.txt покрывает APK, архив агента, TrueNAS YAML, LICENSE и метаданные выпуска и имеет Ed25519/RSA подписи. Отдельный SHA256SUMS.txt описывает файлы внутри архива агента.
Обновление
Штатное обновление сервера через Docker/TrueNAS, агента через подписанный manifest, Android через APK с прежним ключом подписи. Чистая установка не требуется для версионированной БД 0.55.5; перед обновлением сохраните резервную копию. Android versionCode: 126.
Проверки и границы
468 локальных PostgreSQL/backend/agent тестов, OpenWrt harness, responsive browser smoke. CI проверяет Android unit/build/lint/emulator, ShellCheck, contracts, миграции, PostgreSQL backup/restore, чистую установку и обновление с immutable 0.55.5. Security проверяет историю секретов, CodeQL и зависимости.
Аппаратные результаты 1.0.0: Netis NX31 - 91 pass / 4 not applicable; OpenWrt x86/VirtualBox - 76 pass / 19 not applicable. Дополнительно проверены реальная повторная доставка без повторного выполнения, просроченная команда без выполнения, восстановление связи и браузерный PTY. Метод и ограничения, отчёт готовности.
Владелец подтвердил вход, возврат после сна, потерю сети и повторный вход Android на телефоне. Версия установленного APK не записана; это не утверждение о ручной установке финального подписанного APK 1.0.0.
Ограничения: single-owner, поддержка зависит от capabilities роутера; VM без Wi-Fi не подтверждает Wi-Fi. Реальная перепрошивка и внешний VPN-трафик не проверялись. Многодневный soak нового кандидата не выполнялся. Это выпуск для дома/homelab/небольшой сети, не enterprise или multi-tenant controller.
Итог публикации
- CI тега: все 7 jobs success.
- Security точного коммита: success.
- Продвижение GitHub и GHCR latest: success.
- Скачанные 12 файлов проверены: обе подписи release/agent manifest, все checksum, хеши файлов архива агента.
- APK: versionName 1.0.0, versionCode 126 > 125, действительная подпись с прежним сертификатом 0.55.5.
- Inventory commit и OCI labels совпадают с тегом
327ac45de75f506c8e23a7b630d5682fdd499155. - Версионный контейнер 1.0.0 и контейнерный latest имеют одинаковый digest:
sha256:4a3fbe2d73ec4d84edaef7d9570b5855f7b97989f141d1e122afbbe5b68b597e
Оба стенда возвращены на рабочий сервер с исходной конфигурацией и агентом 1.0.0. Обновление рабочего TrueNAS-сервера выполняется владельцем штатно, не объявляется выполненным этим выпуском.