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
Modal-Based Resource Viewing
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/plates → GET /api/v3p/anpr/plates
- POST /api/v3p/lpr/plates → POST /api/v3p/anpr/plates
- PUT /api/v3p/lpr/plates/:id → PUT /api/v3p/anpr/plates/:id
- DELETE /api/v3p/lpr/plates/:id → DELETE /api/v3p/anpr/plates/:id
Action Required: Update integrations to use ANPR endpoints before upgrading.
New Endpoints
POST /announcement_audio_files- Upload announcement audioGET /partner_daily_activities- Partner activity reportsGET /weekly_counters- Weekly activity countersPOST /api/v3p/zones/:id/audio_challenge- Trigger audio challengeGET /api/v3/live/:id/playlist?sub=true- Sub-stream HLS playlist
Enhanced Endpoints
- Camera updates now accept
native_capabilitieshash 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 systemshared/bootstrap-datatable_controller.js- Real-time table updatesshared/real_time_show_controller.js- Live detail page updatesperspectives/*- Complete PTZ, relay, stream, and layout controlsinline_edit_controller.js- Inline field editingaudio_recorder_controller.js- Browser-based audio recordingmap_controller.js- Full-featured Leaflet integration
New Controller Concerns
InlineEditable- Inline editing supportLazyTabLoader- On-demand tab contentPerspectiveSelection- Shared perspective logicResultsUrlStorage- Filter parameter persistenceStatsInsights- 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_entitytounprocessable_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.erbtemplates - 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
- Update ANPR API calls from
/lpr/to/anpr/paths - Review custom scripts for Bootstrap Table dependencies
- Update any Slim templates in custom extensions
- Test webhook integrations with new HTTP status codes
For Staff
- New Stats Dashboard provides comprehensive analytics
- Partner Daily Activities for tracking engagement
- Factory Reset reason tracking for support cases