Q3 2025 Release Notes

July - September 2025


Highlights

This quarter represents a major platform modernisation effort with 148 commits across 2,500+ files. Key achievements:

  • Multi-timeline live view - view cameras across different timelines in a single perspective
  • Live View total revamp - LHLS video streaming, drag-and-drop layouts, ~100x faster rendering
  • Unified resource pages - combined edit/show pages with clearer layouts and inline editing
  • Revamped user management - improved UI/UX, copy permissions, clearer notifications and zone access
  • Real-time table updates - TetherBoxes, cameras, sites and all resources update row-by-row live
  • Complete migration from Slim to ERB and CoffeeScript to ES2024

User-Visible Changes

Live View Player System Rewrite ⭐

Complete video/image streaming architecture overhaul with ~100x faster rendering

The live view system was completely rebuilt from the ground up. Previously image-only, it now supports Low-Latency HLS (LHLS) video streaming with automatic fallback to images on poor connections. The entire interface renders without page refreshes, making navigation instant.

For Facility Managers: - Video streaming with LHLS support (previously image-only) - Live latency display showing actual stream delay - Drag-and-drop camera layouts for easy arrangement - ~100x faster rendering with no page refreshes - Smoother video playback with adaptive latency profiles - Better offline handling showing connection issues in real-time - Touch support for pan/zoom on mobile devices - Idle timeout now works correctly - Fullscreen improvements with proper pause/resume behaviour

For Integrators: - PTZ responsiveness with ultra-low latency mode (~1s) for PTZ control - Network flexibility with automatic fallback to image mode on poor connections - Four HLS profiles: Ultra-Low Latency, Low Latency, Balanced (default), Slow Internet - Debug visibility with performance metrics in console - Preset management for quick switching between camera layouts

Multi-Timeline Live View ⭐

View cameras from different timelines in a single perspective

Previously, live view was restricted to cameras within a single timeline. This meant integrators had to plan timeline assignments carefully upfront, or face factory resets to reorganise. Now you can create perspectives that combine cameras across any timelines you have access to—ideal for control rooms monitoring multiple customer sites or regional overviews.

Drive Health Monitoring ⭐

Comprehensive S.M.A.R.T data integration

For Facility Managers: - At-a-glance drive health visibility - Proactive storage failure warnings - Drive temperature monitoring - Clear lifespan indicators for replacement planning

For Integrators: - Detailed S.M.A.R.T data access via API - Support for NVMe, ATA/SATA, HDD, SSD, SD cards - TBW (Terabytes Written) calculations - Predictive failure indicators

Wireless Device Management (New)

First-class support for wireless network devices

  • Filter by product name
  • Live signal quality charts (RSSI, channel, RX/TX rates)
  • Historical performance data
  • Proactive alerts for degraded connections

Matrix RS232 Tab (New)

Matrix display controller support

  • RS232 command configuration
  • Display zone mapping
  • Preset switching controls
  • Integration for control room displays

Unified Resource Pages ⭐

Combined edit and show pages with clearer layouts

Previously, TetherBoxes, cameras, sites, and other resources had separate "show" and "edit" pages, making it unclear which had more information. These are now unified into single pages with a clearer layout and inline editing—everything in one place.

  • TetherBoxes, cameras, sites, devices, zones, brands, and companies redesigned
  • All fields editable inline without navigating away
  • Consistent card-based layouts across all resources
  • Real-time updates via ActionCable

User Management Revamp ⭐

Greatly improved UI/UX for managing users and permissions

  • Copy permissions from existing users for faster setup
  • Clearer permissions interface with better visual organisation
  • Revamped zone access selection for easier multi-site assignment
  • Improved notifications settings with clearer event type selection
  • Modal-based editing workflow
  • Inline permissions editing via Turbo Streams

Real-Time Table Updates ⭐

All resource tables now update row-by-row in real-time

No more manual refreshing to see the latest status. TetherBoxes, cameras, sites, zones, devices, and users tables now update automatically via ActionCable. When a TetherBox goes offline, a camera changes state, or a user is modified—the row updates instantly without disrupting your workflow.

  • Individual row updates (not full page refresh)
  • Works across all resource index pages
  • Show pages also update in real-time
  • No interruption to tooltips or inline edits in progress

Open resources in modals for faster navigation

  • Cameras, TetherBoxes, sites, devices, and users open in modals from tables
  • Audit sessions viewable in modal with improved styling
  • Tunnels interface redesigned without requiring modal navigation
  • Maintains context while viewing details

Stats Dashboard Overhaul

Comprehensive analytics for staff and partners

  • Revenue charts by month
  • Churn analysis visualisation
  • Factory reset analytics with breakdown by company and reasons
  • Sites per timeline distribution
  • Partner activity tracking with revenue impact

Audio Announcements System

  • Upload or record audio announcements directly in browser
  • Multiple custom audio files per timeline
  • Automatic conversion to OGG format
  • Audio file selection dropdown in live view
  • Trigger announcements via API

Timelapse Improvements

  • Shared preset system with live view
  • View timelapse by TetherBox
  • Improved index page reliability

Maps Rewrite

  • Migrated from React to Stimulus
  • Timeline selection without page reload
  • Interactive maps in popovers with zoom and pan support

API Changes

Breaking Changes

ANPR Endpoints Renamed (from LPR): - GET /api/v3p/lpr/platesGET /api/v3p/anpr/plates - POST /api/v3p/lpr/platesPOST /api/v3p/anpr/plates - PUT /api/v3p/lpr/plates/:idPUT /api/v3p/anpr/plates/:id - DELETE /api/v3p/lpr/plates/:idDELETE /api/v3p/anpr/plates/:id

Action Required: Update integrations to use ANPR endpoints before upgrading.

New Endpoints

  • POST /announcement_audio_files - Upload announcement audio
  • GET /partner_daily_activities - Partner activity reports
  • GET /weekly_counters - Weekly activity counters
  • POST /api/v3p/zones/:id/audio_challenge - Trigger audio challenge
  • GET /api/v3/live/:id/playlist?sub=true - Sub-stream HLS playlist

Enhanced Endpoints

  • Camera updates now accept native_capabilities hash parameter
  • Device rows endpoint for real-time updates
  • Zone state endpoint for player configuration

Other Changes

Device Management Rewrite

  • Real-time device status updates via ActionCable
  • Quick tunnel creation for one-click device access
  • Port selector with discovered ports
  • Protocol selection (HTTP/HTTPS)
  • Improved device discovery visibility

Camera Management

  • Native capabilities field for ONVIF data
  • Improved credential checking with clear error messages
  • Zone name validation and updates
  • Recording mode dropdown improvements
  • IP address sorting with numeric comparison

Tunnel Management

  • Protocol support (HTTP/HTTPS)
  • Timeout protection (30s create, 15s close)
  • Quick create endpoint for one-click tunnel
  • Better error handling and messages

TetherBox Show Page

  • Lazy tab loading for performance
  • Real-time content updates via ActionCable
  • Password visibility endpoint
  • Factory reset with reason tracking
  • Network scanning toggle
  • Display test shows modal on failure instead of new page

Companies Show Page

  • Redesigned with inline field editing
  • Improved Global Site Access management
  • Better user display format (name + email)

Recordings Controller

  • Compressed filter URL storage (avoids cookie overflow)
  • Turbo Frame support for filter refreshing

Users Controller

  • Modal-based user editing workflow
  • Inline permissions editing via Turbo Streams
  • User creation/deletion tracking in WeeklyCounter
  • 2FA verification improvements

Port Scan & Ping Interface

  • Improved styling and UX
  • Results rendered on page without refresh
  • Better visual feedback during scanning

Subscriptions

  • Manual TetherBox reassignment updates company subscription counts
  • Migrated from UJS to Stimulus controller

TetherBox Activation

  • Improved activation complete page

Internal Changes

Template Migration: Slim → ERB

~500 files converted to industry-standard ERB format

  • All views, partials, and mailer templates
  • Enables faster feature delivery
  • Improved platform stability
  • Better tooling support

JavaScript Migration: CoffeeScript → ES2024

Complete modernisation of JavaScript codebase

  • Removed ~20 CoffeeScript files
  • Added 30+ new Stimulus controllers
  • Modern ES2024 modules with strict mode
  • Native DOM APIs replacing jQuery where practical

Asset Pipeline: Webpacker → esbuild

  • Faster development builds
  • Smaller production bundles
  • Propshaft for asset management
  • Removed Babel, Webpack configuration

Stylesheet Migration: Sass → SCSS

  • Industry-standard SCSS syntax
  • Modular component stylesheets
  • Vendored Bootstrap and plugin styles

New Stimulus Controllers

30+ new controllers for modern UI interactions:

  • shared/dialog_controller.js - Unified modal/dialog system
  • shared/bootstrap-datatable_controller.js - Real-time table updates
  • shared/real_time_show_controller.js - Live detail page updates
  • perspectives/* - Complete PTZ, relay, stream, and layout controls
  • inline_edit_controller.js - Inline field editing
  • audio_recorder_controller.js - Browser-based audio recording
  • map_controller.js - Full-featured Leaflet integration

New Controller Concerns

  • InlineEditable - Inline editing support
  • LazyTabLoader - On-demand tab content
  • PerspectiveSelection - Shared perspective logic
  • ResultsUrlStorage - Filter parameter persistence
  • StatsInsights - Statistics aggregation

ActionCable Channels

  • SitesChannel, UsersChannel, ZonesChannel, TimelinesChannel
  • Enhanced bulk row updates for all entity types
  • Real-time show page updates

HTTP Status Modernisation

  • Changed unprocessable_entity to unprocessable_content (HTTP 422)
  • Follows Rails 8 conventions

Deleted Legacy Code

  • Bootstrap Table library (~10,000 lines)
  • CoffeeScript files (~3,000 lines)
  • Slim templates (~500 files)
  • Legacy UJS .js.erb templates
  • Select2 (replaced by Tom-Select)

Statistics

Metric Value
Commits 148
Lines added 52,217
Lines removed 35,551
Net change +16,666

Migration Notes

For Integrators

  1. Update ANPR API calls from /lpr/ to /anpr/ paths
  2. Review custom scripts for Bootstrap Table dependencies
  3. Update any Slim templates in custom extensions
  4. Test webhook integrations with new HTTP status codes

For Staff

  1. New Stats Dashboard provides comprehensive analytics
  2. Partner Daily Activities for tracking engagement
  3. Factory Reset reason tracking for support cases