prop/lib/microwaveprop_web
Graham McInitre b65d3227cd feat: clickable band filters on PSK Reporter tab, fix all test & credo issues
PSK Reporter tab:
- Fix handle_info(:refresh_spots) to use start_async instead of blocking
- Add require Logger to fix compiler warning
- Make band counts clickable: clicking a band filters table to that band's
  last 100 spots; clicking again clears the filter
- Highlight active filter badge, show Clear filter link when filtered
- Update subtitle and empty state dynamically based on filter
- Filter persists across auto-refresh (60s)
- Fix empty state condition to render immediately without async guard

Credo fixes (mix credo --strict now passes):
- weather_map_component.ex: replace @doc false with @impl true (missing spec)
- contact_weather_enqueue_worker.ex: extract hrrr_placeholder_for_contact/3
  to reduce nesting depth
- profile_lookup.ex: replace MapSet+then+reject pattern with Enum.filter
  to fix both nesting depth and cyclomatic complexity

Test infrastructure fixes:
- Fix Release.migrate/0 to handle repos without migration directories
  (AprsRepo in test has no migrations)
- Fix insert_spot helper: add missing 19th param for inserted_at/updated_at
- Fix String.index/2 -> :binary.match for Elixir 1.20 compat
- Fix DateTime.add!/3 -> DateTime.add/3 for Elixir 1.20 compat
- Fix substring matching in limit test (GRID1 matched GRID10)
- Add Process.sleep+render calls for async band_counts in new tests
- Replace impossible 'empty state for filtered band' test with
  'switching band filter updates table' test
- All 19 tests pass, mix credo --strict clean
2026-07-20 13:01:00 -05:00
..
api fix: resolve 158/183 credo --strict warnings 2026-06-12 15:47:15 -05:00
components fix: resolve 158/183 credo --strict warnings 2026-06-12 15:47:15 -05:00
controllers fix: resolve 158/183 credo --strict warnings 2026-06-12 15:47:15 -05:00
live feat: clickable band filters on PSK Reporter tab, fix all test & credo issues 2026-07-20 13:01:00 -05:00
plugs fix(remote_ip): log IPv6 in canonical hex via :inet.ntoa 2026-04-25 18:05:46 -05:00
endpoint.ex Fix low-severity bugs and re-enable Credo checks 2026-05-29 17:29:22 -05:00
grid_bounds.ex fix(security,perf): address 9 audit findings (access control, DoS, crashes) 2026-05-11 18:53:21 -05:00
live_helpers.ex refactor: deduplicate helpers and simplify Scorer 2026-04-28 14:14:34 -05:00
live_table_footer.ex Fix low-severity bugs and re-enable Credo checks 2026-05-29 17:29:22 -05:00
live_table_resource.ex fix(dialyzer): actually fix LiveTable warnings instead of hiding them 2026-04-21 12:58:10 -05:00
location_resolver.ex refactor: deduplicate helpers and simplify Scorer 2026-04-28 14:14:34 -05:00
metrics_plug.ex fix(metrics): defer ETS cron flusher on /metrics scrape 2026-05-02 10:59:24 -05:00
router.ex feat: add /pskreporter page showing last 100 PSK Reporter spots 2026-07-15 13:30:34 -05:00
skew_t.ex Rename ERA5 → NARR across the codebase 2026-04-16 09:22:23 -05:00
telemetry.ex Fix low-severity bugs and re-enable Credo checks 2026-05-29 17:29:22 -05:00
user_auth.ex Fix low-severity bugs and re-enable Credo checks 2026-05-29 17:29:22 -05:00