2be44d8b24
Lint / Python (flake8) (push) Successful in 45s
Lint / JS (eslint) (push) Successful in 8s
Security / Python Security (bandit) (push) Successful in 43s
Test / Python Tests (pytest) (push) Successful in 51s
Lint / Notify on failure (push) Has been skipped
Lint / Deploy (push) Successful in 3s
monitor.py: _ticket_interface/_ticket_unifi/_ticket_unreachable all used `if tid and is_new` to guard db.set_ticket_id(). Since is_new is True only on the first upsert (consec=1) but tickets are created at consec>=fail_thresh (default 2), is_new is always False when the ticket is created, so the ticket link never appeared in the UI. Changed to `if tid:`. links.html: JSON.parse(sessionStorage.getItem(...)) in togglePanel and restoreCollapseState had no try-catch. Corrupt/stale session storage would throw an uncaught SyntaxError. Also wrapped all sessionStorage.setItem calls in try-catch to defend against storage-full / private-browsing errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>