sync: auto-sync from HOWARD-HOME at 2026-06-15 23:34:02

Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-15 23:34:02
This commit is contained in:
2026-06-15 23:34:11 -07:00
parent 60d0a2bf87
commit e5f07afd90
4 changed files with 258 additions and 0 deletions

View File

@@ -275,3 +275,29 @@ unifi-WIFI): switch/PoE, gateway/WAN/firewall, adoption — reachable via the sa
- [ ] Per-client AP device-auth creds for other clients when extending beyond Cascades.
- [ ] Floor-4 2.4 power-down pilot (still the next live change; nothing applied yet).
- Coord this update: neighbor-collect.sh announce 3dbe2437.
---
## Update: 23:50 PT — gap 1 + gap 2 closed: survey-collect + dfs-check built; SKILL marked wifi-working / switches-WIP
GAP 1 (fold ad-hoc recipes into reusable collectors) — DONE, both validated on Cascades:
- **survey-collect.sh** `<site> [ap-ssh-vault-path]` — per-AP per-channel busy%/noise from
`iw survey dump` -> in-use busy% + cleanest non-DFS channels per band. 72 APs reported.
Result: 2.4 saturated 94-97% on every channel; 5GHz cleanest non-DFS = ch36/48/153/161; 6GHz ~0%.
- **dfs-check.sh** `<site> [ap-ssh-vault-path]` — per-AP `dmesg` radar history, PRECISE patterns
(excludes the "cached ifindex" false-positive). Result: **55/75 APs on DFS, ZERO real radar
events fleet-wide** -> DFS empirically low-risk at Cascades despite Davis-Monthan proximity
(confirms the retry-rate finding; the DFS concern was theoretical).
GAP 2 (scope) — DONE via SKILL.md Status block: WiFi monitoring+tuning = **WORKING** for every UOS
site we monitor (audit-site, live-stats, model-rank, optimize-radios, survey-collect, dfs-check,
neighbor-collect, watch-ap, apply-radio — all site-parameterized). Switches/PoE, gateway/WAN/
firewall, adoption = **WIP** (access layer reaches them; need dedicated collectors). Per-client:
vault each client's own `clients/<x>/unifi-ap-ssh`, pass as the script arg.
CROSS-PLATFORM LESSON (baked into both new scripts): pass temp paths to python via ARGV — MSYS
translates POSIX->Windows for python.exe; `$TMP` embedded in a `python -c` string is NOT translated
and fails ("No such file or directory") on Windows. Use `python - "$TMP/x" <<'PY' ... sys.argv[1]`.
Coord: collectors+status announce c3ccaa07. Next: wire neighbor-collect redundancy into
optimize-radios.sh; Floor-4 2.4 power-down pilot (still nothing applied to live radios).