MESH-API v0.6.0 FULL RELEASE #57
Pinned
mr-tbot
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
v0.6.0 (Full Release)
⚠️ The extensions system and all corresponding extensions are new and largely untested. Please report any issues on GitHub so they may be investigated and addressed.
Bug Fixes
#53 — Home Assistant interface stale after reconnect — The app_context["interface"] reference is now refreshed after every successful reconnect, preventing None errors in HA and other extensions. Thanks to @InstigatorX for reporting. (GitHub Issue #53)
#51 — AI channel reply routing — Added detailed dispatch logging to trace AI reply routing across channels and DMs. Verified the routing logic correctly respects respond_to_broadcast_messages, respond_to_dms, and ai_respond_on_longfast flags. Thanks to @droidblastnz for reporting. (GitHub Issue #51)
#44 — Stability improvements — Smart word‑boundary message chunking (never splits mid‑word), requests.Session() connection pooling for Ollama calls, num_predict parameter to cap AI token generation, cross‑platform OSError handling with specific error code checks (errno 19, 32, 107, 108, 110). Thanks to @omgitsgela for reporting. (GitHub Issue #44)
New Features
Interactive Node Map — Leaflet.js map view with colored markers for all GPS‑enabled nodes. Dark mode (CARTO dark tiles) and light mode (OpenStreetMap) selectable in settings. Offline detection with a banner notice when tiles are unavailable. Connected node shown as a green circle. Popups display node name, hex ID, last heard, hop count, DM button, and Google Maps link.
Collapsible Channel Groups — Channel messages are now grouped by channel name. Each group has a clickable 📻 header that expands/collapses the messages. Unread message counts shown as orange pill badges.
Draggable Dashboard Layout — All major dashboard sections (Send Form, Node Map, Message Panels, Discord) can be reordered via ☰ drag handles. The three message columns (DMs, Channels, Nodes) are independently sortable. Sections can be hidden/shown from the UI Settings panel. Layout order persists in localStorage.
Five Built‑in Notification Sounds — Two‑Tone Beep, Triple Chirp, Alert Chime, Sonar Ping, Radio Blip generated via Web Audio API. Separate sound assignments for DMs, channels, and per‑node. Per‑node sounds use a dropdown populated from available nodes. Custom sound file upload also supported. Test button and volume slider in the settings panel.
Compact Settings Panel — UI Settings redesigned as a two‑column grid with emoji‑labeled sections (⚙️ UI Settings). Includes button theme color, section colors, dark/light map style, hue rotation, section visibility toggles, and an About section with links to Meshtastic, MeshCore, and project resources.
Node Enhancements — DM, PING, and PONG buttons shown for every node. Show on Map (fly‑to) and Google Maps buttons on the same line. Last‑heard time displayed with 📡 icon. Node items rendered as rounded cards with hover effects.
Emoji Section Headers — All dashboard panels now have emoji prefixes: ✉️ Send a Message, 🗺️ Node Map, 💬 Message Panels, 📨 Direct Messages, 📡 Channel Messages, 📋 Available Nodes, 🎮 Discord Messages.
Differentiated Send Buttons — Send, Reply to Last DM, and Reply to Last Channel buttons now have distinct colors (green, blue, purple) for quick visual identification.
Welcome Setup Guide — Initial popup changed from beta disclaimer to a friendly setup guide with configuration steps and links to documentation.
Report a Bug — Footer button links directly to GitHub Issues for easy bug reporting.
Visual Overhaul
CSS custom properties (--bg-primary, --bg-panel, --bg-input, --text-primary, --text-muted, --border-radius) for consistent theming.
Segoe UI font stack, smooth transitions, hover effects on panels/messages/nodes.
Mobile‑responsive breakpoints: collapsible map, stacked masthead, footer, and send form at ≤600px.
"❤️ Support this Developer" PayPal donation button added to the footer alongside the version badge.
Updated Dependencies
protobuf 6.33.5 → 7.34.0
meshtastic 2.7.7 → 2.7.8
Flask 3.1.2 → 3.1.3
twilio 9.10.1 → 9.10.2
bleak ≥0.22.0 → ≥2.1.1
meshcore ≥2.2.0 → ≥2.2.30
v0.6.0 RC1 (Release Candidate 1)
WebUI Extensions Manager
New "Extensions" button in the dashboard toolbar opens a full Extensions Manager modal.
View all available extensions with color-coded status indicators (green=active, yellow=enabled but not loaded, grey=disabled).
Enable/disable extensions directly from the WebUI — toggles are saved to each extension's config.json.
Inline JSON config editor for each extension — edit and save any extension's configuration without touching the filesystem.
Hot-Reload button to live-reload all extensions without restarting the server.
New REST API endpoints: GET /extensions/status, GET/PUT /extensions/config/, POST /extensions/toggle/, POST /extensions/reload.
Incoming Message Sound — Fixed & Improved
The notification sound system has been completely rewritten. Previously, the element was configured but .play() was never called — sounds were non-functional.
New built-in two-tone notification beep using the Web Audio API (no external files required).
Sound plays automatically when new inbound messages arrive (not for outgoing/WebUI/system messages).
New UI Settings controls: enable/disable toggle, volume slider, sound type selector (built-in beep vs. custom file), and a "Test Sound" button.
First page load silently seeds the seen-message set so existing messages don't trigger sounds.
Config Modal Alignment
Updated config editor help text to reflect the new extension system — removed legacy Discord/Home Assistant references from config.json help.
Added note directing users to the Extensions button for extension configuration.
Docker Preparation
Updated Dockerfile to include the extensions/ directory and all built-in extensions.
Updated docker-compose.yml with optional extensions volume mount.
Docker images coming with the full v0.6.0 release!
Version Bump
Updated all version references (banner, footer, README, scripts) to v0.6.0 RC1.
Plugin-Based Extensions System
Brand new drop-in plugin architecture with 26+ built-in extensions across 5 categories: Communication, Notifications, Emergency/Weather, Ham Radio/Off-Grid, and Smart Home.
Extensions can register slash commands, react to emergencies, observe all mesh messages, expose HTTP endpoints via Flask, and run background polling threads.
Each extension is fully self-contained with its own config.json — no core code changes required to add, remove, or configure extensions.
New /extensions mesh command to list all loaded extensions and their status.
12 AI Providers
Added support for Claude, Gemini, Grok, OpenRouter, Groq, DeepSeek, Mistral, and a generic OpenAI-compatible endpoint option — in addition to existing LM Studio, OpenAI, Ollama, and Home Assistant providers.
All OpenAI-compatible providers share a unified helper for consistent behavior and error handling.
Extension Categories
Communication (12): Discord, Slack, Telegram, Matrix, Signal, Mattermost, Zello, MQTT, Webhook Generic, IMAP, Mastodon, n8n
Notifications (5): Apprise, Ntfy, Pushover, PagerDuty, OpsGenie
Emergency/Weather (6): NWS Alerts, OpenWeatherMap, USGS Earthquakes, GDACS, Amber Alerts, NASA Space Weather
Ham Radio/Off-Grid (3): Winlink, APRS, BBS (SQLite store-and-forward)
Smart Home (1): Home Assistant (AI provider extension)
Backward Compatibility
Legacy Discord and Home Assistant configuration keys in the main config.json are automatically migrated to their respective extension configs on first load.
Old configs should work out of the box with the new extension system.
Developer Documentation
Full extension development guide with base class API reference, step-by-step tutorial, hook reference, configuration patterns, Flask route examples, background thread patterns, best practices, and troubleshooting.
v0.6.0 Pre-Release 3 (PR3)
New /nodes-XY command
Reports online nodes (heard within the last window) and total known nodes.
Online window config
New nodes_online_window_sec setting controls the online window (default 2 hours).
Ollama stability limit
New ollama_max_parallel setting caps concurrent Ollama requests (default 1).
AI command matching improvements
/ai-XY works reliably in channels; legacy /aiXY is also accepted for compatibility.
v0.6.0 Pre-Release 2 → Pre-Release 3
Mesh safety defaults
LongFast (channel 0) responses are OFF by default; enable ai_respond_on_longfast only if your mesh agrees.
MQTT response gating: new respond_to_mqtt_messages flag (default false) to prevent multiple servers from replying at once over MQTT.
Community note: Using AI bots on public LongFast channels is generally frowned upon because it increases congestion for everyone. The toggle remains available for isolated/private deployments or special cases, but it is off by default.
Bot‑loop prevention
All AI replies now start with a tiny fixed marker m@i (≤ 3 chars). Other MESH‑AI instances ignore messages that begin with this marker.
Each instance also remembers node IDs that send AI‑tagged messages and ignores further requests from those nodes to mitigate bot‑to‑bot chatter.
User‑initiated only
No features are planned that allow the AI to auto‑respond to “join/arrive” events or otherwise talk without an explicit message from a legitimate user.
Per‑install command alias
On first run, a randomized alias (e.g. /ai-9z) is generated and saved as ai_command in config.json. Use it to avoid collisions; you can change it anytime.
Strongly encouraged: customize your commands in commands_config.json to minimize collisions on shared meshes/MQTT.
No chain‑of‑thought on mesh
A global sanitizer removes any “thinking”/reasoning content before sending. This includes XML‑style tags (e.g. …), fenced blocks, YAML/JSON meta fields, and heading lines.
Applied consistently across all providers (LM Studio, OpenAI, Ollama) and Home Assistant so only final answers are transmitted.
Ollama reliability
Added keep‑alive and request options, simple retries on transient failures, and response normalization plus sanitization for cleaner output.
WebUI
Fixed ticker behavior: it now correctly honors read/unread state for both DMs and channel messages, and dismissals persist across refreshes.
Refined layout: Direct Messages, Channel Messages, and Available Nodes order; mobile stacking with 3‑wide desktop; controls moved to the “Send a Message” header (top‑right).
New Commands modal overlay: quickly view available commands and descriptions (via the Commands button). Backed by a lightweight JSON endpoint (/commands_info).
Scrollable panels with sensible max heights; on mobile, each panel can be collapsed/expanded for easier navigation.
Footer badge: "MESH-API v0.6.0" and "by: MR-TBOT".
Emoji reactions: every message now includes a React button that toggles a hidden emoji picker; picking an emoji auto‑sends a reaction (works for both DMs and channel messages).
Quick Emoji bar: the “Send a Message” form includes common emojis; clicking inserts into your draft at the cursor without auto‑sending.
Reaction feedback: React buttons show Sending/Sent/Failed states and temporarily disable during send to prevent accidental double‑presses.
Docs & help
Updated README and in‑app /help to highlight safety defaults, MQTT gating, and your unique alias.
New config keys summarized above; defaults favor safety and reduce congestion.
This discussion was created from the release MESH-API v0.6.0 FULL RELEASE.
Beta Was this translation helpful? Give feedback.
All reactions