towerops/priv/static
Graham McIntire f41f5fa1aa feat(insights): AP frequency-change recommendation rule
When a wireless AP has a strong same-channel neighbor (RSSI >= -75 dBm)
and a measurably cleaner alternative channel exists in the same band,
the system now emits an ap_frequency_change insight with a specific
recommended channel and the top interfering BSSIDs as evidence.

- New schema wireless_neighbor_scans (append-only) storing observed
  neighboring APs per device: bssid, ssid, channel, frequency_mhz,
  channel_width_mhz, rssi_dbm, is_own_fleet, seen_at
- New columns on snmp_devices: current_channel, current_frequency_mhz,
  current_channel_width_mhz, last_radio_seen_at — populated by vendor
  SNMP profiles for APs that expose wireless OIDs
- Towerops.Recommendations.Rules.FrequencyChange — pure rule that scores
  each candidate channel using sum-of-linear-power over the last 24h of
  neighbor scans, recommends the cleanest if it beats the current by at
  least 6 dB. Critical urgency when current score >= 100.
- Towerops.Workers.RecommendationsRunWorker — hourly Oban cron, iterates
  organizations and runs all rules, uses insert_insight_if_new/1 for
  idempotent upsert
- LiveView /insights renders a purple frequency-change card with current
  vs recommended channel, dB-cleaner badge, and a top-offender list
  (BSSID, SSID, RSSI, own-fleet flag)
- LLM enrichment automatically applies to the new insight type

Also fixes two pre-existing flaky tests that surfaced in CI:

- test/towerops_web/live/agent_live_test.exs:567 — now sets an explicit
  Req.Test transport_error stub for ReleaseChecker and uses Req.Test.allow
  so the LiveView process inherits it. Previously relied on absence of a
  stub, which leaked across tests and produced different behavior under
  full-suite parallel runs.
- test/towerops_web/telemetry_test.exs:140 — relaxes the "no log" check
  to refute the specific messages the function under test would emit,
  rather than asserting an empty capture_log/1 buffer (which catches
  stray logs from concurrent tests, e.g. Postgrex sandbox disconnects).
2026-05-09 16:56:19 -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(insights): AP frequency-change recommendation rule 2026-05-09 16:56:19 -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