INSERT OR IGNORE + UPDATE statt SELECT → INSERT eliminiert den
UNIQUE-constraint-Fehler bei konkurrierenden async-Aufrufen.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- database.path in config.yaml: meshdd.db → data/meshdd.db
- data/.gitkeep: Verzeichnis in Git verankert, *.db-wal/shm gitignored
- database.py: PRAGMA wal_checkpoint(FULL) vor db.close() für sauberes Schließen
- main.py: Shutdown-Schritte einzeln mit try/except gekapselt;
db.close() wird jetzt auch bei Fehlern in vorherigen Schritten ausgeführt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Badge-Styling: bg-secondary-subtle/text-secondary-emphasis statt bg-secondary
→ lesbar in Light- und Dark-Mode
- {nodes_online}: Nodes < 15 Min last_seen (DB-Abfrage in get_stats())
- {version}: Bot-Version aus config.yaml via config.get()
Closes#15.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
get_stats() filtert TELEMETRY_APP-Pakete des eigenen Nodes wenn my_node_id
übergeben wird – konsistent mit isSuppressed() im Paket-Log-Frontend.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Version in Navbar aller Seiten (app.js holt /api/stats beim Init)
- Statistiken: Anfragen-Zähler rolling 24h statt Mitternacht-Reset
- Karte: Nodes nach Alter transparent (<24h voll, 24-48h 45%, 48-72h 20%, >72h unsichtbar)
- Legende um Alter-Sektion erweitert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rollen-basiertes Zugriffsystem (public/user/admin), Registrierung mit
E-Mail-Verifikation, bcrypt Passwort-Hashing, Admin-Benutzerverwaltung.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Track bot command responses in new `commands` DB table
- Stats cards: total nodes, active 24h, total commands answered
- Full-width command breakdown row with badges per command
- Update bot /stats response
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements full MeshDD-Bot with TCP connection to Meshtastic devices,
SQLite storage for nodes/messages, aiohttp web dashboard with WebSocket
live updates, and Leaflet.js map view with color-coded node markers.
Includes bot commands (!ping, !nodes, !info, !help, !weather, !stats,
!uptime) and automatic version bumping via pre-commit hook.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>