towerops/priv/static
Graham McIntire 18f62022f5 feat(snmp): canonical AP radio state + own-fleet channel conflict rule
Adds a vendor-agnostic radio-state extractor that lets the frequency-
aware rules actually fire on production data without per-vendor
plumbing for each profile.

- Towerops.Snmp.RadioState — pure module that maps a frequency in MHz
  to the corresponding 802.11 channel across 2.4 GHz, 5 GHz, and 6 GHz
  bands; reads the freshest "frequency" sensor (already emitted by
  Cambium/MikroTik/AirOS/Mimosa/Exalt/etc. profiles) and persists the
  AP-level current_frequency_mhz, current_channel, last_radio_seen_at
  fields onto snmp_devices.
- DevicePollerWorker now calls RadioState.update_from_sensors/1 after
  each sensor poll so frequency-aware rules read a single canonical
  source instead of joining sensors at query time.
- Towerops.Recommendations.Rules.OwnFleetChannelConflict — new rule
  that needs no neighbor-scan collection: detects when 2+ of our own
  APs at the same site share a channel (self-interference). One
  insight per (site, channel) with a clickable list of conflicting
  APs and their channel widths. Critical when 3+ APs share a channel.
- Insight.@valid_types extended with own_fleet_channel_conflict.
- UI: amber card showing channel, frequency, AP count, and the linked
  list of conflicting devices.

Wired into the existing hourly RecommendationsRunWorker. LLM
enrichment automatically applies via the Phase 1 worker.
2026-05-09 17:14:48 -05:00
..
images add texas footer 2026-01-18 13:15:27 -06:00
vendor/leaflet fix: vendor Leaflet 1.9.4 locally instead of fetching from unpkg 2026-05-01 17:06:54 -05:00
android-icon-36x36.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
android-icon-48x48.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
android-icon-72x72.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
android-icon-96x96.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
android-icon-144x144.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
android-icon-192x192.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-57x57.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-60x60.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-72x72.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-76x76.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-114x114.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-120x120.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-144x144.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-152x152.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-180x180.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon-precomposed.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
apple-icon.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
changelog.txt feat(snmp): canonical AP radio state + own-fleet channel conflict rule 2026-05-09 17:14:48 -05:00
favicon-16x16.png fix: use transparent background for stoplight favicon 2026-03-06 14:46:02 -06:00
favicon-32x32.png fix: use transparent background for stoplight favicon 2026-03-06 14:46:02 -06:00
favicon-96x96.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
favicon.ico fix: use transparent background for stoplight favicon 2026-03-06 14:46:02 -06:00
ms-icon-70x70.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
ms-icon-144x144.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
ms-icon-150x150.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
ms-icon-310x310.png sanitize snmp data and fix some cpu things 2026-01-22 16:53:01 -06:00
robots.txt feat: add /sitemap.xml and update robots.txt for agent discovery 2026-04-17 13:58:19 -05:00