towerops/lib/towerops_web/live
Graham McIntire 0350ced8e1 dialyzer: fix remaining 88 warnings — clean dialyzer run
Categories addressed:
- pattern_match / pattern_match_cov (32): remove dead case/with clauses
  that dialyzer proved unreachable from the caller types.
- contract_supertype / extra_range / invalid_contract /
  contract_with_opaque (25): narrow @spec declarations to match actual
  success typings.
- call / call_without_opaque (18): fix bad calls, narrow User.t to
  allow nil for in-memory changeset structs, suppress Ecto.Multi
  opaque-type false positives with targeted @dialyzer directives.
- guard_fail / no_return / unused_fun / unknown_function (13): remove
  dead || fallbacks, simplify always-true params, cascade-resolve
  no_returns via the underlying pattern_match and call fixes.

Real production bug fixed: StormDetector.handle_cast/2 had swapped
`:queue.in` args (`queue |> :queue.in(ts)` which desugars to
`:queue.in(queue, ts)` — wrong argument order). Alert timestamps
were never being enqueued, so storm detection would fail at runtime.
Corrected to `ts |> :queue.in(queue)`.

.dialyzer_ignore.exs: suppress two genuine dep-PLT gaps
(:ranch.get_addr/1 false positive from Bandit's transitive ranch,
and the Cloak.Vault GenServer callback_info on the CI build path).

`mix dialyzer` now: Total errors: 114, Skipped: 114 — passes clean.
Warnings: 88 → 0.
2026-04-21 10:32:42 -05:00
..
account_live Fix dark mode inconsistencies across all pages 2026-02-16 10:31:52 -06:00
admin dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
agent_live dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
alert_live Fix critical bugs, memory leaks, and N+1 queries (#132) 2026-03-23 17:03:41 -05:00
check_live dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
components logging fix and some other codex fixes 2026-03-10 15:04:28 -05:00
device_live dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
escalation_policy_live fix: input validation, SSRF, API hardening, and cookie security 2026-03-14 14:48:59 -05:00
graph_live dialyzer: fix remaining 88 warnings — clean dialyzer run 2026-04-21 10:32:42 -05:00
help_live Add GeoIP import HTTP tests 2026-03-10 16:02:49 -05:00
helpers refactor/dry-improvements (#202) 2026-03-28 10:56:34 -05:00
insights_live dialyzer: fix remaining 88 warnings — clean dialyzer run 2026-04-21 10:32:42 -05:00
maintenance_live Add page descriptions + rename Schedules to On-Call 2026-03-13 15:30:39 -05:00
map_live reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00
mikrotik_backup_live reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00
org dialyzer: fix remaining 88 warnings — clean dialyzer run 2026-04-21 10:32:42 -05:00
org_live fix: org switching now correctly updates session 2026-03-04 17:04:49 -06:00
schedule_live fix: input validation, SSRF, API hardening, and cookie security 2026-03-14 14:48:59 -05:00
site_live dialyzer: fix remaining 88 warnings — clean dialyzer run 2026-04-21 10:32:42 -05:00
trace_live Add page descriptions + rename Schedules to On-Call 2026-03-13 15:30:39 -05:00
user_settings_live dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
activity_feed_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
activity_feed_live.html.heex tweaks (#85) 2026-03-19 13:51:02 -05:00
capacity_live.ex feat: add capacity insight worker, UI, and reporting views 2026-03-07 14:42:40 -06:00
capacity_live.html.heex feat: add capacity insight worker, UI, and reporting views 2026-03-07 14:42:40 -06:00
changelog_live.ex fix: add navigation and footer to changelog page 2026-03-09 15:59:13 -05:00
config_timeline_live.ex reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00
dashboard_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
dashboard_live.html.heex reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00
mobile_qr_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
network_map_live.ex feat: WISP-tuned network map enhancements (TOW-16) 2026-03-15 14:06:06 -05:00
network_map_live.html.heex reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05: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
reports_live.ex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
reports_live.html.heex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
rf_link_health_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
rf_link_health_live.html.heex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
status_page_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
status_page_live.html.heex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
user_registration_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
user_reset_password_live.ex fix: status emoji accumulating in page title and add missing page titles 2026-03-11 09:54:18 -05:00
user_settings_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
user_settings_live.html.heex reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00
weathermap_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
weathermap_live.html.heex reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00