Table of Contents
Q1 2024 Release Notes
January - March 2024
Highlights
This quarter focuses on brand refresh, pricing updates, and platform improvements.
- Rebranded from "Tether" to "TetherX" throughout
- New tiered pricing structure based on camera count
- Enhanced drive detection and monitoring
User-Visible Changes
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.
Pricing Updates
- Introduced new tiered pricing structure based on camera count to better align with actual usage:
- 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_limitanddetail_idfields 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_usescope to identify TetherBoxes active within the last month, useful for integrators reviewing customer installations.
Camera Management
- Added default configuration support for SnapAV cameras, expanding compatible equipment options for integrators.
- Updated Lilin camera stream paths (changed from
/rtsph264480pand/rtsph2641080pto/stream1and/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
- 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.
Tip: Extended retention may be offered as a paid feature in future.
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_rspecwrapper. - Enhanced test runner with CI_RETRY support (reduced from 5 to 3 retries for faster feedback).
- Added failing specs logging to
tmp/failing_specs.logfor 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, andmaxfor 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
sellertotetherx_account_manageracross Company and TetherBox models.
Seeds & Sample Data
- Added TetherX default brand to seed data with subdomain 'monitor'.
- Updated company factory to use
tetherx_account_managerinstead oftether_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 ofselectfor 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_managerfields and methods totetherx_account_managerthroughout the codebase. - Moved refresh_listeners.js from legacy location to utils folder for better code organisation.
Statistics
| Metric | Value |
|---|---|
| Commits | 56 |
| Lines added | 1,005 |
| Lines removed | 632 |
| Net change | +373 |
By Language (net change):
| Language | Change |
|---|---|
| Ruby | +282 |
| Views (ERB/Slim/Haml) | +2 |
| JavaScript (JS/JSX/Coffee) | +0 |
Codebase totals: 111,039 lines (Ruby: 52,923, Views: 22,964, JS: 9,185)