ca41486c45
Lint / Python (flake8) (push) Failing after 45s
Lint / JS (eslint) (push) Successful in 8s
Security / Python Security (bandit) (push) Successful in 1m5s
Test / Python Tests (pytest) (push) Successful in 49s
Lint / Notify on failure (push) Successful in 3s
Lint / Deploy (push) Has been skipped
security: - Fix bare open(sentinel, 'w').close() file descriptor leak; use context manager instead - Store requesting username in _diag_jobs at creation time; return 403 from api_diagnose_poll if the polling user does not match the job owner accessibility: - Add aria-live="polite" aria-atomic="true" to .status-chips container so screen readers announce critical/warning count changes on refresh - Add aria-controls="events-table-wrap" to critical and warning stat cards so assistive tech knows these buttons control the events table - Add aria-hidden sync to topology setCollapsed() — hidden topology content is now removed from the accessibility tree when collapsed, preventing keyboard focus from entering invisible elements Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>