towerops/lib/towerops_web/live
Graham McIntire 86a5dc728c
fix: comprehensive bug fixes from reliability audit
Critical Fixes (5):
- Fix Task.yield_many race condition causing data corruption in DevicePollerWorker
- Fix Enum.zip data corruption in SNMP Base Profile with length validation
- Fix missing Alert schema fields for check alerts (check_id, severity, etc.)
- Fix memory leaks from uncancelled LiveView timers in 4 components
- Fix PubSub subscription leak in device form credential testing

High Severity Fixes (3):
- Fix clock skew bug in needs_discovery? check with DateTime.diff clamping
- Fix nil crash in interface status display with proper nil handling
- Fix migration index names after equipment→devices table rename

Medium Severity Fixes (6):
- Fix race condition in device monitor worker (duplicate maintenance checks)
- Fix missing preload validation in devices.ex get_org_default_agent
- Fix broad rescue clause in alerts.ex with specific error handling
- Fix fire-and-forget notification tasks with try-catch error logging
- Fix LiveView state bleeding between tabs (assign_new → assign)
- Add catch-all handle_info callbacks to 3 LiveViews

Infrastructure:
- Silence health check endpoint logs (/health, /health/time)
- Add migration to fix equipment index names missed in rename

Files Changed: 16 files modified, 1 migration added
All changes compile successfully and are backward-compatible.
2026-03-05 08:53:30 -06:00
..
account_live Fix dark mode inconsistencies across all pages 2026-02-16 10:31:52 -06:00
admin fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
agent_live fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
alert_live Add onboarding flow for new organizations 2026-02-16 10:14:45 -06:00
check_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
components refactor: fix all credo strict issues, format all code, fix broken routes 2026-02-13 19:34:40 -06:00
device_live fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
graph_live fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
help_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
helpers refactor: centralize LiveView access control checks 2026-02-04 17:51:05 -06:00
insights_live i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
maintenance_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
map_live i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
mikrotik_backup_live i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
org Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
org_live fix: org switching now correctly updates session 2026-03-04 17:04:49 -06:00
site_live fix: correct subscriber counts by filtering CGNAT IPs and excluding routers 2026-02-18 09:15:10 -06:00
trace_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
user_settings_live feat: add 12/24-hour time format setting with consistent timezone display 2026-02-13 15:16:29 -06:00
activity_feed_live.ex fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
activity_feed_live.html.heex fix: netbox url field type, gaiia ipRange→block, remove unknown webhook log 2026-02-14 17:44:01 -06:00
changelog_live.ex refactor: fix all credo strict issues, format all code, fix broken routes 2026-02-13 19:34:40 -06:00
config_timeline_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
dashboard_live.ex ui: major redesign - NOC dashboard, consolidated nav, dense tables, flat alerts 2026-02-14 20:15:07 -06:00
dashboard_live.html.heex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
mobile_qr_live.ex fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
network_map_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
network_map_live.html.heex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
onboarding_live.ex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
onboarding_live.html.heex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
user_registration_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
user_reset_password_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
user_settings_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
user_settings_live.html.heex ui: polish device detail, site detail, and user settings 2026-02-14 21:11:33 -06:00