Block a user
Fehlende Validierung: description ohne max_length, tags ohne Limits
Health-Endpoint greift auf private Cache-Attribute zu
NotificationCache-Reload nutzt separate Session statt DI
N+1 Query in ReadingService.get_latest – list_by_box statt direktem Lookup
DESIGN.md: Undokumentierte Tokens und neue Tab-Konvention ergaenzen
NotificationsView Tab-Stil vereinheitlichen (Bottom-Border)
Hardcoded #fff durch var(--text-on-color) ersetzen
Inline color-mix() durch CSS-Variablen ersetzen
[Vorschlag] Settings- und Hilfe-Tabs visuell ueberarbeiten
[Vorschlag] Settings- und Hilfe-Tabs visuell ueberarbeiten
Umgesetzt in 10e77c0:
- Tab-Stil: Pill-Group → Bottom-Border-Indicator (GitHub/VS Code Style)
- Icons: Heroicon SVGs für alle Tabs (Settings: Zahnrad, Signal, DB, Chart, Shield, Uhr;…
CSRF-Protection auf state-changing Endpoints fehlt
Keine Unit-Tests fuer bridge_config_service.py
Settings-Tabs laden Config jeweils einzeln statt zentral
WebSocket-Reconnect-Status im Frontend nicht sichtbar
SparklinePopover ohne aria-label fuer Screen-Reader
sensor_key ohne Regex-Validierung in schemas.py
CSRF-Protection auf state-changing Endpoints fehlt
Done
Implemented Double Submit Cookie pattern for CSRF protection:
- New
csrf.pymiddleware sets a non-HttpOnlycsrf_tokencookie and validates theX-CSRF-Tokenheader on POST/PATCH/PUT/D…