61408645a5
Lint / Python (flake8) (push) Failing after 41s
Lint / JS (eslint) (push) Successful in 8s
Security / Python Security (bandit) (push) Successful in 42s
Test / Python Tests (pytest) (push) Failing after 1m35s
Lint / Notify on failure (push) Successful in 5s
Lint / Deploy (push) Has been skipped
- app.py: validate server_name from LLDP with fullmatch before use in logs/lookups (prevents log injection) - app.py: validate each mgmt_ip candidate before assigning host_ip (avoids assigning non-IP string that then fails later check) - app.py: log actual exception in link_stats JSON parse error - inspector.html: clear _diagPollTimer in closePanel() so timer doesn't orphan when panel is closed mid-poll - monitor.py: sleep 30s after a monitor loop exception before resuming normal poll interval Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>