Skip to content

v0.7

Choose a tag to compare

@agessaman agessaman released this 11 Jan 19:35
· 488 commits to main since this release
357fc86

Release Notes

New Features

  • Service Plugin Architecture: Implemented service plugin system for background services that run alongside the bot
  • Packet Capture Service: Captures packets from MeshCore network and publishes to MQTT brokers for analyzer.letsmesh.net
  • Map Uploader Service: Uploads node adverts to map.meshcore.dev with signed data authentication
  • Weather Service: Scheduled weather forecasts, NOAA alert monitoring, and regional lightning detection via MQTT
  • Discord Bridge: New service plugin to post channel messages to Discord with message queuing and rate limiting for webhook posts
  • Command Enable/Disable: Individual commands can now be enabled/disabled via configuration
  • Sports Data Clients: Added ESPN and TheSportsDB API clients for sports command functionality
  • System Health Monitoring: New /api/system-health endpoint for system status reporting
  • Minimal Configuration: New config.ini.minimal-example for users who only need core testing commands
  • Announcements Command: New command for admin triggered announcements
  • Magic 8 Command: Added magic 8-ball command for fun responses (thanks @lincomatic)
  • Enhanced Packet Decoding: Web viewer packet stream now supports packet analysis using meshcore-decoder
  • Nix/NixOS Support: Added Nix flake infrastructure with NixOS module for declarative system-wide deployments (thanks @tbaumann)
  • Web Viewer NixOS Option: Added services.meshcore-bot.webviewer.enable option for NixOS deployments (thanks @tbaumann)

Bug Fixes

  • Segfault Prevention: Fixed potential segfaults by deep copying event payloads in ChannelManager and service plugins
  • Path Decoding: Fixed path decoding logic to better handle single nodes and hex values
  • Weather Emoji Truncation: Improved weather string handling to prevent emoji truncation
  • Database Connections: Fixed database connection handling and timeout issues
  • Keyword Reporting: Fixed keyword reporting to web viewer
  • Error Handling: Improved error handling and logging across multiple modules

Improvements

  • Python Packaging: Migrated to pyproject.toml with proper entry points (meshcore-bot, meshcore-viewer) (thanks @tbaumann)
  • Code Quality: Added type hints and docstrings across modules
  • Cooldown Management: Refactored to centralized cooldown tracking system in BaseCommand
  • Location Resolution: Improved location name resolution from database using public keys
  • Weather Data: Improved weather forecast formatting and data retrieval in international weather command
  • Async Handling: Improved asyncio event loop handling to prevent deadlocks
  • Internet Connectivity: Implemented thread-safe caching for internet connectivity status
  • MQTT Handling: Improved non-blocking MQTT connection handling in service plugins
  • Logging: Added rotating file handlers and improved error reporting
  • Web Viewer: Improved stability by logging stdout/stderr to files instead of PIPE
  • Database Management: Optimized database cleanup with smaller batch deletions to reduce lock contention
  • Message Processing: Improved message content processing by stripping trailing whitespace
  • Help Command: Added dynamic command list based on usage statistics

Configuration Changes

  • Added --config parameter support for both main bot and web viewer
  • New service plugin configuration sections: [PacketCapture], [MapUploader], [Weather_Service], [Discord_Bridge]
  • Added db_path configuration options for web viewer
  • Updated JWT renewal interval to 24 hours
  • Added command-specific enable/disable options

Dependencies

  • Added: urllib3>=2.0.0, paho-mqtt>=1.6.0, cryptography>=41.0.0, pynacl>=1.5.0
  • Updated Python dependencies across the board

New Contributors

Full Changelog: v0.6.1...v0.7