## Summary - **`list_checks_for_agent` cascade**: the agent query only matched checks with `agent_token_id` set directly on the check record — checks on devices inheriting their agent via site/org/global default were never sent to the Go agent. Now uses left joins with the full cascade (device assignment → site → org default → global default cloud poller), matching the pattern from `list_agent_polling_targets`. - **At-risk summary double-counting**: `get_impact_summary` called `analyze_device_impact` per down AP, and each returned the full site subscriber count. With 3 APs down at a 147-sub site it showed 441 subs / $31k instead of 147 / $10k. Fixed by deduplicating impact per site. Same fix applied to `calculate_down_impact` in site impact summaries. ## Test plan - [x] 3 new cascade tests for `list_checks_for_agent` (site, org default, global default) - [x] 3 new tests for `get_impact_summary` (single site dedup, multi-site sum, zero case) - [x] All 8,607 existing tests pass - [ ] Deploy to staging, verify At Risk numbers on dashboard - [ ] Verify Go agent receives DNS/HTTP checks via cascade Reviewed-on: graham/towerops-web#79 |
||
|---|---|---|
| .. | ||
| mix/tasks | ||
| snmpkit | ||
| towerops | ||
| towerops_web | ||
| snmp_lib.ex | ||
| snmp_mgr.ex | ||
| snmpkit.ex | ||
| towerops.ex | ||
| towerops_native.ex | ||
| towerops_web.ex | ||