Die vier letzten offenen Punkte der Roadmap.
SIP-Erreichbarkeit (neues Werkzeug, Kategorie Telefonie)
- Sip.kt: OPTIONS nach RFC 3261 ueber UDP, bei Schweigen TCP nachgeschoben.
Antwortet nur TCP, ist das der Fingerabdruck einer Firewall, die UDP
verwirft - eine andere Reparatur als "Anlage aus".
- sip-bewertung.ts ohne Laufzeit-Import, damit tools/pruefe-sip.mjs die Regeln
direkt nachrechnen kann (14 Faelle + 4 Texte, alle korrekt).
- Leitsatz: JEDE Statuszeile beweist eine antwortende Instanz. 401/407 sind
deshalb gruen mit Hinweis "Anmeldung verlangt" - beim Provider der
Normalzustand. Als Ausfall gemeldet wuerde der Techniker am falschen Ende
suchen.
- RTP-Sprachqualitaet bewusst NICHT: ohne aufgebautes Gespraech nicht ehrlich
messbar. Die Grenze steht im Ergebnis und landet im Kunden-PDF.
Fingerabdruck-Anmeldung (Biometrie.kt, BiometricPrompt + Android-Keystore)
- Der Kern ist nicht der Dialog, sondern was danach passiert: die
Klartextfassung des Tokens wird aus den Capacitor Preferences ENTFERNT.
Vorher stand es offen in CapacitorStorage.xml und war auf einem entsperrten
Geraet ohne Weiteres lesbar - ein zusaetzlich verschluesseltes Token haette
daran nichts geaendert.
- Kein zweiter Faktor: der Finger ersetzt das Passwort (Eddys Vorgabe).
Gueltigkeit und Widerruf bleiben bei awlauth - hinterlegt ist dasselbe Token.
- 401 unterscheidet jetzt "Token abgelehnt" von "gar nicht angemeldet". Ohne
das loeschte der erste Startaufruf die gerade eingerichtete Anmeldung wieder
(im Emulator aufgefallen, Ursache im logcat).
Token nicht mehr in der Adresszeile
- updateDownloadUrl() ohne ?jwt=; der APK-Herunterlader im Plugin schickt
Authorization: Bearer. instanceFollowRedirects=false, sonst ginge der Header
bei einer Weiterleitung an ein fremdes Ziel mit.
- pdfUrl() war seit dem Initialcommit tot (kein Aufrufer) und ist durch
fetchProtocolPdf() ersetzt - Header statt Token in der URL.
Im Emulator geprueft: SIP gegen einen eigenen Responder (200/401/Port zu),
Fingerabdruck vollstaendig durchgespielt (einrichten, Neustart, anmelden,
abbrechen), Speicher jeweils nachgesehen.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Der Browser-Mock liefert bei Netzwerkwerkzeugen grundsaetzlich den guten Fall -
er gibt sogar jedem Geraet eine MAC, die beim Kunden nie ankommt.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Der Abschnitt "Neues Tool hinzufuegen" sagte "Kein Eingriff in App-Logik, Sync
oder Datenbank". Das stimmt fuer Sync und Datenbank, hat aber zweimal zu genau
dem Fehler gefuehrt, der jetzt behoben ist: JEDER neue Ergebnis-Schluessel muss
in BEIDE Feldtabellen (messfelder.ts UND netdiagKundenfelder() im Modul),
sonst verschwindet der Wert im Kunden-PDF spurlos. Steht jetzt als Punkt 4 samt
der Vorgeschichte da.
Ausserdem ergaenzt:
- quickRun beim Hinzufuegen eines Werkzeugs, mit der Begruendung, warum es
ausdruecklich gesetzt und nicht hergeleitet werden darf
- die Pruefwerkzeuge unter tools/ (render-chart, pruefe-monitor, test-recommend)
samt dem Grund fuer render-chart: der Emulator hat keine WLAN-Hardware,
deshalb ging die erste Diagramm-Fassung unbemerkt unlesbar in den Einsatz
- neuer Abschnitt "Ohne Geraet pruefen" (Mock, WLAN-Demomodus, Renderer)
- Architektur-Liste auf den Ist-Stand (monitor.ts, toolparams.ts,
messfelder.ts, wifi/, overlay/toast, die Werkzeug-Unterrouten)
- Mock-Zweig als Pflicht bei neuen nativen Methoden, mit der Begruendung
- Bedienung: Schnellstart und Sprung zum Ergebnis
Aufraeumen vor den eigentlichen Korrekturen — ohne Verhaltensaenderung am Code.
Doppelte Plugin-Quelle:
Die drei Kotlin-Dateien lagen byte-identisch in native-plugin/ UND in
android/app/src/main/java/de/data_it_solution/netdiag/. Gebaut wurde immer nur die
Kopie unter android/ — eine Aenderung an der falschen Datei sah deshalb aus wie
"der Fix wirkt nicht". native-plugin/ enthaelt jetzt nur noch die Anleitung, die
auf den echten Ort verweist.
Doku sagte drei Dinge, die nicht stimmen:
- stresstest.ts behauptete "laeuft nativ als Foreground-Service". Tut es nicht —
im Plugin steht an der Stelle nur ein Kommentar, dass man einen ergaenzen
sollte. Bei ausgeschaltetem Display friert Android den Lauf ein.
- iperf.ts/scanner.ts/README nannten den Durchsatztest "iperf-kompatibel". Er
spricht kein iperf3-Protokoll (kein Cookie, kein Parameterblock) und scheitert
gegen einen echten iperf3-Server.
- ipscan.ts beschrieb sich als "ARP + Ping + Namen". Gefunden wird nur, wer auf
Ping antwortet oder sich per mDNS meldet; die ARP-Tabelle wird lediglich
nachgeschlagen und ist ab Android 10 meist gar nicht lesbar.
Statt der falschen Zusagen stehen dort jetzt die tatsaechlichen Grenzen plus
Verweis auf die Phase, die sie behebt.
README: DHCP-Check und WLAN-Scan als Werkzeuge entfernt (sind nicht mehr in
tools/index.ts registriert, tauchen aber in alten Protokollen noch auf).
Geprueft: vite build ok, svelte-check 0 Fehler (2 vorbestehende Warnungen).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>