Bug fixes

Dashboard — Asset Selector Freeze on Poor Connections
DashboardBug Fix
Fixed an issue where the asset selector on the dashboard could become unresponsive under degraded network conditions — typically seen when accessing the platform from remote locations or where internet speeds are reduced. The selector now handles slow or delayed responses gracefully without locking the UI.
Asset Filter — Per-User Filtering Incorrect
AssetsBug Fix
Fixed a bug where the asset filter was being applied at the tenant level rather than per user, meaning changes made by one user could affect the filter state seen by other users in the same organisation. Filters are now correctly scoped per user.
Alerts — Crash When No Asset Associated
AlertsBug Fix
Fixed a server-side crash that could occur when an alert was triggered for a sensor with no associated asset. Alerts now handle this case gracefully and continue processing without affecting other notifications.
Alerts — Incorrect Timezone in Notifications
AlertsBug Fix
Fixed an issue where alert notification timestamps were being formatted without proper timezone handling, resulting in incorrect times displayed in alert emails. Timestamps now correctly reflect the local timezone.
Alerts — Duplicate Notifications in Multi-Instance Deployments
AlertsBug Fix
Fixed an issue where scheduled alert jobs could run simultaneously across multiple server instances, causing duplicate notifications to be sent. Distributed job locking is now in place to ensure each alert fires exactly once.

What’s new

Platform — Release Notes
Platform
This release introduces the Sanicus Connect Release Notes — a dedicated site where platform updates, new features, bug fixes, and improvements will be published with each release. Bookmark this page to stay up to date with changes as they are deployed.
Dashboard — Hierarchical Asset Charts
Dashboard
Charts can now be viewed through the lens of your asset hierarchy, giving you a meaningful, rolled-up picture of washroom performance at any level of the tree — building, floor, or individual washroom.How it works: select any node in the asset tree and the system aggregates sensor readings across all direct children of that node. For example, selecting a building groups the data by floor; selecting a floor groups it by washroom. This means a single chart can surface how each area within a building is performing without you having to navigate to each asset individually.This makes it straightforward to spot outliers — a floor with consistently elevated TVOC readings, or a single washroom dragging down overall humidity scores — from a single view, then drill down only where needed.
Dashboard — Unified Date & Filter Controls
Dashboard
All charts on the dashboard are now controlled by a single date selector and a single filter. Changing either control updates every chart simultaneously, so comparisons across metrics are always aligned to the same time window and asset scope.Previously each chart maintained its own controls, which made cross-metric analysis error-prone. The new unified bar removes that friction.
Dashboard — Filter Controls Moved to Modal
Dashboard
The asset filter controls have moved into a dedicated modal dialog, reducing clutter on the main chart view and giving filters a cleaner, more focused interaction. Open the filter modal to set your scope, apply, and return to the charts.
Dashboard — Air Quality Charts Split by Component
Dashboard
The Air Quality section of the dashboard has been split into four dedicated charts, one per component:
  • TVOC (Total Volatile Organic Compounds)
  • CO₂
  • Temperature
  • Humidity
Each chart’s Y-axis is scaled to the meaningful range for that metric, so values are immediately legible without mental unit-switching between components. Previously all AQ readings shared a single combined view, which made it difficult to read precise levels for each metric at a glance.
Dashboard — Air Quality Chart Colour Coding
Dashboard
Each AQ component chart now has a distinct colour to aid visual identification at a glance:
  • TVOC — magenta
  • CO₂ — yellow
  • Temperature — cyan
  • Humidity — grey
Dashboard — Improved Data Retrieval Performance
Dashboard
Overall performance of dashboard data retrieval has been improved, resulting in faster chart load times across all views. Dashboard services now deduplicate rapid state changes to prevent redundant API requests, reducing load times further when switching assets or date ranges quickly.
Alerts — Per-Component Air Quality Alerting
Alerts
Air Quality alerts can now be configured at the individual component level. Instead of a single catch-all AQ alert, you can create separate thresholds for:
  • TVOC (Total Volatile Organic Compounds)
  • CO₂
  • Temperature
  • Humidity
Alert notifications now include the actual sensor reading at the time the threshold was breached, so there is no need to return to the dashboard to determine how far a value exceeded its limit.This allows fine-grained notification policies — for example, alerting facilities management only on CO₂ breaches while routing TVOC alerts to a different team, or setting tighter thresholds for humidity in specific buildings.
Reports — Asset Location Column
Reports
Reports now include the full asset location for each data row, surfacing the complete path through the asset tree (e.g., Building A → Ground Floor → Accessible WC). Individual toilets and cubicles can be identified at a glance without cross-referencing the asset tree separately.This is particularly useful for multi-site or multi-floor reports where asset names alone were not sufficient to distinguish locations.
Floor Plans — 3D View
Floor Plans
Where a 3D floor plan has been configured for a site, a 3D view is now available alongside the existing 2D plan. The view renders the spatial layout of the floor, giving a more intuitive sense of sensor placement and washroom location within the building footprint.AQ sensor zones are rendered as cylinders in the 3D view, visually distinguishing them from rectangular room and cubicle zones.The 3D view is opt-in per site and will only appear when 3D floor plan data has been uploaded for that location. Contact support if you would like to enable this for your sites.
Floor Plans — Zone Insights Panel
Floor Plans
Clicking on any zone in the 2D floor plan now opens an insights panel for that zone, displaying:
  • Occupancy peak hours
  • Visitor statistics
  • Dwell time
  • Sensor readings specific to that zone
This makes it possible to investigate a specific cubicle or washroom area directly from the floor plan without navigating away.
Floor Plans — Live View Colour Scheme
Floor Plans
The live occupancy colour scheme in the floor plan has been updated. Zones now display as green when unoccupied and red when occupied, replacing the previous red/blue scheme for clearer at-a-glance status.
Sensors — Depth Sensor Container Enforcement
Sensors
Depth sensors (soap dispensers, paper towel dispensers, hand towels, bins, and spill detection) now require a container to be assigned before the sensor can be saved. This prevents misconfiguration where a depth sensor is left without a container reference, which could cause missing or incorrect consumption data in reports.
Feedback — Star Rating Display
Feedback
The feedback dashboard now displays average star ratings using a 5-star visual scale, giving a clearer summary of washroom satisfaction scores alongside the existing feedback data.
Tickets — File Attachments
Tickets
Support tickets now support file attachments. Users can upload, download, and delete files directly on a ticket, with files stored securely and accessible via time-limited download links. Access is restricted to the ticket owner and administrators.
Tickets — Organisation Context & Superuser Visibility
Tickets
Ticket details now display the organisation and tenant name for easier identification when managing tickets across multiple sites. Superusers can now also view all tickets across the platform, not just their own.
Reports — Parallel Data Retrieval
Reports
Report data is now gathered in parallel across sensor types, significantly reducing generation time for reports that span multiple sensor categories or large asset trees.
Platform — Reliability Improvements
Platform
Several backend reliability improvements have been deployed in this release:
  • High-availability caching — Redis Sentinel is now configured across all services, providing automatic failover if the primary cache node becomes unavailable.
  • Stale cache prevention — Asset create, update, and delete operations now correctly invalidate related cache entries, preventing outdated asset data from being served after changes.
  • Sensor filter auto-creation — Missing sensor-type filters are now automatically created for users where they were not previously present, preventing blank filter states.