diff --git a/AGENTS.md b/AGENTS.md index 3ad4071..7969f39 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,8 +10,9 @@ fuer den Zugangs-Token; dazu Debug-Mode, eine Version-Kachel, das Knopfpaar nach HIG und Bilder ohne Verzoegerung; dazu eine Musterseite, die die App ohne Token und ohne Netz rendert; dazu der QR-Code aus einem gespeicherten Bild, ein stiller Debug-Knopf und der HA-Zugang bei den Zugaengen; der Cache-Brecher der Bilder haengt -jetzt am Foto statt am App-Start, `2026.9.4.14`, -Abschnitte CC bis CI. Davor: Geraetezeit statt Ankunftszeit - die Wurzel hinter der 3-km-Fahrt: +jetzt am Foto statt am App-Start; dazu ein Audit mit zwei Befunden in der +Wisch-Zeile und der Auswahlliste der App, `2026.9.4.15`, +Abschnitte CC bis CJ. Davor: Geraetezeit statt Ankunftszeit - die Wurzel hinter der 3-km-Fahrt: das Fahrtfenster stand in Geraetezeit, der Verlauf war nach Ankunftszeit sortiert. Dazu die neun Paritaetsbefunde und die verunreinigte Batteriehistorie, `2026.9.4.1`, Abschnitt CB. Davor: Der Regler stellt den Schlaf-Timeout des Dongles, flespi lesend und schreibend, die eigene Warteschlange wieder entfallen, `2026.9.3.10`, Abschnitt BZ. Davor: Zugaenge: die Dienste-Token aus App und Panel bedienbar, der Wert kommt nie @@ -10166,3 +10167,108 @@ Dazu 6 Regressionstests (`src/screens/bilder.test.ts`): Zeitstempel statt Startzeit, gleich bleibend ohne Aenderung, wechselnd bei Aenderung, `0` fuer ein fehlendes Foto, Rueckfall ohne Staende, und der gemerkte Stand ueber einen Neustart. + +## CJ. Audit vom 04.09.2026: zwei echte Befunde, beide in der App (2026.9.4.15) + +Auftrag des Eigentuemers: Gleichlauf pruefen, Zwischenablage und +Teilen-Erweiterung beurteilen, App und Panel auf Funktion und Fehler abklopfen. + +### Was sauber ist + +29 Backend-Dateien `py_compile`, beide Frontend-Dateien als **Modul** geparst +(Abschnitt AQ), `tsc --noEmit`, 221 Tests, `vite build`. Tabellen in beide +Richtungen abgeglichen, ohne Abweichung: + +| | | +|---|---| +| Dienste | 28 in `const.py`, 28 registriert, 28 in `services.yaml`, 28 Klarnamen | +| Sensorrollen | 27 im Katalog, 27 in der Dataclass, jede mit Beispielnamen, beide Listenfelder mit vier | +| Routen | Panel-Unterseiten und App-Titel decken sich; nur in der App: die fuenf Reiterwurzeln und `live` (LiveFahrt, ohne Panel-Gegenstueck, dokumentiert) | + +**Panel live durchgelaufen**, 47 Seitenaufrufe (fuenf Reiter, alle 17 +Einzelfahrten, alle 16 Einzelbelege, jede Unterseite): **kein einziger +Konsolenfehler**, keine unbehandelte Ablehnung. In der App dasselbe ueber die +angemeldete Sitzung, ebenfalls fehlerfrei. + +**Textgleich zwischen Panel und App** (Vergleich am gerenderten Text): der +Fahrzeugstatus Zeichen fuer Zeichen, die Raeder-Seite bis auf den +Loeschknopf - und genau der war der Befund (unten). Die Einstellungen fuehren +in beiden dieselben acht Abschnitte in derselben Reihenfolge. + +**Bestandspruefung** (18 Fahrten, 16 Tankvorgaenge, 17 Batterietage): keine +0-km-Fahrt, keine negative Strecke, keine doppelte Kennung, keine +Ueberschneidung, kein Ende vor dem Beginn, alle Spannungen in 8-16 V, der +Verlauf sortiert. Einziger Befund sind die drei bekannten Altbelege mit +`odometer_km` als Zeichenkette (`"50250"`, Abschnitt CA) - der Lesepfad faengt +sie ueber `als_kilometerstand()` ab. + +### Befund 1: die Wisch-Zeile der App hatte zwei Absicherungen nicht + +`WischLoeschen` (Raeder-Archiv, gebaut am 02.09.2026) ist der juengere +Zwilling von `SwipeRow` im Design-System - und hat dessen beide Korrekturen +nie bekommen: + +* **Der rote Loeschknopf lag dauerhaft sichtbar unter der Zeile.** Genau daran + hatte das Panel am 16.08.2026 den Haarlinien-Fehler: Zeilenhoehen sind + gebrochen, die Kante faellt nicht auf das Pixelraster, und das Rot blitzt als + duenner Rahmen um jede Zeile durch. Panel und Design-System halten ihn + deshalb `visibility: hidden`, bis wirklich gewischt wird. +* **Der Zeileninhalt war mit `var(--tile)` gemalt** - dem durchscheinenden + Kachelton. Die Zeile liegt aber auf einer Kachel: zweimal derselbe Schleier + ergibt im Nachtmodus einen sichtbar helleren Streifen, und das Rot darunter + scheint durch. Das ist die Regel aus Abschnitt AP, wortgleich schon einmal + aufgetreten. + +Beides behoben (`.dm-wisch--zeigt`, `--tile-deckend`), live im Nachtmodus +nachgemessen: Knopf `hidden`, Zeile `rgb(23,27,33)` (deckend), und „Loeschen" +steht nicht mehr im Text der Seite - wie im Panel. + +### Befund 2: die aufgeklappte Auswahlliste konnte durchscheinen + +`.dm-auswahl option` stand auf `var(--tile)`. Die Liste eines `