Refreshed brand colours: primary colour is now #ed673e (warm orange), secondary colour #2d4b69 (navy blue) for improved visual consistency.
Added logos for new integrator partners: AllGuard, Chris Lewis Security, DS Systems, and Social Telecoms.
TetherBox Platform
Pricing Updates
Introduced new tiered pricing structure based on camera count to better align with actual usage:
0-5 cameras: £7.63/month (previously allowed up to 7 cameras)
6-10 cameras: £11.45/month (previously allowed up to 14 cameras)
11-16 cameras: £18.31/month (previously allowed up to 18 cameras)
17+ cameras: Charged in 10-channel blocks at £11.45 per block
Added specific pricing for TetherBox 16 (£18.31 for up to 16 cameras) and TetherBox 35 (£40.08 for up to 35 cameras) models.
TetherBox Giga edition now charges for minimum 20 channels (£22.90) to reflect higher processing capabilities.
Updated billing threshold: TetherBoxes now show billing required 1 month + 1 day before renewal date (previously on renewal date only), giving integrators more advance notice for payment collection.
Software & Performance
Updated to version 4.06 (from 4.00rc13).
Improved deployment process with automatic retry every 24 hours for TetherBoxes with missing MQTT heartbeat, reducing manual intervention for integrators when connectivity issues occur.
Added new deployment strategy for legacy TetherBoxes (pre-4.05), ensuring smoother upgrades across all hardware generations.
Enhanced drive detection and monitoring with improved handling for NVMe drives and better error reporting for drive health issues.
Added automatic detection of ejected drives, helping facility managers and integrators identify when storage media has been physically removed.
Monitoring & Diagnostics
Improved TetherBox health monitoring by including channel_limit and detail_id fields in statistics, enabling better capacity planning for integrators.
Enhanced network device tracking with improved MAC address database (839 new vendor prefixes added), making it easier to identify connected equipment on customer networks.
Better handling of TetherBox offline notifications with improved scheduling and cache management, reducing false alarms for facility managers.
Added new in_recent_use scope to identify TetherBoxes active within the last month, useful for integrators reviewing customer installations.
Camera Management
Device Support
Added default configuration support for SnapAV cameras, expanding compatible equipment options for integrators.
Updated Lilin camera stream paths (changed from /rtsph264480p and /rtsph2641080p to /stream1 and /stream0), improving compatibility with newer Lilin models.
Camera Operations
Improved camera counter updates with better null safety checks, preventing errors when cameras are moved between TetherBoxes.
Enhanced zone update logic with additional safety checks to prevent nil reference errors during camera configuration changes.
Fixed camera URL generation to properly handle last known IP addresses, improving reconnection reliability after network changes.
Corrected log message from "Updation camera" to "Updating camera" for clearer deployment logs.
Cloud Recording
Improved cloud storage reliability with better null safety when accessing TetherBox subscription information.
Enhanced media information parsing for camera resolution detection, supporting both standard and NVMe-based cameras.
Events & ANPR
Event Management
Optimised database indexing strategy using partial filter expressions for flagged, closed, and shared events, significantly improving query performance when facility managers filter large event lists.
Added partial index for incomplete events, speeding up API queries when TetherBoxes search for existing events.
Improved event duration calculations and validation.
Enhanced LPR (Licence Plate Recognition) country code matching with workaround for Hikvision iDS cameras reporting 'GreatBritain' instead of 'GBR'.
Access Control
Updated default Paxton Net2 integration port from 8080 to 8443 for enhanced security.
Updated Paxton client ID to latest version for improved compatibility.
Added automatic cleanup of Access Control events older than 1 month to manage database growth (note: extended retention may be offered as paid feature in future).
User Management & Notifications
Notifications
Changed default for analytics notifications to disabled (previously enabled) to reduce notification fatigue for new users. Facility managers can still enable this in their settings if they wish to receive motion detection alerts.
Improved notification handling for ANPR events with better error handling for unknown camera zones.
User Permissions
Enhanced permission checks for access control events, properly validating timeline access and access control permissions.
Improved support access validation throughout the platform, ensuring integrators can only access customer sites when support access is explicitly enabled.
Statistics & Reporting
Account Management Terminology
Renamed "Tether Account Manager" to "TetherX Account Manager" throughout statistics, reports, and filtering interfaces for brand consistency.
Updated all related database fields, methods, and UI references to use new terminology.
Updated subscription spreadsheet generation to reflect new account manager naming.
Targets & Reporting
Extended monthly revenue targets through January 2025 with progressive growth targets (£21,500 in Jan 2024 increasing to £27,500 by Jan 2025).
Added bank holidays through 2026 for accurate working day calculations in sales reports.
Enhanced daily targets reporting with detailed breakdown by integrator company, showing MRR (Monthly Recurring Revenue) split between TetherBox platform fees and camera subscriptions.
Improved company name handling in reports with abbreviated names for better dashboard readability.
Daily target messages now posted to #commercial Slack channel for better visibility.
Subscription Management
Invoice Calculations
Improved subscription invoice helper to properly detect TetherX brand (handles both "Tether" and "TetherX" brand names).
Enhanced spreadsheet generation with better handling for cameras without associated TetherBoxes.
Fixed camera installation type reporting in subscription spreadsheets.
Company & Distributor Filtering
Updated all filtering interfaces to use "TetherX Account Manager" terminology.
Improved distributor account manager filtering throughout the platform.
API & Integration
API v3 Improvements
Simplified API controller guard clauses for better code readability.
Added commented code for temporarily reducing load on message consumer during high traffic periods (can be enabled by support team if needed).
Improved recording status responses: now uses HTTP 304 Not Modified (instead of rendering status) when recordings are outside camera schedule, reducing bandwidth usage.
Enhanced trigger parameter validation and error handling.
MQTT & Real-time Communication
Updated MQTT message handling for alarm, camera, and device channels with improved iteration patterns.
Better handling of grouped devices when refreshing states.
Testing & Development
Test Infrastructure
Updated parallel test execution using new bin/parallel_rspec wrapper.
Enhanced test runner with CI_RETRY support (reduced from 5 to 3 retries for faster feedback).
Added failing specs logging to tmp/failing_specs.log for easier debugging.
Removed deprecated Jenkins script (do_specs.sh).
Added Spring binstub for improved development performance.
Performance Benchmarks
Added comprehensive parallel testing benchmarks for Mac Mini M1 2020 and MacBook Pro M3 Max.
Optimal test performance: 10 parallel processes on M3 Max (3:06 average), 5 processes on M1 Mac Mini (9:31 average).
Database & Models
Optimisations
Improved iteration patterns using each_key, each_value, and max for better performance and readability.
Enhanced model callbacks with better nil safety checks throughout.
Added safer handling for company and TetherBox associations when updating counters.
Improved delegation patterns with consistent use of symbols for dynamic method calls.
Data Migrations
Updated activation installation type migration: both 'xanview' and 'tether' types now converted to 'tetherx' for data consistency.
Renamed seller to tetherx_account_manager across Company and TetherBox models.
Seeds & Sample Data
Added TetherX default brand to seed data with subdomain 'monitor'.
Updated company factory to use tetherx_account_manager instead of tether_account_manager.
Email Templates
Updated welcome pack and subscription alert emails to use correct brand names.
Fixed email subject in legacy update mailer: "This is what your clients say about TetherX" (previously "Tether").
Updated company mailer to properly use TetherX account manager locale for internationalisation.
Improved integrator status report generation with better user grouping.
Matrix Display Integration
Updated test message for Matrix displays from 'Tether' to 'TetherX'.
Alarm System Integration
Texecom
Improved alarm zone detection logic with clearer variable naming.
Enhanced armed state detection using any? instead of select for better performance.
Fixed state change detection logic for more reliable alarm triggering.
Virtual Alarms
Improved virtual alarm notification handling with early return patterns for better code clarity.
Enhanced alarm zone mapping for more reliable event correlation.
Other Changes
Relocated 'TetherX Account Manager' filter option in Companies and Subscriptions pages (same functionality, new terminology).
Renamed internal tether_account_manager fields and methods to tetherx_account_manager throughout the codebase.
Moved refresh_listeners.js from legacy location to utils folder for better code organisation.
Statistics
Metric
Value
Commits
56
Lines added
223
Lines removed
76
Net change
+147
Internal
Code Quality & Modernisation
Removed line continuation backslashes (\) from Ruby code for improved readability per modern Ruby style guidelines.
Improved guard clause patterns throughout controllers and models, using early returns instead of unless conditions.
Enhanced iterator usage: replaced group_by(&:field).each do |key, values| with each_key or each_value where appropriate.
Removed unnecessary parentheses in conditional statements for cleaner code.
Updated keys.include? to key? for more idiomatic Ruby.
Improved percentage calculation and sorting: replaced compact.sort.last with compact.max.
Enhanced string interpolation with direct variable insertion instead of concatenation.
Ruby 3 Compatibility
Updated block forwarding syntax using & and &block for better compatibility.
Improved argument forwarding with proper ... syntax.
Enhanced symbol method calls using :"#{field}=" pattern.
Updated transform_values(&:uniq) for cleaner code.
Testing Improvements
For integrators: Improved test reliability means fewer false alarms when deploying updates to customer sites.
Enhanced factory definitions for better test data generation.
Improved test helpers with better timeline selection support.
Updated integration specs across cameras, companies, devices, events, TetherBoxes, and users.
Configuration
Updated RuboCop configuration for better linting.
Improved development and test environment configurations.
Enhanced Gemfile with updated dependencies and better organisation.
Translation Updates
Updated translation keys across all supported languages (English, Spanish, Hebrew, Russian, Ukrainian).
Enhanced translation specs for better coverage.
Message Queue Monitoring
Added message parser filtering capability for better debugging.
Improved message queue statistics with configurable top N results (default 20).
Enhanced payload analysis with better categorisation by trigger type and device status.
SIA (Security Industry Association) Integration
Added new SIA server test implementation (sia_server_test2.rb) for improved alarm panel testing.
Enhanced TCP server logging and connection handling.
Improved CRC validation and message acknowledgement.
Cron Jobs
Disabled pre-billing report emails (commented out) - manual invoicing process being reviewed.
Added automatic cleanup of old Access Control events (older than 1 month).
Enhanced daily and weekly cleanup tasks.
Prometheus Monitoring
Added Prometheus exporter script for enhanced metrics collection and monitoring.
Infrastructure
Updated vendor MAC address database with 839+ new manufacturer prefixes for better network device identification.