Q1 2024 Release Notes (January - March 2024)

Branding & Partners

  • 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.
  • Added Paxton licence file update (92ebef7c-9edc-442d-bc1c-584a7acd8bca.lic).
  • Enhanced SSL certificate generation workflow.

Benefits for Users

  • Code modernisation: Improved platform stability and faster page loads through more efficient code patterns.
  • Enhanced testing: More reliable platform updates with comprehensive automated testing across all features.
  • Better monitoring: Improved system health tracking helps our support team proactively identify and resolve issues before they affect users.
  • Translation improvements: Better support for non-English users with updated and consistent terminology across all languages.