- Split long messages at 170 bytes with 1.5s delay between parts
- /mesh: proper sections with line breaks and indentation
- Hop labels: "Direkt", "1 Hop", "2 Hops" instead of "0h", "1h"
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>
- Stats cards compacter with smaller font and padding
- Battery status with Bootstrap Icons and color coding
- Version displayed in navbar from config
- Map fits all nodes on open with invalidateSize
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Central config.yaml with live-reload file watcher
- Configurable command prefix (default: /)
- Light/dark theme toggle with localStorage persistence
- Map: hop-based node coloring with legend, hover tooltips
- Dashboard: node long names, hop column, channel names in messages
- Load existing messages on WebSocket connect
- Weather fallback to Dresden center
- Remove version.py and pre-commit hook
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move all configuration to config.yaml with live-reload (file watcher).
Version is now managed in config.yaml instead of version.py.
Remove pre-commit hook for automatic version bumping.
Pin meshtastic dependency to >=2.7.7.
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>