v2.4.11
API Hardening
- Fixed backup creation crash (
create_backup->create_unified_backup) - Fixed user CRUD silent failures (tuple unpacking on
delete_user/update_user) - Added
DNSManager.get_available_providers()for the DNS providers endpoint - RuntimeError from certbot now returns 422 instead of 500
- Certificate renewal for missing domains now returns 404 instead of 500
UI Design System
- Self-hosted Inter Variable and JetBrains Mono fonts (air-gap compliant)
- Tabular numerals, slashed zeros, antialiased rendering
- Soft status badges with
ring-insetborders - Sticky table header with backdrop blur
- Breadcrumb navigation replacing redundant page title cards
- Health-strip left borders on certificate rows
- Row entrance animations with staggered delays
- Dark mode:
color-scheme: darkfor native controls, surface color tokens - Theme toggle rewritten (FontAwesome cascade fix)
- Setup wizard icons self-hosted (CSP compliance)
Performance
- Gunicorn threads 4 -> 8 (SSE concurrency)
- Audit log tail-seek optimization
- Deferred script loading with staggered API fetches
Testing
- 87/87 API endpoints verified
- 212 unit tests passing
- 10 E2E Playwright tests passing
- Password policy enforced in test fixtures
Full Changelog: v2.4.10...v2.4.11