Skip to content

Releases: OpenIPC/dashboard

OpenIPC Dashboard v0.2.7

Choose a tag to compare

@github-actions github-actions released this 20 Jul 02:02

OpenIPC Dashboard v0.2.7

OpenIPC Dashboard v0.2.7 delivers the P6 Web/Desktop parity milestone: a secure embedded Web companion and autonomous server mode with a responsive operator and administration interface.

Highlights

  • Added an embedded Web server and autonomous --server-only mode sharing the same cameras, users, settings and backend as the desktop application.
  • The responsive RU/EN Web interface follows the desktop operator workflow across desktop, tablet and mobile viewports.
  • Added a protected HTTP API v1, live WebSocket updates and a shared presentation layer so QML and Web expose consistent state and formatting.
  • Desktop Settings now includes a Web page with access URLs, runtime status, client/session counters, LAN binding, ports and security controls.

Monitor And Cameras

  • Added 1/4/9 layouts, camera-to-cell assignment, the device sidebar and compact collapsible camera controls for mobile screens.
  • Camera discovery, manual onboarding, editing and deletion are available from the browser.
  • Live preview uses WebRTC with low-latency H.264 passthrough, bounded H.265-to-H.264 conversion and automatic MJPEG fallback.
  • Added recording, snapshots, mute/volume, fullscreen and PTZ with visible busy and error feedback.
  • Archive supports filtering, browser playback, HTTP Range and safe downloads through opaque file IDs without exposing local paths.

Administration And Diagnostics

  • Browser-safe settings, user and permission management, password changes, session revocation and last-administrator protection are available in Web.
  • Added filtered logs, live tail, log clearing, diagnostic metrics and redacted diagnostic bundle downloads.
  • Added browser-safe configuration export/import without camera passwords or local secrets.
  • Camex, Majestic and OpenIPC Control Center use capability checks, preview/diff and confirmed safe-action workflows with server-side validation and audit events.

Security

  • Web authentication is isolated from the desktop session and uses 256-bit opaque tokens with SHA-256 session digests only.
  • Added RBAC, sliding session TTL, revocation after user security changes, CSRF/Origin validation, login rate limiting and CSP/frame/no-sniff/no-referrer headers.
  • The API never serializes camera passwords, user hashes/salts, OAuth secrets, credential-bearing RTSP URLs or arbitrary filesystem paths.
  • Mutation endpoints enforce permissions, Origin/CSRF validation, input validation, idempotency and audit logging.

UI And Reliability

  • Compacted the camera discovery dialog, expanded result space and added a draggable result-pane divider.
  • Removed the permanent blue primary state from the desktop Camera Search tile so it shares the standard hover/pressed/focus effects.
  • --server-only uses the Qt offscreen platform; Windows deployments include the required qoffscreen plugin.
  • Windows and Linux packaging now includes the GStreamer WebRTC/ICE/DTLS/SRTP runtime components.

Known Limitations

  • The server listens on localhost by default. LAN access must be explicitly enabled and protected by a trusted network, VPN or HTTPS reverse proxy.
  • WebRTC currently uses host ICE candidates for localhost/LAN/VPN; built-in STUN/TURN configuration is not available yet.
  • A general SSH terminal is intentionally excluded from Web; native window, tray and keychain integrations remain desktop-only.
  • Destructive firmware and restore operations require a backup, stable power and manual validation on compatible camera hardware.

Главное

  • Реализован встроенный Web-сервер и автономный режим --server-only, использующие те же камеры, пользователей, настройки и backend, что и desktop-приложение.
  • Web-интерфейс повторяет основной desktop workflow, поддерживает русский и английский языки и адаптируется к desktop, планшетам и телефонам.
  • Добавлены защищённый HTTP API v1, live-обновления через WebSocket и общий presentation layer, исключающий расхождение данных и форматирования между QML и Web.
  • В настройках desktop появился отдельный раздел Web с адресами доступа, состоянием сервера, счётчиками клиентов и сессий, LAN bind, портами и параметрами безопасности.

Монитор и камеры

  • Доступны раскладки 1/4/9, назначение камер в ячейки, список устройств и компактные сворачиваемые контролы камеры для мобильных экранов.
  • Реализованы поиск камер, ручное добавление, редактирование и удаление устройств непосредственно из браузера.
  • Live preview использует WebRTC: H.264 передаётся с низкой задержкой без перекодирования, для H.265 предусмотрено ограниченное преобразование в H.264, а MJPEG используется как автоматический fallback.
  • Добавлены запись, snapshot, mute/volume, fullscreen и PTZ с понятными состояниями выполнения и ошибок.
  • Архив поддерживает фильтрацию, browser playback, HTTP Range и безопасное скачивание по opaque file ID без раскрытия локальных путей.

Администрирование и диагностика

  • В Web доступны безопасные настройки приложения, управление пользователями и правами, смена паролей, отзыв активных сессий и защита последнего администратора.
  • Реализованы фильтрация и live tail логов, очистка журналов, диагностические метрики и скачивание диагностического bundle с redaction чувствительных данных.
  • Добавлены экспорт и импорт browser-safe конфигурации без передачи паролей камер и локальных секретов.
  • Camex, Majestic и OpenIPC Control Center получили capability checks, preview/diff и подтверждаемые safe-action сценарии; опасные операции остаются ограниченными серверной проверкой и аудитом.

Безопасность

  • Web-вход не меняет desktop-сессию; используются 256-bit opaque tokens, на диске/в памяти хранятся только SHA-256 digest сессий.
  • Добавлены RBAC, sliding session TTL, отзыв сессий при изменении пользователя, CSRF/Origin checks, login rate limiting и security headers CSP/frame/no-sniff/no-referrer.
  • API не сериализует пароли камер, hashes/salts пользователей, OAuth secrets, RTSP URL с credentials и произвольные filesystem paths.
  • Mutation endpoints проверяют права, Origin/CSRF, входные данные, idempotency и создают audit events.

Интерфейс и стабильность

  • Окно поиска камер стало компактнее: больше места отдано результатам, а граница списка изменяется перетаскиванием мышью.
  • Плитка «Поиск камер» в desktop sidebar больше не имеет постоянного синего выделения и использует общие hover/pressed/focus эффекты.
  • --server-only использует offscreen Qt platform; Windows deployment включает необходимый qoffscreen plugin.
  • Windows/Linux packaging дополнен GStreamer WebRTC/ICE/DTLS/SRTP runtime-компонентами.

Ограничения

  • Сервер по умолчанию слушает только localhost; доступ из LAN включается явно и должен защищаться доверенной сетью, VPN или HTTPS reverse proxy.
  • WebRTC использует host ICE candidates для localhost/LAN/VPN; встроенной настройки STUN/TURN пока нет.
  • Общий SSH terminal намеренно не переносится в браузер; native window/tray/keychain функции остаются desktop-only.
  • Destructive firmware/restore операции требуют backup, стабильного питания и ручной проверки на совместимой камере.

OpenIPC Dashboard v0.2.6.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 01:56

OpenIPC Dashboard v0.2.6.1

OpenIPC Dashboard v0.2.6.1 is a maintenance and reliability release that completes P8 polish/observability, P9 archive and recording evolution, and P10 analytics/reliability work while fixing the latest startup and navigation regressions reported after v0.2.6.

Highlights

  • Completed P8: application logging, further backend/QML decomposition, QML runtime hardening, and CI cleanup.
  • Completed P9: unified recording catalog, Archive UI v2, clip export, storage management, and recording telemetry.
  • Completed P10: custom analytics zones, reliable evidence delivery, safe recording finalization and recovery, and further component decomposition.
  • Fixed critical application startup and Camex dialog crashes.
  • Added complete keyboard navigation to the login form with Tab, Shift+Tab, and Enter.

Archive And Recording

  • Added a unified catalog for manual and analytics-triggered recordings with MP4, MKV, AVI, and MOV support.
  • Preserved legacy filename compatibility while the new millisecond-based format prevents collisions during rapid recording restarts.
  • Archive entries now expose the real path, source, size, duration, camera, and date grouping.
  • Added quick periods, an exact calendar range, All / Manual / Events filtering, and time sorting.
  • Split the archive UI into focused search, results, playback, export, and storage components.
  • Added export progress, actionable ffmpeg errors, and a shortcut to the result directory.
  • Added storage usage summaries, safe cleanup dry runs, and age/size retention policies.
  • Added application-log telemetry for manual and event recording start, stop, failure, and segment rotation.
  • Recording segment duration is configurable from 5 to 60 minutes in 5-minute steps.
  • Period and storage panels are compact and collapsible so recordings retain most of the sidebar height.

Logs, Settings, And UI

  • The Logs action now opens a real application log viewer backed by app.log, with filtering, refresh, empty state, and export.
  • Existing log tails are loaded at startup and whenever the viewer is opened.
  • Audited settings bindings so values control their intended backend parameters and survive application restart.
  • Standardized user-facing checkboxes on the MetroUI style without overlapping native indicators.
  • Added localized labels and tooltips for analytics evidence switches.
  • Replaced text archive toggles with compact calendar and menu icons.
  • Fixed LogView sizing and null-safe bindings exposed by expanded smoke coverage.

Analytics And Reliability

  • Rules now support persisted custom polygon zones with 3-8 draggable points.
  • Detection-to-zone matching is isolated in a tested component while retaining legacy zone presets.
  • Snapshot and clip delivery now has bounded exponential retries, timeouts, counters, and a visible last status.
  • Local and NAS uploads write to temporary .part files before atomic publication.
  • Export and recording finalization protect completed targets; Archive can find and safely clean stale .part, .tmp, and .previous artifacts.
  • Removed the unused legacy AnalyticsModel and extracted the zone editor and evidence upload settings into focused QML components.

Stability Fixes

  • Fixed an application startup crash introduced around analytics settings.
  • Fixed a crash when opening Camex from the sidebar.
  • Fixed invalid QML bindings and Camex modal lifecycle handling.
  • Improved initial focus and focus order for existing-user login and first-run account setup.
  • Windows QML smoke tests now launch the GUI process deterministically, capture stdout/stderr, and enforce a reliable timeout.

Главное

  • Полностью завершён P8: рабочее логирование приложения, дальнейшая декомпозиция backend/QML, QML runtime hardening и очистка CI.
  • Полностью завершён P9: единый каталог записей, обновлённый архив, экспорт клипов, контроль хранилища и телеметрия записи.
  • Полностью завершён P10: пользовательские зоны аналитики, надёжная доставка evidence, безопасное завершение и восстановление записей, дальнейшая декомпозиция крупных компонентов.
  • Исправлены критические ошибки запуска приложения и открытия Camex.
  • Улучшена навигация с клавиатуры в окне входа: Tab, Shift+Tab и Enter позволяют пройти форму без мыши.

Архив и запись

  • Добавлен единый каталог ручных и событийных записей с поддержкой MP4, MKV, AVI и MOV.
  • Сохранена совместимость со старыми именами файлов; новый формат использует миллисекунды и устойчив к быстрым повторным запускам записи.
  • Архив показывает реальный путь, источник, размер, длительность, камеру и группировку по датам.
  • Добавлены быстрые периоды, точный календарный диапазон, фильтр Все / Ручные / События и сортировка по времени.
  • Интерфейс архива разделён на самостоятельные панели поиска, результатов, воспроизведения, экспорта и хранилища.
  • Добавлены прогресс экспорта, понятные ошибки ffmpeg и быстрое открытие каталога результата.
  • Реализованы подсчёт занятого места, безопасный dry-run очистки и retention-политики по возрасту и размеру.
  • Добавлено логирование старта, остановки, ошибки и ротации ручных и событийных записей.
  • Пользователь может задавать длительность сегмента записи от 5 до 60 минут с шагом 5 минут.
  • Панели периода и хранилища сделаны компактными и сворачиваемыми, чтобы список записей занимал основную высоту sidebar.

Логи, настройки и интерфейс

  • Кнопка Логи теперь открывает реальный журнал приложения: сообщения пишутся в app.log, отображаются в LogView, фильтруются и экспортируются.
  • При открытии журнала загружается хвост существующего файла; добавлены пустое состояние и ручное обновление.
  • Проведён аудит настроек: значения связаны с backend-параметрами и корректно восстанавливаются после перезапуска.
  • Все пользовательские checkbox-компоненты приведены к единому MetroUI-стилю без наложения системного индикатора.
  • Переключатели evidence в настройках аналитики получили понятные подписи и подсказки на русском и английском языках.
  • В архиве текстовые переключатели заменены компактными иконками календаря и меню.
  • Исправлены размеры и null-safe bindings окна логов, обнаруженные расширенными smoke-тестами.

Аналитика и надёжность

  • Редактор правил поддерживает пользовательские полигональные зоны из 3-8 точек и сохраняет их вместе с правилом.
  • Совпадение детекций с зонами вынесено в отдельный тестируемый модуль с поддержкой старых пресетов зон.
  • Доставка снимков и клипов получила повторные попытки с увеличивающейся задержкой, таймауты, счётчики и видимый последний статус.
  • Локальные и NAS-копии сначала пишутся во временный .part-файл и публикуются атомарным переименованием.
  • Экспорт и запись защищены от незавершённых файлов; архив находит и безопасно очищает устаревшие .part, .tmp и .previous артефакты.
  • Удалён неиспользуемый legacy AnalyticsModel; панели зон и загрузки evidence вынесены в самостоятельные QML-компоненты.

Исправления стабильности

  • Исправлен crash при запуске приложения после обновления настроек аналитики.
  • Исправлен crash при нажатии кнопки Camex в sidebar.
  • Исправлены некорректные QML-связи и жизненный цикл модальных окон Camex.
  • Улучшена последовательность фокуса формы входа для существующего пользователя и первого запуска.
  • Windows QML smoke-тесты запускают GUI-процесс контролируемо, сохраняют stdout/stderr и корректно завершаются по таймауту.

OpenIPC Dashboard v0.2.6

Choose a tag to compare

@github-actions github-actions released this 12 Jul 08:56

OpenIPC Dashboard v0.2.6

OpenIPC Dashboard v0.2.6 is a large desktop-control release focused on OpenIPC/Majestic operations, Health Center v2, Discovery v2, analytics evidence, and a broad UI stability pass.

Highlights

  • Added Health Center v2 with scan profiles, persisted run history, detailed probe reports and actionable camera recommendations.
  • Improved camera onboarding and discovery with OpenIPC/ONVIF/RTSP probing, network-interface selection, persisted discovery sessions, credential validation and bulk add.
  • Expanded the OpenIPC / Majestic Control Center with safe action gates, firmware archive inspection, checksum/manifest validation, restore diff preview and clearer status/network/time/update/tools/endpoints pages.
  • Evolved analytics into a working modules/events/evidence center with model management, artifact checks, rules, event feed, snapshots/clips, archive browsing and JSON/CSV export.
  • Completed a broad UI polish pass across settings, health, analytics, sidebar, camera cards, tabs, dialogs and QML smoke coverage.

Added

  • CameraHealthController and CameraHealthPolicy for bounded background camera checks.
  • Health profiles: quick, deep, OpenIPC/Majestic and RTSP-only.
  • Health Center history for up to 30 completed runs stored in SQLite.
  • Detailed health evidence view with endpoint status, probe duration, firmware/Majestic versions, ports and recent messages.
  • Rich sidebar camera cards with IP address, RTSP port, temperature and online/offline/attention state.
  • Collapsible sidebar action/live-preview block so the device list can use the full sidebar height.
  • QML smoke mode: --smoke-qml, SmokeHarness.qml, qml_smoke and qml_smoke_scaled.
  • Reusable Metro controls for checkboxes, menus, sliders and window buttons.
  • OpenIPC Safe Actions panel with explicit gates and blocking reasons for risky operations.
  • Firmware manifest/checksum panel with SHA-256, sidecar checksum files, signature detection and update blocking on mismatch.
  • Majestic restore diff panel with live, reload-required, critical and secret-sensitive change grouping.
  • Analytics Modules Center v2 with module inventory, model status, size, backend, frames, detections, latency and safe cleanup of temporary artifacts.
  • Analytics Overview v2 with evidence summary, recommendations and event store/modules/rules/assignments status.
  • Analytics evidence storage for snapshots and clips, date-based archive browsing and folder shortcuts.
  • JSON/CSV export for the filtered analytics event feed.

Improved

  • Split SettingsDialog into focused update/about/OAuth/streaming/analytics/evidence/footer components.
  • Moved streaming settings into a responsive dedicated page.
  • Split GridCell.qml, AppUpdateDialog.qml and several Control Center surfaces into smaller QML components.
  • Made Settings, Health Center, Analytics and Control Center more robust across different window sizes and Windows scaling factors.
  • Separated the layout toolbar from window controls and added overflow behavior for many layouts.
  • Cleaned up Analytics and Control Center tabs so controls and fields no longer hide behind headers.
  • Health Center now has a stable header, border, spacing and camera list layout.
  • Removed the Control Center footer strip that could overlap fields and action buttons.
  • Camera discovery now reports clearer reasons: already added, credential validation, discovery evidence, profile and network confidence.
  • Analytics archive now shows saved snapshots, dates, filters, previews and quick actions.
  • Improved evidence snapshot handling and preview quality.
  • Updated README and docs around the OpenIPC-native desktop control center direction.

Fixed

  • Fixed a crash when opening Analytics while AI modules were enabled on a camera.
  • Fixed missing evidence snapshot persistence and an empty analytics archive.
  • Fixed the Settings dialog content disappearing in the modal window.
  • Fixed Health Center header overlap and missing top border.
  • Fixed overlapping controls and fields in OpenIPC Control Center.
  • Fixed IP address and temperature display in the sidebar camera card.
  • Fixed layout toolbar button drift and clipped tabs.
  • Fixed layout issues in Analytics, Settings, Camera Search, User Management and add/edit dialogs.
  • Improved disabled/loading/error states for buttons and fields during long-running operations.

Главное

  • Добавлен Health Center v2: профили проверок, история запусков, подробные probe-отчеты и рекомендации по проблемным камерам.
  • Улучшен поиск и добавление камер: OpenIPC/ONVIF/RTSP discovery, выбор сетевого интерфейса, сохранение последней сессии, проверка credentials и массовое добавление найденных устройств.
  • Расширен OpenIPC / Majestic Control Center: безопасные action gates, проверка firmware-архивов, checksum/manifest-инспекция, визуальный diff restore и более понятные вкладки status/network/time/update/tools/endpoints.
  • Развита аналитика: управление AI-модулями, проверка артефактов, правила, события, evidence-снимки/клипы, архив и экспорт JSON/CSV.
  • Проведена финальная полировка интерфейса: исправлены перекрытия, адаптивность окон, карточки камер, sidebar, вкладки, настройки и smoke-проверки QML.

Добавлено

  • CameraHealthController и CameraHealthPolicy для фоновых проверок камер с ограниченным параллелизмом.
  • Health-профили: быстрый, глубокий, OpenIPC/Majestic и RTSP-only.
  • История Health Center до 30 завершенных запусков с сохранением в SQLite.
  • Детальное окно health-доказательств: endpoint, длительность probe, версии firmware/Majestic, порты и последние сообщения.
  • Расширенные карточки камер в sidebar: IP, RTSP-порт, температура, online/offline/attention-статус.
  • Сворачивание верхнего блока sidebar с действиями и live-preview, чтобы оставить больше места списку камер.
  • QML smoke-режим --smoke-qml, SmokeHarness.qml, qml_smoke и qml_smoke_scaled для проверки UI без реальных камер.
  • Новые Metro-компоненты для checkbox/menu/slider/window buttons и переиспользуемые UI-блоки настроек.
  • Safe Actions panel для OpenIPC Control Center с явными причинами блокировки опасных операций.
  • Firmware manifest/checksum panel: SHA-256, sidecar checksum-файлы, signature-файлы и блокировка update при mismatch.
  • Majestic restore diff panel с группировкой изменений: live, reload-required, critical и secret-sensitive.
  • Analytics Modules Center v2: инвентаризация модулей, статус модели, размер, backend, кадры, детекции, задержка и очистка временных хвостов.
  • Analytics Overview v2 с summary по evidence, рекомендациями и статусом event store/modules/rules/assignments.
  • Evidence-хранилище аналитики: сохранение снимков и клипов, локальный архив по датам, открытие папок снимков/клипов.
  • Экспорт ленты событий аналитики в JSON и CSV с учетом текущих фильтров.

Улучшено

  • SettingsDialog разбит на отдельные страницы update/about/OAuth/streaming/analytics/evidence/footer.
  • Streaming-настройки вынесены в отдельную адаптивную страницу.
  • GridCell.qml, AppUpdateDialog.qml и часть Control Center разнесены на меньшие QML-компоненты.
  • Окна Settings, Health Center, Analytics и Control Center стали устойчивее к разным размерам и масштабу Windows.
  • Layout toolbar отделен от window controls и больше не уезжает при большом числе раскладок.
  • Вкладки Analytics и OpenIPC Control Center выровнены и больше не прячут кнопки/поля.
  • Окно Health Center получило корректную шапку, рамку, отступы и список камер без перекрытий.
  • Control Center больше не перекрывает поля нижней информационной плашкой.
  • Поиск камер показывает больше диагностических причин: уже добавлена, проверка credentials, discovery evidence, profile и network confidence.
  • Архив аналитики показывает сохраненные снимки, даты, фильтры, preview и быстрые действия.
  • Качество evidence-снимков улучшено за счет более аккуратного сохранения и отображения кадров.
  • README и документация обновлены под OpenIPC-native desktop control center.

Исправлено

  • Исправлен crash при открытии окна аналитики на камере с включенными AI-модулями.
  • Исправлено отсутствие сохранения evidence-снимков и пустой архив аналитики.
  • Исправлено окно настроек, где пункты могли не отображаться.
  • Исправлены перекрытия в Health Center: шапка больше не закрывает кнопки, верхняя рамка отображается корректно.
  • Исправлены перекрытия и наезды элементов в OpenIPC Control Center.
  • Исправлено отображение IP и температуры в карточке камеры sidebar.
  • Исправлены смещения кнопок layout toolbar и проблемы с обрезанием вкладок.
  • Исправлены layout-проблемы в Analytics, Settings, Camera Search, User Management и диалогах добавления/редактирования.
  • Улучшены disabled/loading/error-состояния кнопок и полей, чтобы интерфейс не выглядел сломанным во время операций.

OpenIPC Dashboard v0.2.5

Choose a tag to compare

@github-actions github-actions released this 02 Jul 02:55

OpenIPC Dashboard v0.2.5

v0.2.5 is a stable release that completes the major work started after 0.2.4 and the 0.2.5-pre.* line. OpenIPC Dashboard is now much closer to a full control center for OpenIPC cameras, Majestic, firmware tools, logs, updates and device state.
Highlights
Added a unified OpenIPC Control Center inside the Majestic/Firmware window.
Implemented real firmware read/write operations: status, network, time, logs, backup, reboot, update info and firmware upload.
Enabled Qt WebSockets in release builds for /ws/logs and /ws/upgrade.
Verified firmware upgrade on a real OpenIPC camera directly from the app via /ws/upgrade.
Improved firmware upgrade safety: SoC/flash/variant checks, archive size validation, checksum/signature display, power/network confirmation and dangerous option guards.
Added post-upgrade camera recovery tracking: status polling, Majestic API probe, RTSP main/sub probe and health summary.
Improved Majestic API integration: schema-driven settings, localized labels/hints, safe apply and rollback v2.
Added live firmware logs with WebSocket/polling fallback, filters, severity highlighting and export to file.
Added in-app application updater: GitHub Releases check, release notes popup, download progress and installer handoff.
Completed the split of MajesticControlDialog.qml into focused QML page/panel components.
Improved Dashboard UI: Metro-like sidebar, compact actions, layout toolbar, stable device list and Grid fixes.
Fixed Linux RAM reporting fallback.
OpenIPC Control Center / Firmware
Added dedicated control pages:Status;
Network;
Time;
Update;
Tools;
Logs.

Added loading/saving of network and time settings.
Added NTP sync, set time from PC and form reset actions.
Added firmware backup, reboot and update information view.
Added firmware upgrade preparation for GitHub firmware source and uploaded archive flows.
Majestic API
Settings are generated from the camera-provided schema.
Settings are grouped into clear sections: image, video/audio, events, recording, network/integrations and system.
Added RU/EN labels and hints for known Majestic fields.
Apply uses schema-safe diff and no longer sends null values.
Critical settings are clearly marked as requiring pipeline reload.
Rollback snapshot is saved before critical apply.
After apply/reload, the app starts Majestic API and RTSP health-watch.
If API or stream does not recover, the app offers rollback.
Firmware upgrade safety
Uploaded archive is validated before upload: .tgz, .tar.gz, .gz.
Archive size is checked.
Safety checklist includes SoC, flash and firmware variant.
NOR/NAND and lite/ultimate mismatch indicators are detected from archive naming where possible.
Update is blocked without stable power/network confirmation.
reset and force options require separate explicit confirmation.
After update, the app tracks camera recovery and runs additional probes.
Live logs
/ws/logs uses WebSocket mode in release builds.
If WebSockets are unavailable, polling fallback is used.
Added start/stop, pause/resume, clear, filters and log export.
Added error/warn/majestic/kernel severity highlighting.
Added OpenIPC syslog ring-buffer setting.
Application updater
The app checks GitHub Releases for new versions.
The existing “Check for updates” button in settings now uses the real update checker.
When a new version is found, the app shows a release notes dialog.
Added in-app update download with progress and cancel support.
Windows: downloads installer, starts installer handoff and removes temporary file.
Linux AppImage: downloads new AppImage, replaces current AppImage after app exit and restarts.
Updater selects only compatible assets.
UI / QML
Dashboard is now cleaner and more compact.
Sidebar was redesigned in a Metro-like style.
Layout action buttons were moved into the layout toolbar.
Fixed Grid issues after Dashboard decomposition.
Fixed device-list flickering on hover over action buttons.
Stream label format is now unified: codec, resolution, bitrate, FPS.
Completed MajesticControlDialog.qml decomposition.
New QML components pass targeted qmllint.
Linux
Fixed RAM fallback:/proc/self/status / VmRSS;
/proc/self/statm;
getrusage(RUSAGE_SELF).

This fixes cases where CPU usage was shown but RAM stayed at 0 MB.
Validation
Before publishing:
Release build — passed.
ctest — 14/14 passed.
Targeted qmllint — passed.
git diff --check — clean.
Firmware update via /ws/upgrade was verified on a real OpenIPC camera.
Important
Firmware upgrade is still a dangerous operation. Always make a backup, verify SoC/flash/model compatibility and ensure stable camera power before updating.

v0.2.5 — стабильный релиз, который завершает большую волну работ после 0.2.4 и 0.2.5-pre.*: OpenIPC Dashboard теперь становится полноценным центром управления OpenIPC-камерами, Majestic, прошивкой, логами, обновлениями и состоянием устройства.

Главное
Добавлен единый OpenIPC Control Center внутри окна Majestic/Firmware.
Реализованы настоящие firmware read/write операции: status, network, time, logs, backup, reboot, update info и firmware upload.
В release-сборках включён Qt WebSockets для /ws/logs и /ws/upgrade.
Подтверждён firmware update реальной OpenIPC-камеры прямо из приложения через /ws/upgrade.
Усилен safety-layer обновления прошивки: проверка SoC/flash/variant, размер архива, checksum/signature, подтверждение питания/сети и dangerous options.
Добавлен post-upgrade контроль возврата камеры: status polling, Majestic API probe, RTSP main/sub probe и health summary.
Улучшена интеграция Majestic API: schema-driven настройки, локализованные названия/подсказки, безопасный apply и rollback v2.
Добавлены live firmware logs с WebSocket/polling fallback, фильтрами, подсветкой severity и экспортом в файл.
Реализован in-app updater приложения: проверка GitHub Releases, release notes popup, загрузка с прогрессом и запуск установки.
Завершено дробление MajesticControlDialog.qml на отдельные QML page/panel компоненты.
Улучшен интерфейс Dashboard: Metro-like sidebar, компактные действия, layout toolbar, стабильный список устройств и исправления Grid.
Исправлен fallback отображения RAM на Linux.
OpenIPC Control Center / Firmware
Добавлены страницы управления:Status;
Network;
Time;
Update;
Tools;
Logs.

Добавлены операции загрузки/сохранения network и time настроек.
Добавлены NTP sync, установка времени с ПК и reset формы.
Добавлены firmware backup, reboot и просмотр update information.
Добавлена подготовка firmware upgrade через GitHub firmware source и uploaded archive.

Majestic API
Настройки строятся по schema конкретной камеры.
Настройки сгруппированы по понятным разделам: изображение, видео/аудио, события, запись, сеть/интеграции, система.
Добавлены RU/EN названия и подсказки для известных параметров.
Apply использует schema-safe diff и больше не отправляет null.
Критичные настройки помечаются как требующие reload pipeline.
Перед критичным apply сохраняется rollback snapshot.
После apply/reload запускается health-watch Majestic API и RTSP.
Если API или поток не восстановились, приложение предлагает rollback.
Firmware upgrade safety
Проверяется наличие и тип uploaded archive: .tgz, .tar.gz, .gz.
Проверяется размер архива.
Checklist учитывает SoC, flash и firmware variant.
Проверяются признаки NOR/NAND и lite/ultimate mismatch.
Update блокируется без подтверждения стабильного питания и сети.
Опции reset и force требуют отдельного подтверждения.
После update приложение отслеживает возврат камеры и запускает дополнительные проверки.
Live logs
/ws/logs работает через WebSocket в release-сборках.
Если WebSockets недоступны, используется polling fallback.
Добавлены start/stop, pause/resume, clear, фильтры и экспорт логов.
Добавлена подсветка error/warn/majestic/kernel.
Добавлена настройка OpenIPC syslog ring-buffer.
Application updater
Приложение проверяет новые версии в GitHub Releases.
Кнопка “Проверить обновления” в настройках подключена к реальному update-checker.
При наличии новой версии показывается окно с release notes.
Добавлена загрузка обновления прямо из приложения с прогрессом и отменой.
Windows: скачивается installer, запускается установка, временный файл удаляется.
Linux AppImage: скачивается новый AppImage, выполняется замена после выхода приложения и перезапуск.
Updater выбирает только совместимые assets и больше не цепляет старую несовместимую ветку 2.9.0.
UI / QML
Dashboard стал более аккуратным и компактным.
Sidebar переработан в Metro-like / Viewer-like стиле.
Кнопки управления раскладками перенесены в layout toolbar.
Исправлены Grid-проблемы после дробления Dashboard.
Исправлено мигание камеры в списке устройств при hover по action-кнопкам.
Подпись видеопотока приведена к единому формату: codec, resolution, bitrate, FPS.
Завершена декомпозиция MajesticControlDialog.qml.
Новые QML-компоненты проходят targeted qmllint.
Linux
Исправлен RAM fallback:/proc/self/status / VmRSS;
/proc/self/statm;
getrusage(RUSAGE_SELF).

Закрыта проблема, когда CPU отображался, а RAM оставалась 0 MB.
Проверка
Перед публикацией проверено:
Release build — успешно.
ctest — 14/14 успешно.
Targeted qmllint — успешно.
git diff --check — без ошибок.
На реальной OpenIPC-камере подтверждён firmware update через /ws/upgrade.
Важно
Firmware upgrade остаётся опасной операцией. Перед обновлением обязательно делайте backup, проверяйте SoC/flash/model и обеспечьте стабильное питание камеры.

OpenIPC Dashboard v0.2.5-pre.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Jul 00:56

OpenIPC Dashboard v0.2.5-pre.2

This is a pre-release build focused on stabilizing the large OpenIPC / Majestic Control Center update after 0.2.4 and completing the first practical in-app application updater flow.

The main goal of this pre-release is to ship GitHub Actions artifacts built with Qt WebSockets enabled and to let the application download and start installing future compatible Dashboard updates directly from the app.

Highlights

  • Enabled GitHub release builds with Qt WebSockets support.
  • Added GitHub release workflow handling for prerelease tags such as v0.2.5-pre.2.
  • Added an in-app GitHub Releases update checker.
  • Added an update notification dialog with release notes from the GitHub Release page.
  • Added in-app update download with progress, cancel support and install handoff.
  • The updater now selects only compatible Dashboard release assets for the current platform and skips legacy incompatible releases such as the old 2.9.0 line.
  • Completed the P2 split of MajesticControlDialog.qml into focused page/panel QML components.
  • Kept the main Majestic dialog as a controller layer for state, API calls, timers, connections and confirmations.
  • Fixed Linux process RAM reporting fallback so the status bar no longer stays at 0 MB when /proc/self/status parsing is unavailable.
  • Preserved the OpenIPC Control Center / Firmware workflow added after 0.2.4: status, network, time, logs, backup, reboot, update information and firmware upload.
  • Preserved firmware WebSocket upgrade preparation: GitHub firmware source flow, uploaded archive flow, progress output and reboot/polling state.

Majestic / OpenIPC Control Center

  • Majestic pages are now split into reusable components:
    • overview;
    • schema-driven settings;
    • endpoints/capabilities;
    • raw JSON;
    • metrics.
  • OpenIPC firmware pages are now split into reusable components:
    • status;
    • network;
    • time;
    • update;
    • tools;
    • live logs panel.
  • Backup/restore and rollback panels are now separate components.
  • New extracted QML components pass qmllint.

Firmware and WebSockets

  • Qt WebSockets are installed in CI/release workflows.
  • The app can expose whether WebSockets are available in the current build.
  • /ws/logs can use WebSocket mode when available, with polling fallback otherwise.
  • /ws/upgrade support is prepared for GitHub firmware and uploaded archive flows.
  • Firmware flashing is still guarded by safety checks and confirmations.

Linux fix

  • Fixed process RAM reporting on Linux:
    • primary source: /proc/self/status / VmRSS;
    • fallback: /proc/self/statm;
    • fallback: getrusage(RUSAGE_SELF).
  • This targets the issue where CPU usage was shown but RAM stayed at zero in the bottom status bar on some Linux systems.

Application updates

  • The app can periodically check OpenIPC/dashboard GitHub Releases.
  • The existing “Check for updates” button in application settings now uses the real checker.
  • When a newer version is found, the app shows a modal dialog with release notes from GitHub.
  • Users can open the release page, skip the detected version, be reminded later, or download and install the update directly from the app.
  • Download progress is shown in both the update dialog and the application settings page.
  • Windows builds download OpenIPC-Dashboard-Installer.exe, start it through a helper process, then remove the temporary installer after it exits.
  • Linux AppImage builds download OpenIPC-Dashboard-Linux.AppImage, replace the current AppImage after the app exits, remove the temporary file and restart the app.
  • Pre-release versions such as 0.2.5-pre.2 are detected and marked separately.

Validation

Local validation before publishing:

  • Release app build: passed.
  • ctest: 14/14 passed.
  • New extracted Majestic/OpenIPC QML components: qmllint passed.
  • Diff whitespace check: passed.

Known limitations

  • This is a pre-release: firmware upgrade through /ws/upgrade should be tested carefully on real cameras only after backup and with stable power/network.
  • Some firmware upgrade safety hardening is still planned for the next P1 pass: stronger archive compatibility checks, size/checksum validation where available and deeper post-upgrade health probes.
  • Some old qmllint warnings still remain in the root controller dialog and will be cleaned gradually without moving UI blocks back into the main file.

OpenIPC Dashboard v0.2.5-pre.2 — предварительный релиз для стабилизации большого обновления OpenIPC / Majestic Control Center после 0.2.4 и завершения первого практического сценария обновления приложения прямо из интерфейса.

Главная цель этой pre-release сборки — получить артефакты GitHub Actions с включённым Qt WebSockets и дать приложению возможность скачивать и запускать установку будущих совместимых обновлений Dashboard прямо из приложения.

Главное

  • В release-сборках GitHub Actions включена поддержка Qt WebSockets.
  • Release workflow теперь помечает теги вида v0.2.5-pre.2 как GitHub pre-release.
  • Добавлена проверка новых версий приложения через GitHub Releases.
  • Добавлено всплывающее окно обновления с release notes со страницы GitHub Release.
  • Добавлена загрузка обновления прямо из приложения: прогресс, отмена и передача в установщик.
  • Updater теперь выбирает только совместимые release assets под текущую платформу и пропускает старую несовместимую ветку релизов вроде 2.9.0.
  • Завершено P2-дробление MajesticControlDialog.qml на отдельные QML-страницы и панели.
  • Основной Majestic-диалог оставлен controller-слоем: состояние, API-вызовы, таймеры, connections и подтверждающие диалоги.
  • Исправлен fallback отображения RAM на Linux: нижний status bar больше не должен показывать 0 MB, если парсинг /proc/self/status недоступен.
  • Сохранён OpenIPC Control Center / Firmware workflow: status, network, time, logs, backup, reboot, update information и firmware upload.
  • Сохранена подготовка WebSocket firmware upgrade: GitHub firmware source flow, uploaded archive flow, progress output и состояние reboot/polling.

Majestic / OpenIPC Control Center

  • Majestic UI вынесен в отдельные компоненты:
    • overview;
    • schema-driven settings;
    • endpoints/capabilities;
    • raw JSON;
    • metrics.
  • OpenIPC firmware UI вынесен в отдельные компоненты:
    • status;
    • network;
    • time;
    • update;
    • tools;
    • live logs panel.
  • Backup/restore и rollback вынесены в отдельные панели.
  • Новые вынесенные QML-компоненты проходят qmllint.

Firmware и WebSockets

  • CI/release workflows устанавливают Qt WebSockets.
  • Приложение умеет показывать, доступна ли WebSocket-сборка.
  • /ws/logs использует WebSocket-режим, если он доступен, и polling fallback, если WebSockets отсутствуют.
  • /ws/upgrade подготовлен для GitHub firmware flow и uploaded archive flow.
  • Firmware flashing остаётся под safety checks и подтверждениями.

Исправление Linux RAM

  • Исправлено определение RAM процесса на Linux:
    • основной источник: /proc/self/status / VmRSS;
    • fallback: /proc/self/statm;
    • fallback: getrusage(RUSAGE_SELF).
  • Это закрывает проблему, когда CPU отображался, а RAM в нижнем status bar оставалась нулевой.

Обновления приложения

  • Приложение периодически проверяет релизы OpenIPC/dashboard на GitHub.
  • Уже существующая кнопка “Проверить обновления” в настройках теперь подключена к настоящей проверке.
  • При обнаружении новой версии показывается модальное окно с release notes из GitHub Release.
  • Пользователь может открыть страницу релиза, пропустить найденную версию, отложить напоминание или скачать и установить обновление прямо из приложения.
  • Прогресс загрузки отображается и в окне обновления, и на странице настроек приложения.
  • Windows-сборки скачивают OpenIPC-Dashboard-Installer.exe, запускают его через helper-процесс и удаляют временный установщик после завершения.
  • Linux AppImage-сборки скачивают OpenIPC-Dashboard-Linux.AppImage, заменяют текущий AppImage после выхода приложения, удаляют временный файл и перезапускают приложение.
  • Pre-release версии вроде 0.2.5-pre.2 определяются и помечаются отдельно.

Проверка

Локальная проверка перед публикацией:

  • Release-сборка приложения: успешно.
  • ctest: 14/14 успешно.
  • Новые вынесенные Majestic/OpenIPC QML-компоненты: qmllint успешно.
  • Проверка diff на пробелы/конфликты: успешно.

Известные ограничения

  • Это предварительный релиз: firmware upgrade через /ws/upgrade нужно тестировать осторожно, только после backup и при стабильном питании/сети.
  • Часть усиления firmware upgrade safety layer остаётся на следующий P1-проход: строгая совместимость архива, размер/checksum где доступны и более глубокие health-probes после прошивки.
  • В корневом controller-диалоге ещё остаются старые предупреждения qmllint; они будут чиститься постепенно, без возврата UI-блоков обратно в главный файл.

OpenIPC Dashboard v0.2.5-pre.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jul 23:44

OpenIPC Dashboard v0.2.5-pre.1

This is a pre-release build focused on stabilizing the large OpenIPC / Majestic Control Center update after 0.2.4.

The main goal of this pre-release is to ship GitHub Actions artifacts built with Qt WebSockets enabled, so /ws/logs and the prepared /ws/upgrade firmware flow can be tested on real OpenIPC cameras.

Highlights

  • Enabled GitHub release builds with Qt WebSockets support.
  • Added GitHub release workflow handling for prerelease tags such as v0.2.5-pre.1.
  • Added an in-app GitHub Releases update checker.
  • Added an update notification dialog with release notes from the GitHub Release page.
  • Completed the P2 split of MajesticControlDialog.qml into focused page/panel QML components.
  • Kept the main Majestic dialog as a controller layer for state, API calls, timers, connections and confirmations.
  • Fixed Linux process RAM reporting fallback so the status bar no longer stays at 0 MB when /proc/self/status parsing is unavailable.
  • Preserved the OpenIPC Control Center / Firmware workflow added after 0.2.4: status, network, time, logs, backup, reboot, update information and firmware upload.
  • Preserved firmware WebSocket upgrade preparation: GitHub firmware source flow, uploaded archive flow, progress output and reboot/polling state.

Majestic / OpenIPC Control Center

  • Majestic pages are now split into reusable components:
    • overview;
    • schema-driven settings;
    • endpoints/capabilities;
    • raw JSON;
    • metrics.
  • OpenIPC firmware pages are now split into reusable components:
    • status;
    • network;
    • time;
    • update;
    • tools;
    • live logs panel.
  • Backup/restore and rollback panels are now separate components.
  • New extracted QML components pass qmllint.

Firmware and WebSockets

  • Qt WebSockets are installed in CI/release workflows.
  • The app can expose whether WebSockets are available in the current build.
  • /ws/logs can use WebSocket mode when available, with polling fallback otherwise.
  • /ws/upgrade support is prepared for GitHub firmware and uploaded archive flows.
  • Firmware flashing is still guarded by safety checks and confirmations.

Linux fix

  • Fixed process RAM reporting on Linux:
    • primary source: /proc/self/status / VmRSS;
    • fallback: /proc/self/statm;
    • fallback: getrusage(RUSAGE_SELF).
  • This targets the issue where CPU usage was shown but RAM stayed at zero in the bottom status bar on some Linux systems.

Application updates

  • The app can periodically check OpenIPC/dashboard GitHub Releases.
  • The existing “Check for updates” button in application settings now uses the real checker.
  • When a newer version is found, the app shows a modal dialog with release notes from GitHub.
  • Users can open the release page, skip the detected version, or be reminded later.
  • Pre-release versions such as 0.2.5-pre.1 are detected and marked separately.

Validation

Local validation before publishing:

  • Release app build: passed.
  • ctest: 13/13 passed.
  • New extracted Majestic/OpenIPC QML components: qmllint passed.
  • Diff whitespace check: passed.

Known limitations

  • This is a pre-release: firmware upgrade through /ws/upgrade should be tested carefully on real cameras only after backup and with stable power/network.
  • Some firmware upgrade safety hardening is still planned for the next P1 pass: stronger archive compatibility checks, size/checksum validation where available and deeper post-upgrade health probes.
  • Some old qmllint warnings still remain in the root controller dialog and will be cleaned gradually without moving UI blocks back into the main file.

OpenIPC Dashboard v0.2.5-pre.1 — предварительный релиз для стабилизации большого обновления OpenIPC / Majestic Control Center после 0.2.4.

Главная цель этой pre-release сборки — получить артефакты GitHub Actions с включённым Qt WebSockets, чтобы можно было проверить /ws/logs и подготовленный /ws/upgrade firmware flow на реальных OpenIPC-камерах.

Главное

  • В release-сборках GitHub Actions включена поддержка Qt WebSockets.
  • Release workflow теперь помечает теги вида v0.2.5-pre.1 как GitHub pre-release.
  • Добавлена проверка новых версий приложения через GitHub Releases.
  • Добавлено всплывающее окно обновления с release notes со страницы GitHub Release.
  • Завершено P2-дробление MajesticControlDialog.qml на отдельные QML-страницы и панели.
  • Основной Majestic-диалог оставлен controller-слоем: состояние, API-вызовы, таймеры, connections и подтверждающие диалоги.
  • Исправлен fallback отображения RAM на Linux: нижний status bar больше не должен показывать 0 MB, если парсинг /proc/self/status недоступен.
  • Сохранён OpenIPC Control Center / Firmware workflow: status, network, time, logs, backup, reboot, update information и firmware upload.
  • Сохранена подготовка WebSocket firmware upgrade: GitHub firmware source flow, uploaded archive flow, progress output и состояние reboot/polling.

Majestic / OpenIPC Control Center

  • Majestic UI вынесен в отдельные компоненты:
    • overview;
    • schema-driven settings;
    • endpoints/capabilities;
    • raw JSON;
    • metrics.
  • OpenIPC firmware UI вынесен в отдельные компоненты:
    • status;
    • network;
    • time;
    • update;
    • tools;
    • live logs panel.
  • Backup/restore и rollback вынесены в отдельные панели.
  • Новые вынесенные QML-компоненты проходят qmllint.

Firmware и WebSockets

  • CI/release workflows устанавливают Qt WebSockets.
  • Приложение умеет показывать, доступна ли WebSocket-сборка.
  • /ws/logs использует WebSocket-режим, если он доступен, и polling fallback, если WebSockets отсутствуют.
  • /ws/upgrade подготовлен для GitHub firmware flow и uploaded archive flow.
  • Firmware flashing остаётся под safety checks и подтверждениями.

Исправление Linux RAM

  • Исправлено определение RAM процесса на Linux:
    • основной источник: /proc/self/status / VmRSS;
    • fallback: /proc/self/statm;
    • fallback: getrusage(RUSAGE_SELF).
  • Это закрывает проблему, когда CPU отображался, а RAM в нижнем status bar оставалась нулевой.

Обновления приложения

  • Приложение периодически проверяет релизы OpenIPC/dashboard на GitHub.
  • Уже существующая кнопка “Проверить обновления” в настройках теперь подключена к настоящей проверке.
  • При обнаружении новой версии показывается модальное окно с release notes из GitHub Release.
  • Пользователь может открыть страницу релиза, пропустить найденную версию или отложить напоминание.
  • Pre-release версии вроде 0.2.5-pre.1 определяются и помечаются отдельно.

Проверка

Локальная проверка перед публикацией:

  • Release-сборка приложения: успешно.
  • ctest: 13/13 успешно.
  • Новые вынесенные Majestic/OpenIPC QML-компоненты: qmllint успешно.
  • Проверка diff на пробелы/конфликты: успешно.

Известные ограничения

  • Это предварительный релиз: firmware upgrade через /ws/upgrade нужно тестировать осторожно, только после backup и при стабильном питании/сети.
  • Часть усиления firmware upgrade safety layer остаётся на следующий P1-проход: строгая совместимость архива, размер/checksum где доступны и более глубокие health-probes после прошивки.
  • В корневом controller-диалоге ещё остаются старые предупреждения qmllint; они будут чиститься постепенно, без возврата UI-блоков обратно в главный файл.

OpenIPC Dashboard v0.2.4

Choose a tag to compare

@github-actions github-actions released this 29 Jun 13:06

OpenIPC Dashboard v0.2.4

OpenIPC Dashboard 0.2.4 is a major OpenIPC-focused release. It turns the app from a viewer-oriented dashboard into a much more complete camera control center: stronger discovery, Majestic API integration, firmware operations, better stream health handling, and a more modular UI foundation.

Highlights

  • Added a native OpenIPC / Majestic Control Center inspired by the camera WebUI.
  • Added real OpenIPC firmware read/write operations for status, network, time, logs, backup, reboot, update info, and firmware archive upload.
  • Reworked Majestic settings into schema-driven sections with localized labels, hints, safe diff review, and reload/restart indicators.
  • Improved OpenIPC camera discovery with mDNS, ONVIF WS-Discovery, Majestic HTTP detection, RTSP probing, progress reporting, cancellation, and cross-protocol deduplication.
  • Refactored large Dashboard QML areas into reusable components for grid, sidebar, top bar, status bar, dialogs, buttons, badges, and empty states.
  • Improved camera status consistency between the video grid, sidebar, and health UI.
  • Added stream health, reconnect, quality, and session policy layers with unit tests.
  • Fixed SD/HD stream switching for preview/fullscreen OpenIPC streams.
  • Added GitHub Actions CI coverage and expanded the test suite.

OpenIPC / Majestic Control Center

  • Reads Majestic configuration from /api/v1/config.json.
  • Builds settings UI from /api/v1/config.schema.json.
  • Preserves unknown camera-specific fields instead of rewriting the whole config blindly.
  • Applies only a minimal validated patch through /api/v1/config.
  • Fixes the previous null patch issue when saving changed Majestic settings.
  • Adds live ISP controls for image tuning.
  • Adds raw JSON inspection.
  • Adds Prometheus metrics viewing.
  • Adds endpoint/capability overview.
  • Adds JPEG snapshot and backup helpers.
  • Adds clear confirmation flow before applying changes.
  • Redacts sensitive values in review flows where possible.

Firmware operations

The app now talks to real OpenIPC WebUI/CGI endpoints for firmware-level control:

  • Status / pulse data.
  • Network read/write.
  • DHCP/static network configuration.
  • Wi-Fi scan.
  • Network reset.
  • Timezone and NTP server configuration.
  • NTP sync and setting camera time from the PC.
  • Syslog, Majestic log, and dmesg snapshots.
  • Firmware backup download.
  • Reboot with explicit confirmation.
  • Firmware update information.
  • Firmware archive upload to the camera.

Final GitHub firmware upgrade through /ws/upgrade is intentionally guarded for now because the bundled Qt tree does not include Qt WebSockets yet. The UI keeps a safe fallback to the camera WebUI for that final flashing step.

Camera discovery

  • Added OpenIPC mDNS discovery.
  • Added Majestic HTTP fingerprinting.
  • Added RTSP reachability probing.
  • Improved ONVIF WS-Discovery probing.
  • Added fast and deep scan modes.
  • Added progress percentage during network scan.
  • Automatically hides the progress bar after scan completion.
  • Merges duplicate evidence by IP address.
  • Shows detected ports, protocol hints, and confidence.

Dashboard and UI

  • Split large Dashboard pieces into reusable QML components.
  • Added modular sidebar, top bar, status bar, grid panel, layout toolbar, toast, and empty state components.
  • Added reusable Majestic controls.
  • Improved layout grid behavior.
  • Improved camera cell overlays and stream badges.
  • Standardized stream overlay format: codec, resolution, bitrate, FPS.
  • Improved context actions for OpenIPC/Majestic cameras.
  • Expanded Russian and English localization for new controls.

Stream health and camera status

  • Added CameraStatusPolicy.
  • Added ReconnectPolicy.
  • Added StreamHealthPolicy.
  • Added StreamQualityPolicy.
  • Added StreamSessionPolicy.
  • Offline and stream failure states now take priority over stale optimistic online states.
  • Fixed sidebar/grid status mismatch.
  • Improved reconnect behavior and stream diagnostics.

Tests and quality

Added or expanded unit tests for:

  • camera onboarding parsing;
  • camera status policy;
  • Majestic API client;
  • OpenIPC firmware client;
  • network discovery;
  • stream health;
  • stream quality;
  • stream session logic;
  • reconnect policy;
  • state store;
  • model artifact verification.

Local validation before release:

  • Release app build: passed.
  • ctest: 13/13 passed.
  • Firmware client tests: passed.
  • Diff whitespace check: passed.

Known limitations

  • Full firmware flashing through /ws/upgrade requires Qt WebSockets and is not enabled in this build.
  • Live firmware logs over WebSocket are not implemented yet; log snapshots are available.
  • Some deeper firmware administration features will continue to expand in future releases.

OpenIPC Dashboard 0.2.4 — крупный релиз, сфокусированный на OpenIPC-камерах, Majestic API, firmware-операциях, поиске камер, стабильности видеопотоков и приведении интерфейса к более цельной архитектуре.

Главное

OpenIPC / Majestic Control Center

Добавлено полноценное окно управления OpenIPC-камерой в стиле WebUI камеры:

  • чтение статуса камеры;
  • управление Majestic-настройками через schema-driven UI;
  • поддержка Live ISP-настроек;
  • просмотр raw JSON конфигурации;
  • просмотр Prometheus metrics;
  • страница endpoint/capabilities;
  • безопасное применение изменений через diff-patch;
  • отдельное отображение настроек, требующих reload/restart;
  • исправлено применение настроек без null-значений в patch;
  • добавлены русская и английская локализации для новых пунктов UI.

Firmware/OpenIPC операции

Начата настоящая интеграция firmware WebUI операций прямо из приложения:

  • Status / pulse данные;
  • Network: чтение, сохранение, reset, DHCP/static, Wi‑Fi scan;
  • Time: timezone, NTP-серверы, sync, установка времени с ПК;
  • Logs: syslog, majestic log, dmesg;
  • Backup: сохранение firmware backup;
  • Reboot камеры;
  • Update info;
  • Upload firmware archive на камеру.

Примечание: финальный GitHub upgrade через /ws/upgrade пока требует Qt WebSockets, поэтому этот шаг защищён и не выполняется “вслепую”. Для него оставлен безопасный переход в WebUI камеры.

Поиск камер

Сильно улучшен поиск устройств в сети:

  • добавлено обнаружение OpenIPC через mDNS;
  • добавлен Majestic HTTP fingerprint;
  • добавлен RTSP probe;
  • расширен ONVIF / WS-Discovery;
  • результаты разных протоколов объединяются по IP;
  • добавлены confidence/protocol/ports признаки;
  • улучшен deep scan;
  • прогресс поиска теперь заполняется постепенно и показывает проценты;
  • после завершения поиска progress bar скрывается;
  • улучшено отображение найденных OpenIPC-камер.

Dashboard и интерфейс

Продолжена большая чистка Dashboard:

  • DashboardView.qml частично разобран на отдельные компоненты;
  • добавлены переиспользуемые Dashboard UI-компоненты;
  • вынесены sidebar, topbar, statusbar, grid panel, toolbar, toast, empty state;
  • добавлен редактор раскладок;
  • исправлена сетка раскладки;
  • улучшено отображение свободных ячеек;
  • унифицированы кнопки, бейджи, карточки и статусы;
  • добавлены отдельные компоненты для Majestic UI;
  • улучшены контекстные действия камеры.

Статусы камер и stream health

Статусы камеры теперь считаются более строго и единообразно:

  • статус в grid и sidebar теперь синхронизирован;
  • offline/ошибка потока имеет приоритет над устаревшим optimistic online;
  • добавлен единый слой CameraStatusPolicy;
  • добавлены stream health/session/quality/reconnect policy;
  • улучшено переподключение потоков;
  • исправлена работа SD/HD preview/fullscreen потоков;
  • подпись видеопотока приведена к единому виду: codec, resolution, bitrate, FPS.

Health / диагностика

Добавлены основы Health Center:

  • единые статусные бейджи;
  • health dialog;
  • отображение причин offline/attention;
  • подготовлена архитектура для дальнейшей диагностики камер.

Analytics и модели

  • добавлена проверка model artifacts;
  • улучшены проверки backend-логики аналитики;
  • расширены unit-тесты для новых backend policy-слоёв.

Безопасность и надёжность

  • добавлены подтверждения для опасных операций;
  • backup сохраняется атомарно;
  • firmware archive проверяется перед upload;
  • сетевые операции имеют bounded timeout;
  • sensitive-поля редактируются аккуратно;
  • улучшена обработка HTTP/auth ошибок.

Тесты и CI

Добавлены новые unit-тесты:

  • CameraOnboardingParserTests;
  • CameraStatusPolicyTests;
  • MajesticClientTests;
  • NetworkDiscoveryServiceTests;
  • OpenIpcFirmwareClientTests;
  • ReconnectPolicyTests;
  • StateStoreTests;
  • StreamHealthPolicyTests;
  • StreamQualityPolicyTests;
  • StreamSessionPolicyTests;
  • ModelArtifactVerifierTests.

Также добавлен GitHub Actions CI workflow.

Проверено локально:

  • Release-сборка приложения проходит успешно;
  • ctest проходит полностью;
  • 13/13 unit-тестов зелёные.

Известные ограничения

  • Полный GitHub firmware upgrade через WebSocket /ws/upgrade пока не включён, так как текущая сборка Qt не содержит Qt WebSockets.
  • Live firmware logs через WebSocket пока не реализованы; доступны snapshot-логи через syslog/majestic/dmesg.
  • Некоторые глубокие административные операции OpenIPC firmware будут расширяться в следующих релизах.

OpenIPC Dashboard v0.2.3

Choose a tag to compare

@github-actions github-actions released this 19 Jun 11:41

OpenIPC Dashboard v0.2.3

OpenIPC Dashboard 0.2.3 is a major usability and analytics update. It makes camera monitoring more reliable, turns AI analytics into a manageable workflow, adds Camex remote-access tooling, and polishes the application across Windows and Linux.

AI analytics

  • Reworked the Analytics workspace into clear Overview, Cameras, Modules, Events, Rules, Archive, and Diagnostics sections.
  • Added per-camera AI module assignment with visible readiness and activity states.
  • Added full model lifecycle controls: installation, removal, clean reload, model folder access, backend status, file size, and diagnostics.
  • Added real model download progress based on transferred bytes, plus HTTP timeouts, retries, redirect handling, and reliable GitHub downloads.
  • Improved analytics performance with frame throttling, configurable target FPS, parallel job limits, and detailed runtime telemetry.
  • Added persistent SQLite event storage, filtering, event details, evidence snapshots/clips, and clearer empty states.
  • Stabilized the analytics rule editor and fixed a crash when creating rules.
  • Improved rule configuration for triggers, confidence, duration, zones, snapshots, clips, and notifications.

Camera monitoring

  • Fixed camera online/offline status so an active video stream is reflected correctly in the device list.
  • Improved camera discovery and moved network search into the main sidebar controls.
  • Added clearer onboarding for an empty layout, with close and “do not show again” controls.
  • Improved camera cells, stream overlays, device counters, and sidebar state persistence.

Camex integration

  • Added a dedicated Camex workspace for configuring remote access to OpenIPC cameras through UDP/TCP tunnels.
  • Added guided server and camera setup, generated commands and configuration, connection checks, and links to Camex releases and documentation.
  • Styled and localized Camex to match the rest of the application.

Interface and localization

  • Reworked analytics, settings, layout editing, archive, dialogs, and sidebar controls for a consistent dark interface.
  • Improved responsive window resizing and restored window/sidebar state across launches.
  • Fixed live language switching and expanded Russian and English localization across newly added and existing screens.
  • Improved dropdown indicators, text contrast, scrollbars, spacing, control sizing, and empty states.

Authentication and system fixes

  • Added remembered credentials and automatic sign-in when “Remember me” is enabled.
  • Improved password storage and compatibility with existing user data.
  • Fixed Linux absolute-path handling for recordings, snapshots, and analytics evidence.
  • Improved CPU and memory reporting on Linux.
  • Added regression tests for authentication and cross-platform path handling.

OpenIPC Dashboard 0.2.3 — крупное обновление удобства и видеоаналитики. Мониторинг камер стал надёжнее, работа с ИИ-модулями превратилась в понятный управляемый процесс, появилась интеграция Camex, а интерфейс Windows- и Linux-версий получил комплексную доработку.

ИИ-аналитика

  • Страница аналитики переработана и разделена на понятные вкладки: «Обзор», «Камеры», «Модули», «События», «Правила», «Архив» и «Диагностика».
  • Добавлено назначение ИИ-модулей отдельным камерам с отображением готовности и активности.
  • Реализовано полное управление моделями: установка, удаление, чистая перезагрузка, открытие папки моделей, статус backend, размер файла и диагностика.
  • Добавлен реальный прогресс загрузки моделей по переданным байтам, тайм-ауты, повторные попытки, обработка перенаправлений и стабильное скачивание с GitHub.
  • Улучшена производительность аналитики: ограничение частоты кадров, настройка целевого FPS, лимит параллельных задач и подробная телеметрия.
  • Добавлено постоянное SQLite-хранилище событий, фильтрация, подробности события, снимки и клипы-доказательства, а также понятные пустые состояния.
  • Исправлено падение приложения при добавлении правила и стабилизирован редактор правил.
  • Улучшена настройка триггеров, порога уверенности, длительности, зон, снимков, клипов и уведомлений.

Мониторинг камер

  • Исправлен статус камер: активный видеопоток теперь корректно отображается как состояние «Онлайн» в списке устройств.
  • Улучшен поиск камер в сети, кнопка поиска перенесена в основную панель управления.
  • Добавлена понятная подсказка для пустой раскладки с закрытием и настройкой «Не показывать при следующем запуске».
  • Улучшены ячейки камер, информационные оверлеи, счётчики устройств и сохранение состояния сайдбара.

Интеграция Camex

  • Добавлен отдельный раздел Camex для настройки удалённого доступа к OpenIPC-камерам через UDP/TCP-туннели.
  • Реализованы пошаговая настройка сервера и камеры, генерация команд и конфигурации, проверка соединения и ссылки на релизы и документацию Camex.
  • Интерфейс Camex приведён к общему стилю приложения и полностью локализован.

Интерфейс и локализация

  • Переработаны аналитика, настройки, редактор раскладок, архив, диалоги и элементы сайдбара в едином тёмном стиле.
  • Улучшено адаптивное изменение размеров окна и восстановление состояния окна и сайдбара между запусками.
  • Исправлено переключение языка без перезапуска, расширены русская и английская локализации новых и существующих экранов.
  • Улучшены индикаторы выпадающих списков, контраст текста, полосы прокрутки, отступы, размеры элементов и пустые состояния.

Авторизация и системные исправления

  • Добавлено запоминание учётных данных и автоматический вход при включённой настройке «Запомнить меня».
  • Улучшено хранение паролей и совместимость с существующими пользовательскими данными.
  • Исправлена обработка абсолютных Linux-путей для записей, снимков и материалов аналитики.
  • Улучшено отображение загрузки процессора и оперативной памяти в Linux.
  • Добавлены регрессионные тесты авторизации и кроссплатформенной обработки путей.

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 15 Jun 02:01

What’s New

  • Reworked the analytics window into a clearer control center.
  • Added dedicated analytics sections: Overview, Cameras, AI Modules, Events, Rules, Archive, and Diagnostics.
  • Added per-camera AI module assignment with persistent settings.
  • Added analytics event storage, filtering, diagnostics, and telemetry.
  • Improved real camera online/offline status detection from live video frames.
  • Added a cleaner first-run camera prompt with close and “Do not show again” behavior.
  • Moved network camera search into the main sidebar controls.
  • Improved analytics archive navigation for faces, objects, and license plates.

Analytics

  • Added analytics readiness overview.
  • Added camera-level AI module assignment.
  • Added AI module status, progress, errors, counters, and latency.
  • Added searchable/filterable analytics event feed.
  • Added SQLite-backed analytics event storage.
  • Added diagnostics for event buffer, upload queue, event store path, and camera telemetry.
  • Added rule management UI for analytics modules.

Stability And Build

  • Improved camera online/offline synchronization between video grid and device list.
  • Improved user management and first admin setup flow.
  • Added automated user manager tests.
  • Added bundled libssh, qtkeychain, and openipc-askpass support.
  • Fixed compatibility with newer CMake versions.
  • Fixed Windows CI OpenSSL discovery.
  • Fixed Windows CI GStreamer include path detection.

Validation

  • Windows local build passed.
  • user_manager_tests passed.
  • ctest passed with 100% tests passed.

Главное

Этот релиз делает аналитику понятнее, удобнее и ближе к реальному рабочему сценарию видеонаблюдения. Также исправлены важные проблемы со статусами камер, управлением пользователями, SSH/runtime-зависимостями и сборкой релизов через GitHub Actions.

Что нового

  • Переработано окно аналитики в более понятный центр управления.
  • Добавлены отдельные разделы: Обзор, Камеры, AI-модули, События, Правила, Архив и Диагностика.
  • Добавлено назначение AI-модулей на конкретные камеры с сохранением настроек.
  • Добавлены хранение, фильтрация, диагностика и телеметрия событий аналитики.
  • Улучшено определение реального статуса камеры Online/Offline по поступлению видеокадров.
  • Добавлена улучшенная подсказка первого запуска с кнопкой закрытия и опцией «Не показывать снова».
  • Поиск камер в сети перенесен в основной сайдбар управления.
  • Улучшена навигация по архиву аналитики для лиц, объектов и номеров.

Аналитика

  • Добавлен обзор готовности аналитики.
  • Добавлено управление AI-модулями на уровне каждой камеры.
  • Добавены статусы AI-модулей, прогресс, ошибки, счетчики и задержка обработки.
  • Добавлена лента событий с поиском и фильтрацией.
  • Добавлено SQLite-хранилище событий аналитики.
  • Добавлена диагностика буфера событий, очереди выгрузки, пути хранилища и телеметрии камер.
  • Добавлен интерфейс управления правилами аналитики.

Стабильность и сборка

  • Улучшена синхронизация статуса Online/Offline между видеосеткой и списком устройств.
  • Улучшен сценарий создания первого администратора и управление пользователями.
  • Добавлены автоматические тесты для User Manager.
  • Добавлена поддержка bundled libssh, qtkeychain и openipc-askpass.
  • Исправлена совместимость с новыми версиями CMake.
  • Исправлен поиск OpenSSL в Windows CI.
  • Исправлен путь к GStreamer headers в Windows CI.

Проверка

  • Локальная Windows-сборка прошла успешно.
  • user_manager_tests прошел успешно.
  • ctest прошел успешно: 100% tests passed.

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 05 Feb 23:24

User Interface & Experience:

Console Window Hidden: The application now launches without the debug console window on Windows.
About Dialog Updated:
Displays the correct application version (0.2.1).
Added Author information
Automatic build year update (currently 2026).
Build System & CI:

Robust Metadata Handling: Switched to config.h generation for passing build information (Version, Author, Year) to C++, resolving compilation issues with spaces.
CI/CD Fixes: Updated GitHub Actions workflow variable handling to ensure the correct version number is passed during automated builds.
CMake: Default project version bumped to 0.2.1.


Интерфейс и взаимодействие:

Скрыто окно консоли: Приложение теперь запускается без отладочного терминала в Windows.
Обновлено окно "О программе":
Отображается корректная версия приложения (0.2.1).
Добавлена информация об авторе
Автоматическое обновление года сборки (актуальный: 2026).
Система сборки и CI:

Улучшенная обработка метаданных: Реализована генерация config.h для передачи информации о сборке в (Версия, Автор, Год) в C++, что исправило ошибки компиляции из-за пробелов.
Исправления CI/CD: Скорректирован GitHub Actions workflow для правильной передачи номера версии при автоматической сборке.
CMake: Базовая версия проекта обновлена до 0.2.1.