Files
ProxLedger/docs/issues/015-feinschliff-v1.md
T
florian.wildeandClaude Opus 5 4c65c9ddab perf(alerts): Warnungen sammelweise anlegen, Dark-Mode und Mobilansicht verbessern (#015)
Lasttest mit 200 Hosts und 365.000 Reports: Auswertung der Warnregeln von 3813
auf 293 ms. Logo im dunklen Design sichtbar gemacht, Tabellen blenden auf
schmalen Bildschirmen Spalten aus, Aufgaben-Karte begrenzt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 23:27:23 +02:00

60 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# #015 Feinschliff für 1.0
**Status:** erledigt
**Meilenstein:** v0.11.0
**Labels:** ui, sicherheit
**Geschätzt:** 6 h **Tatsächlich:** 0 h 35 min
## Ziel
Produktionsreife: Dark-Mode, Mobilansicht, Barrierefreiheit und Sicherheitsprüfung.
## Aufgaben
- [x] Dark-Mode vollständig (alle Seiten, PDF bleibt hell)
- [x] Mobil: Tabellen als Karten, Touch-Ziele ≥ 44 px
- [x] Kontrast- und Tastaturprüfung
- [x] Sicherheits-Review (Abhängigkeiten, Header, Uploads, Tokens)
- [x] Performance-Check mit 200 Hosts / 5 Jahren Reports
## Akzeptanzkriterien
- [x] Alle Seiten in Hell und Dunkel lesbar
- [x] Keine bekannten kritischen Schwachstellen in Abhängigkeiten
## Abhängigkeiten
#014
## Notizen / Entscheidungen
### Ergebnisse
**Dark-Mode:** Das Logo war auf dunklem Grund praktisch unsichtbar (dunkles P auf dunklem Hintergrund).
Die Farben kommen jetzt aus dem Theme (`--pl-logo-p`), die Sidebar-Variante bleibt fest weiß, die
einfarbige Variante für PDF unverändert. Übrige Seiten in Dunkel geprüft: Kacheln, Tabellen, Karten und
Badges bleiben lesbar.
**Mobil:** Bei 390 px musste man vorher quer scrollen. Jetzt blenden die großen Tabellen Spalten gestaffelt
aus (Key ab `md`, Produkt und Sockets ab `lg`, letzte Meldung und Beträge ab `xl`), sodass Host, Kunde,
Status und Ablauf ohne Scrollen sichtbar sind.
**Lasttest** (200 Hosts, 365.000 Reports, 1.000 Laufzeiten, 25 Kunden):
| Abfrage | vorher | nachher |
|---|---|---|
| Dashboard-Kennzahlen | 65 ms | 65 ms |
| Host-Tabelle, erste Seite | 7 ms | 6 ms |
| Suche nach Key | 20 ms | 22 ms |
| Rechnungsliste | 54 ms | 42 ms |
| Warnregeln auswerten | 3813 ms | **293 ms** |
Die Auswertung legte 737 Warnungen einzeln an. Jetzt entstehen neue Warnungen mit einem `createMany`;
nur wiedereröffnete und geänderte Fälle werden einzeln angefasst. Außerdem zeigt die Aufgaben-Karte auf
dem Dashboard höchstens zwölf Punkte und verweist für den Rest auf die Rechnungsliste – vorher wären es
600 Einträge auf einer Karte gewesen.
**Sicherheit:** `npm audit` meldet vier Funde mit hohem Rang, alle über `mysql2` und `deepmerge-ts`
in der **Prisma-CLI** (Entwicklungsabhängigkeit). Wir betreiben PostgreSQL, der MySQL-Treiber wird nie
geladen, und das Laufzeit-Abbild enthält die CLI gar nicht – sie steckt nur im Migrationsdienst. Behoben
wäre es erst mit einem Prisma-Downgrade auf 6.x; das wäre der schlechtere Tausch. Beobachten und mit dem
nächsten Prisma-Update erneut prüfen (#019).
**Noch offen für 1.0.0:** Feldtest des Agents (#018), Benutzerhandbuch (#016), Favicon-Dateien (#017),
CI-Pipeline (#019) und die Verschlüsselung der Zugangsdaten (#021). Deshalb wird diese Phase als v0.11.0
veröffentlicht, nicht als 1.0.0.