Repository navigation
Releases: shurshick/wrtmonitor
Release list
v1.0.1
WrtMonitor v1.0.1 - Agent Update Status
Исправление неверного отображения обновлений агента после перехода на публичный выпуск 1.0.0. Сервер, агент и Android: 1.0.1; Android versionCode 127.
Исправлено
- Web и Android различают установленную версию, источник при последней проверке и действительно доступное обновление. Более старая или равная версия не считается обновлением.
- Старый результат
skipped / downgrade blockedобъясняется как блокировка отката, а не авария. Защита от отката не отключена. - Агент новее сервера больше не получает ошибочное предложение обновиться назад.
- Настоящие ошибки загрузки, checksum и проверки подписей остаются видимыми. Исходные значения и время проверки в telemetry не переписываются.
- Android корректно отображает старый формат данных при работе с сервером 1.0.0.
Обновление
Чистая установка не требуется. Обновите сервер через Docker/TrueNAS, затем агенты штатным подписанным обновлением. Android APK подписан прежним ключом, versionCode увеличен до 127. Старый выпуск 1.0.0 не перезаписывается; 1.0.1 получает отдельный тег и комплект файлов.
Проверки и фактические аппаратные результаты: agent-update-status-1.0.1. Исторические отчёты 1.0.0 остаются отдельными и не выдаются за проверки нового backend.
479 локальных backend/agent тестов, harness и desktop/mobile browser smoke прошли. Android unit/build и emulator UI проверяют новый статус обновлений. Новый аппаратный прогон 1.0.1: Netis NX31 - 91 pass / 4 not applicable; x86/VirtualBox - 76 pass / 19 not applicable. Оба стенда приняли подписанное обновление 1.0.0 → 1.0.1. Проверены PTY, reboot, восстановление связи и хеши 60 установленных файлов. Многодневный soak, ручная проверка нового APK на телефоне и реальная перепрошивка не заявляются.
RELEASE_INVENTORY.json фиксирует commit и immutable digest контейнера. Release и agent manifests имеют Ed25519/RSA подписи. Перевод GitHub latest и GHCR latest выполняется только после проверки собранных файлов и CI.
Подтверждение публикации
- CI тега: все 7 jobs success.
- Security точного коммита: success.
- GitHub и GHCR latest: success.
- Скачанные 12 файлов проверены: Ed25519/RSA подписи release и agent manifests, все checksum и файлы архива агента.
- APK: versionName 1.0.1, versionCode 127 > 126, действительная подпись с прежним сертификатом 1.0.0.
- Inventory commit и OCI labels совпадают с тегом
4fd1ad11734d2c97f739caffa23d855d6ce014ba. - Контейнеры 1.0.1 и latest имеют один digest:
sha256:6120902d10fe66d756efededc91cabac0bebba0d8c7cd7dba9c647d2ea452ad5
Рабочие настройки и проверенный агент 1.0.0 возвращены на оба стенда. Основной TrueNAS-сервер обновляет владелец штатным механизмом: публикация latest не заменяет уже запущенный контейнер. После обновления сервера агенты получают 1.0.1 без перезагрузки роутера.
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-сервера выполняется владельцем штатно, не объявляется выполненным этим выпуском.
v0.55.5
WrtMonitor v0.55.5 - Release Cleanup Исправления надёжности и подготовка к публичному выпуску. ## Исправлено - SSE и переключение страниц журнала больше не заменяют ссылки во время нажатия. - Запоздалый фоновый ответ не возвращает журнал на предыдущую страницу. - Изменённые значения форм сохраняются при обновлении журнала. - WireGuard endpoint проверяется линейным разбором; malformed адреса и порты отклоняются. - Обновлены совместимые серверные зависимости, Android Security Crypto и GitHub Actions с поддержкой Node.js 24. - PyJWT обновлён до 2.15.1 с исправлениями безопасности проверки токенов. - Обновление карточки пакетов не сбрасывает поиск и раскрытые списки. - Roadmap очищен от устаревших статусов уже выпущенных версий. ## Обновление Штатное обновление сервера через Docker/TrueNAS, агента через подписанный manifest, Android через подписанный APK. Начальная схема PostgreSQL и UCI-конфигурация не изменены. Android versionCode: 125. ## Проверки и границы Обязательны CI, Security, Android emulator, signed APK, чистая установка и обновление серверного контейнера с сохранением базы. Отчёт с фактическими результатами, доступностью стендов и отложенными зависимостями: Release Cleanup. Новый многодневный аппаратный прогон исключён владельцем при поручении этого cleanup; прежние сертификаты не выдаются за результаты новой версии. Все версии до 1.0.0 остаются тестовыми.
v0.55.4
WrtMonitor v0.55.4 - Android Overview Polish
Небольшой patch-релиз исправляет компоновку обзора роутера в Android.
Исправлено
- четыре плитки ресурсов имеют одинаковую высоту, даже когда нагрузка занимает две строки;
- быстрые действия расположены в симметричной сетке 2×3;
- добавлен быстрый переход в раздел «Система»;
- подписи кнопок сокращены и не обрезаются на компактных экранах;
- устранена нестабильность browser smoke при поиске раскрывающегося списка пакетов;
- сохранены минимальная область касания и подтверждение перезагрузки.
Проверки и ограничения
Backend API, PostgreSQL, Web UI, telemetry и команды OpenWrt не менялись. Android versionCode: 124.
Новый длительный прогон Netis NX31 и OpenWrt x86 для визуального Android patch не выполнялся; владелец разрешил выпуск. Исключение привязано к версии и точному fingerprint неизменного server/OpenWrt runtime. Полный CI, Security, Android emulator, signed APK и deployment acceptance остаются обязательными.
Все версии до 1.0.0 остаются тестовыми.
v0.55.3
WrtMonitor v0.55.3 - Release Reliability
Исправления по аудиту готовности. Выпуск в основном канале, включая контейнерный latest.
Исправлено
- Изменение и удаление профилей доступа распространяется на отдельных клиентов и Wi-Fi. Персональные настройки клиентов сохраняются.
- Web SSH: восстановлены динамические стили xterm, ANSI-цвета и моноширинный шрифт в обеих темах. Нормальный выход больше не отображается как потеря связи; старое соединение не меняет состояние нового.
- Начальная схема PostgreSQL зафиксирована независимо от текущих моделей. Документированы обновление и восстановление базы.
- Проверяются SSH-ключи стендов, ограничена длина входных идентификаторов, внутренние исключения не раскрываются в ответах API.
- Перед обновлением
latestпроверяются точный коммит, CI/Security, семь артефактов и метаданные образа. Контейнер продвигается по digest. - Исправлена подготовка Android SDK в CI: удалён запрос устаревшего пакета
tools. - Проверка командных идентификаторов больше не запускает динамические регулярные выражения на пользовательском вводе.
- При обрыве WebSocket закрытие PTY записывается до очистки фоновых задач, исключая зависшие сессии
connected.
Проверки и ограничения
Локально выполнены 310 backend-тестов с PostgreSQL и 93 теста агента, shell harness, полный браузерный прогон, чистые миграции и backup/restore PostgreSQL. Дополнительно добавлены проверки исключения из длительного прогона. Выпуск и продвижение требуют успешного GitHub CI, включая Android и эмулятор, контейнер и проверку развёртывания.
Новый длительный прогон 7–14 дней на Netis NX31 и OpenWrt x86 не выполнялся. Владелец явно разрешил полный выпуск без него. Это отдельное исключение для 0.55.3, а не новый сертификат и не повторное использование старого отчёта для изменённого backend. Браузерные тесты используют тестовый агент, не физический роутер. Код runtime агента не менялся, кроме номера версии.
Android versionCode: 123. Перед обновлением сервера сохраните резервную копию БД; порядок описан в docs/database-upgrades.md.
Все версии до 1.0.0 остаются тестовыми.
v0.55.2
WrtMonitor v0.55.2 - Web Terminal Contrast
Патч исправляет контраст Web SSH в светлой теме. Backend API, авторизация, telemetry и команды агента не менялись.
Исправлено
- обычный текст xterm больше не наследует тёмный цвет светлой темы страницы;
- терминал получил полную контрастную палитру для обычных и ANSI-цветов;
- палитра повторно применяется при переключении светлой и тёмной темы;
- скроллбар и системные элементы терминальной области сохраняют тёмное оформление;
- браузерный тест выполняет реальный Web SSH roundtrip в светлой теме и проверяет вычисленные цвета текста и фона.
Web SSH roundtrip и светлая тема проверены в Chromium при desktop-размере 1440x900. Проверяемая пара цветов: текст #eef4f9, фон #07101c.
Фиктивные данные и неподдерживаемые операции не добавлены. Runtime OpenWrt не менялся; аппаратное soak evidence Netis NX31 и OpenWrt x86 наследуется по совпадающему fingerprint. Android versionCode: 122.
Все версии до 1.0.0 остаются тестовыми.
v0.55.1
WrtMonitor v0.55.1 - Web Terminal Layout
Патч исправляет компоновку Web SSH после редизайна 0.55.0. Backend API, авторизация, telemetry и команды агента не менялись.
Исправлено
- удалён повторяющийся заголовок «Терминал» над карточкой Web SSH;
- desktop-карточка терминала целиком помещается в видимую область;
- на телефоне сохранена компактная рабочая область с естественной короткой прокруткой;
- добавлены браузерные проверки заголовка и размеров карточки;
- стабилизирована инициализация постраничной навигации журнала команд и поиска установленных пакетов.
Web SSH roundtrip, desktop 1440x900 и mobile 390x844 проверены в CI. Новый снимок терминала получен из того же браузерного прогона.
Фиктивные данные и неподдерживаемые операции не добавлены. Runtime OpenWrt не менялся; аппаратное soak evidence Netis NX31 и OpenWrt x86 наследуется по совпадающему fingerprint. Android versionCode: 121.
Все версии до 1.0.0 остаются тестовыми.
v0.55.0
WrtMonitor v0.55.0 - Web Control Center
WebUI системно переработан как самостоятельная современная панель управления OpenWrt. Backend API, авторизация, telemetry и команды агента не менялись.
Главное
- единая светлая и тёмная Web design system, связанная с Android;
- компактная top bar, глобальный router selector и сворачиваемая desktop sidebar;
- адаптивный drawer и одноколоночная компоновка на tablet/mobile;
- согласованные dashboard, tables, forms, statuses, dialogs и служебные экраны;
- проверка изменений и видимая отправка команды без преждевременного сообщения об успехе;
- keyboard navigation, skip link, focus-visible и reduced motion;
- локальный набор сетевых иконок без CDN и emoji;
- visual regression на шести размерах от 1920 до 390 px;
- новые Web screenshots и полный отчёт в
docs/web-redesign-0.55.0.md.
Исправлены обрезанные статусы, работа клавиатуры со скрытой навигацией, переход между desktop и mobile, обработка потери связи при проверке формы и отображение температуры на главной. Скриншоты сняты с тестовым роутером CI.
Фиктивные данные и неподдерживаемые операции не добавлены. Runtime OpenWrt не менялся; аппаратное soak evidence Netis NX31 и OpenWrt x86 наследуется по совпадающему fingerprint. Android versionCode: 120.
Все версии до 1.0.0 остаются тестовыми.
v0.54.0
WrtMonitor v0.54.0 - Android Expressive Redesign
Android-приложение системно переработано в стиле Material 3 Expressive без изменения API и команд управления роутером.
Главное
- единая светлая и тёмная дизайн-система WrtMonitor;
- новый компактный обзор состояния сети и семантические статусы;
- edge-to-edge с корректными status bar, navigation bar, safe drawing и IME;
- нижняя навигация на телефоне и Navigation Rail на планшете;
- единые loading, empty, error, offline и unsupported-состояния;
- доступные области касания не меньше 48 dp;
- исправленная навигация настроек и экрана «О приложении»;
- актуальные скриншоты Android в README.
Проверка выполнена на Android 15 emulator с живым сервером и Netis NX31. Функциональные API-контракты не менялись. Android versionCode: 119.
Все версии до 1.0.0 остаются тестовыми.
v0.53.1
WrtMonitor v0.53.1 - Wi-Fi Security Fix
Исправлено создание и редактирование гостевых и дополнительных Wi-Fi-сетей.
Исправлено
- открытую гостевую сеть можно создать без пароля;
- WPA2, WPA3 и смешанный WPA2/WPA3 передаются роутеру без принудительной замены на WPA2;
- пустой пароль сохраняет текущий секрет только у уже защищённой сети;
- при переходе с открытой сети на защищённую Web UI и Android требуют новый пароль;
- быстрое включение гостевой сети не меняет её текущую защиту;
- агент проверяет фактический запуск SSID после изменения и откатывает конфигурацию, если сеть не появилась в эфире.
Android versionCode: 118. Все версии до 1.0.0 остаются тестовыми.