towerops/lib/towerops_web
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
..
channels fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
components fix: add dark mode support to marketing site 2026-03-04 13:57:12 -06:00
controllers fix: org switching now correctly updates session 2026-03-04 17:04:49 -06:00
graphql Add granular org roles: executive, technician 2026-02-15 17:40:53 -06:00
helpers Dashboard: timezone-aware timestamps, site health as table, remove dead code 2026-02-14 16:07:26 -06:00
live fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
plugs fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
changelog_parser.ex fix: resolve 500 errors on /activity and /changelog 2026-02-13 19:49:12 -06:00
endpoint.ex fix: completely silence logs for noisy health check endpoints 2026-03-05 08:23:12 -06:00
gettext.ex init 2025-12-21 11:10:43 -06:00
gettext_helpers.ex feat: migrate email templates to gettext (Phase 2 - Emails) 2026-02-02 09:48:30 -06:00
permissions.ex i18n: add Spanish locale with full translations, language selector, and locale hook 2026-02-14 17:44:01 -06:00
plug_exceptions.ex handle exceptions gracefully on api endpoints 2026-02-04 12:18:14 -06:00
router.ex fix: org switching now correctly updates session 2026-03-04 17:04:49 -06:00
telemetry.ex fix: add Oban config to dev.exs and replace Exq telemetry with Oban 2026-01-24 16:39:45 -06:00
user_auth.ex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00