IP-Test: USB-RJ45-Adapter in Netzwerkdose stecken und sofort IP-Adresse,
DHCP-Server, Gateway und Link-Geschwindigkeit (10/100/1000 Mbit) ablesen.
Auto-Refresh alle 2 s, Speichern mit optionalem Raum/Dose-Name ins Protokoll.
WLAN-Empfangstracker: Netz auswählen und beim Durchgehen live RSSI verfolgen.
Hybrid-Modus: 500 ms Polling bei verbundenem Netz (kein Scan-Throttling),
~30 s Scan-Sweep bei Fremd-BSSID. Sessions mit Samples, Min/Max/Avg und
Sparkline-Verlauf werden im Protokoll gespeichert.
Ersetzt DHCP-Info-Tool und WLAN-Scan-Tool (eigene Routen /iptest/ + /wifi/).
Kotlin-Plugin: linkInfo(), startWifiScan(), startWifiTrack/stop/status().
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Auftragsliste sortiert Aufträge mit lokalen Protokollen/Scans nach oben
(lokale updatedAt), da Dolibarr-tms bei reiner App-Tätigkeit unverändert
bleibt; Standard wieder "nur aktive Aufträge"
- Datumszeile zeigt "zuletzt bearb." aus lokalem Protokoll, sonst Server-tms
- Protokollzähler-Badge berücksichtigt auch lokale (noch nicht gesyncte) Protokolle
- types.ts: neue optionale Felder für kommende Geräte-Features
(Device: isFavorite/customName/openPorts/netbiosName/mdnsName/mdnsServices;
neu SavedScan, MonitorEvent, DeviceMonitorSession; Protocol.savedScans/monitorSessions)
- db.ts: normalizeProtocol ergänzt fehlende Arrays beim Laden alter Protokolle
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Nach einem WebView-Reload lebt die native SQLite-Connection weiter.
createConnection() warf dann 'Connection netdiag already exists' -> initDb()
brach ab -> onMount im Layout brach ab -> die App haengt ewig auf
'NetDiag startet...'.
Fix: vorhandene Verbindung per isConnection/retrieveConnection wiederverwenden,
nur oeffnen wenn noch nicht offen.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>