Files
MeshCore-Posadmesh/release-notes.yml
T

636 lines
33 KiB
YAML

schema_version: 1
tracks:
- companion-wifi
- repeater-bridge-espnow
- observer-eastmesh
- observer-eastmesh-bridge-espnow
generated_from: "Adjacent git tag comparisons plus non-merge commit subjects."
releases:
- track: companion-wifi
version: "1.14.1"
tag: "companion-wifi-v1.14.1"
date: "2026-04-09"
previous_version: null
summary: "First EastMesh companion_wifi release with persisted Wi-Fi CLI settings and EastMesh-specific docs and release plumbing."
changes:
- type: added
area: companion-wifi
text: "Added the EastMesh companion_wifi release track for supported boards."
- type: added
area: wifi
text: "Added persisted Wi-Fi CLI settings so companion Wi-Fi devices can retain configured credentials across restart."
- type: added
area: release
text: "Added EastMesh release documentation, local build guidance, and CI workflows focused on the supported Wi-Fi and MQTT firmware tracks."
- type: changed
area: docs
text: "Refreshed the docs site structure and theme as part of the first EastMesh release set."
breaking_changes: []
- track: companion-wifi
version: "1.15.0"
tag: "companion-wifi-v1.15.0"
date: "2026-04-19"
previous_version: "1.14.1"
summary: "Prepares the next companion_wifi release on top of upstream MeshCore firmware v1.15.0."
changes:
- type: changed
area: upstream
text: "Updated the companion_wifi firmware base to upstream MeshCore v1.15.0."
breaking_changes: []
- track: companion-wifi
version: "1.16.0"
tag: "companion-wifi-v1.16.0"
date: "2026-06-07"
previous_version: "1.15.0"
summary: "Updates companion WiFi firmware to upstream MeshCore v1.16.0."
changes:
- type: changed
area: upstream
text: "Updated the companion WiFi firmware base to upstream MeshCore v1.16.0."
- type: changed
area: board
text: "Included upstream board, UI, power-saving, and platform fixes from MeshCore dev."
breaking_changes: []
- track: companion-wifi
version: "1.17.0"
tag: "companion-wifi-v1.17.0"
date: "2026-08-09"
previous_version: "1.16.0"
summary: "Updates companion WiFi firmware to upstream MeshCore v1.17.0 with the new key-based settings format, interface manager, and a recovery access point for fixing Wi-Fi credentials without a serial cable."
changes:
- type: changed
area: upstream
text: "Updated the companion WiFi firmware base to upstream MeshCore v1.17.0."
- type: added
area: wifi
text: "Added a recovery access point: when the device has no Wi-Fi credentials or cannot connect for 60 seconds, it broadcasts `EastMesh-WiFi` (WPA2 password = the device pin zero-padded to 8 digits) and shuts the AP down automatically once the configured network connects."
- type: added
area: cli
text: "Exposed the rescue CLI over TCP port 23 on the recovery AP (`telnet 192.168.4.1`), so `set wifi.ssid`, `set wifi.pwd`, and `reboot` work without a serial cable."
- type: added
area: wifi
text: "The companion app works over the recovery AP too: connect to host `192.168.4.1` port `5000` for full app connectivity while roaming away from the configured network."
- type: added
area: wifi
text: "Gave companion WiFi builds the BLE-style device pin rules: displays show a per-session `Pin:NNNNNN` on the home screen, headless devices default to pin `123456` (AP password `00123456`), and `set pin` overrides both persistently."
- type: fixed
area: wifi
text: "Kept the recovery AP joinable by pausing constant station rescans while it is up (they broke joining clients' WPA2 handshakes, which phones report as a wrong password); the configured network is retried once a minute instead."
- type: changed
area: prefs
text: "Moved saved node settings to upstream's new key-based `prefs.json` format; existing settings, including persisted Wi-Fi credentials, are migrated automatically on first boot."
- type: changed
area: wifi
text: "Adopted upstream's new interface manager so BLE, Wi-Fi, USB, and serial companion connections are handled uniformly, while keeping Wi-Fi credentials configurable at runtime."
- type: changed
area: board
text: "Included upstream board, radio, display, UI, and platform fixes from MeshCore dev, including new board support and LR2021 radio groundwork."
breaking_changes:
- "Saved settings move to the new `prefs.json` format on first boot; downgrading to earlier firmware afterwards reverts the device to the old (pre-migration) settings file."
- track: repeater-bridge-espnow
version: "1.15.0"
tag: "repeater-bridge-espnow-v1.15.0"
date: "2026-05-05"
previous_version: null
summary: "Adds a tagged release workflow for upstream-versioned repeater ESP-NOW bridge firmware artifacts."
changes:
- type: added
area: release
text: "Added the `repeater-bridge-espnow-v*` release tag format and workflow for building repeater ESP-NOW bridge firmware artifacts using the official upstream MeshCore version."
- type: fixed
area: build
text: "Kept pure ESP-NOW bridge targets out of the web-panel link path so they no longer fail with unresolved web service symbols."
- type: docs
area: release
text: "Updated release guidance to document the repeater ESP-NOW bridge tag format and versioning rule."
breaking_changes: []
- track: repeater-bridge-espnow
version: "1.16.0"
tag: "repeater-bridge-espnow-v1.16.0"
date: "2026-06-07"
previous_version: "1.15.0"
summary: "Updates repeater ESP-NOW bridge firmware to upstream MeshCore v1.16.0."
changes:
- type: changed
area: upstream
text: "Updated the repeater ESP-NOW bridge firmware base to upstream MeshCore v1.16.0."
- type: changed
area: board
text: "Included upstream board, radio, UI, and platform fixes from MeshCore dev."
breaking_changes: []
- track: repeater-bridge-espnow
version: "1.17.0"
tag: "repeater-bridge-espnow-v1.17.0"
date: "2026-08-09"
previous_version: "1.16.0"
summary: "Updates repeater ESP-NOW bridge firmware to upstream MeshCore v1.17.0 with the new key-based settings format."
changes:
- type: changed
area: upstream
text: "Updated the repeater ESP-NOW bridge firmware base to upstream MeshCore v1.17.0."
- type: changed
area: prefs
text: "Moved saved node settings to upstream's new key-based `prefs.json` format; existing settings, including bridge configuration, are migrated automatically on first boot."
- type: changed
area: board
text: "Included upstream board, radio, display, and platform fixes from MeshCore dev, including new board support and an external watchdog manager."
breaking_changes:
- "Saved settings move to the new `prefs.json` format on first boot; downgrading to earlier firmware afterwards reverts the device to the old (pre-migration) settings file."
- track: observer-eastmesh
version: "2026.5.1"
tag: "observer-eastmesh-v2026.5.1"
date: "2026-05-23"
previous_version: "1.4.0"
summary: "Renames the EastMesh MQTT repeater release track and PlatformIO targets to Observer naming."
changes:
- type: changed
area: release
text: "Renamed the EastMesh MQTT release tag format from `repeater-mqtt-eastmesh-v*` to `observer-eastmesh-v*`."
- type: changed
area: build
text: "Renamed `*_repeater_mqtt` PlatformIO environments and release artifact prefixes to `*_repeater_observer`."
- type: docs
area: docs
text: "Updated EastMesh release, local build, board, web panel, API, and CLI documentation to use Observer naming."
breaking_changes:
- "The EastMesh MQTT release tag format and PlatformIO target suffix changed to Observer naming."
- track: observer-eastmesh
version: "2026.6.0"
tag: "observer-eastmesh-v2026.6.0"
date: "2026-06-03"
previous_version: "2026.5.1"
summary: "Updates Observer firmware with the latest upstream MeshCore dev changes plus EastMesh web panel, MQTT, radio, and board support fixes."
changes:
- type: added
area: mqtt
text: "Added configurable custom MQTT broker support alongside the curated EastMesh and LetsMesh endpoints."
- type: added
area: build
text: "Added Station G3 ESP32 Observer firmware targets."
- type: added
area: cli
text: "Added `flood.max.unscoped` so unscoped flood packets can use a separate hop limit from scoped flood traffic."
- type: fixed
area: web
text: "Preserved web panel sessions across Wi-Fi reconnects and hardened OTA startup from the local web panel."
- type: fixed
area: radio
text: "Hardened LilyGo T-Beam 1W radio setup and restored the missing SX126x register patch."
- type: changed
area: upstream
text: "Merged upstream MeshCore dev updates including sensor handling, RAK4631 BME680/BSEC support, documentation refreshes, and board/platform fixes."
breaking_changes: []
- track: observer-eastmesh
version: "2026.6.1"
tag: "observer-eastmesh-v2026.6.1"
date: "2026-06-07"
previous_version: "2026.6.0"
summary: "Updates Observer firmware to upstream MeshCore v1.16.0 with flood-advert controls and board/platform fixes."
changes:
- type: added
area: cli
text: "Added `flood.max.advert` so flooded advert packets can use their own hop limit."
- type: changed
area: upstream
text: "Merged upstream MeshCore v1.16.0 dev updates including companion UI, board, radio, power-saving, documentation, and platform fixes."
- type: docs
area: docs
text: "Updated EastMesh custom CLI docs for the new `flood.max.advert` command."
breaking_changes: []
- track: observer-eastmesh
version: "2026.6.2"
tag: "observer-eastmesh-v2026.6.2"
date: "2026-06-07"
previous_version: "2026.6.1"
summary: "Improves Observer boot reliability, T-Beam S3 Supreme telemetry, Wi-Fi/OTA persistence, and web-panel archive maintenance."
changes:
- type: fixed
area: board
text: "Fixed LilyGo T-Beam S3 Supreme BME280 detection and live telemetry by using the board-detected address, stop-based I2C reads, and board-specific I2C bus recovery before samples."
- type: fixed
area: web
text: "Changed live `/stats` sensor values to use the main-loop sensor snapshot instead of reading I2C sensors from the web request handler."
- type: fixed
area: wifi
text: "Improved boot-time Wi-Fi startup by starting Wi-Fi earlier on T-Beam S3 Supreme, remembering the last connected AP channel, and falling back to full scan if that channel is stale."
- type: fixed
area: wifi
text: "Added NVS-backed Wi-Fi preference recovery so SSID and password survive OTA updates even if the filesystem preference file is lost."
- type: fixed
area: wifi
text: "Hardened Wi-Fi retry handling so scan-mode connects are not interrupted early and failed attempts reset the ESP32 station state before retrying."
- type: fixed
area: cli
text: "Fixed `set wifi.powersaving none` returning an error when Wi-Fi power saving was already disabled."
- type: fixed
area: archive
text: "Bounded archive neighbour restore and history reads so large SD-card archive files no longer slow boot unnecessarily."
- type: added
area: web
text: "Added a web-panel and CLI SD purge action for clearing archive contents from supported SD-card targets."
- type: fixed
area: web
text: "Hardened OTA startup by binding before reporting success and falling back to alternate ports when port 80 is still being released."
breaking_changes: []
- track: observer-eastmesh
version: "2026.6.3"
tag: "observer-eastmesh-v2026.6.3"
date: "2026-06-09"
previous_version: "2026.6.2"
summary: "Adds secure WebSocket transport support for custom MQTT brokers from the Observer web panel and CLI."
changes:
- type: added
area: mqtt
text: "Added TCP/WSS transport selection for custom MQTT brokers while keeping custom broker authentication to username and password only."
- type: fixed
area: mqtt
text: "Verified custom MQTT WSS connections with the ESP-IDF x509 root CA bundle and the fixed `/mqtt` WebSocket path."
- type: fixed
area: mqtt
text: "Configured custom MQTT WSS using a full `wss://host:port/mqtt` URI so ESP-MQTT handles the WebSocket connection consistently."
- type: changed
area: cli
text: "Updated `get mqtt.status` to show the custom MQTT transport and state, for example `custom:wss:up`."
- type: docs
area: docs
text: "Documented custom MQTT TCP/WSS configuration in the web panel and custom CLI guides."
breaking_changes: []
- track: observer-eastmesh
version: "2026.6.4"
tag: "observer-eastmesh-v2026.6.4"
date: "2026-06-23"
previous_version: "2026.6.3"
summary: "Replaces the retired LetsMesh brokers with the MeshMapper broker and reworks broker selection into Primary and Secondary slots."
changes:
- type: added
area: mqtt
text: "Added the `meshmapper` curated broker (`wss://mqtt.meshmapper.net:443/mqtt`) using WSS, verified TLS, and MeshCore JWT authentication with the broker host as the token audience."
- type: added
area: cli
text: "Added `get mqtt.meshmapper` and `set mqtt.meshmapper on|off` to toggle the MeshMapper broker."
- type: changed
area: mqtt
text: "Retired the unmaintained LetsMesh EU/US brokers: they remain selectable but are marked retired, and saved selections are cleared once on upgrade so dead brokers stop retrying."
- type: changed
area: web
text: "Replaced the EastMesh and LetsMesh sliders and the custom MQTT toggle with Primary and Secondary broker dropdowns that enforce the two-broker maximum and reveal custom host, username, and password fields when Custom is selected."
- type: changed
area: cli
text: "Shortened `get mqtt.status` to report the two active broker slots as `p:<broker>:<state>` and `s:<broker>:<state>` so the reply stays within the LoRa text limit."
- type: docs
area: docs
text: "Updated the README, web panel, and custom CLI guides for MeshMapper and the Primary/Secondary broker layout."
breaking_changes:
- "`get mqtt.status` output changed from per-broker fields to `p:`/`s:` broker slots; anything parsing the previous format must be updated."
- "Saved LetsMesh EU/US broker selections are cleared once on upgrade; re-enable a broker such as MeshMapper if a second uplink is required."
- track: observer-eastmesh
version: "2026.6.5"
tag: "observer-eastmesh-v2026.6.5"
date: "2026-06-26"
previous_version: "2026.6.4"
summary: "Adds the Waev curated MQTT broker and makes the Custom MQTT settings panel full width when Custom is selected."
changes:
- type: added
area: mqtt
text: "Added the `waev` curated broker (`wss://mqtt.waev.app:443/mqtt`) using WSS, verified TLS, and MeshCore JWT authentication with the broker host as the token audience."
- type: added
area: cli
text: "Added `get mqtt.waev` and `set mqtt.waev on|off` to toggle the Waev broker."
- type: added
area: mqtt
text: "Added per-broker JWT token lifetimes so Waev receives a 1-hour token to match its shorter maximum token lifetime."
- type: fixed
area: web
text: "Made the Custom MQTT settings panel span the full width of the MQTT Servers card when Custom is selected."
- type: docs
area: docs
text: "Documented the Waev broker in the README and custom CLI guides."
breaking_changes: []
- track: observer-eastmesh
version: "2026.6.6"
tag: "observer-eastmesh-v2026.6.6"
date: "2026-06-27"
previous_version: "2026.6.5"
summary: "Adds cumulative packet counters to the MQTT status payload so brokers receive radio TX/RX totals."
changes:
- type: added
area: mqtt
text: "Added `packets_sent` and `packets_received` counters to the MQTT `status` payload `stats` object, reporting cumulative radio TX/RX packet totals to align with the Waev/MeshMapper status schema."
breaking_changes: []
- track: observer-eastmesh
version: "2026.7.0"
tag: "observer-eastmesh-v2026.7.0"
date: "2026-07-19"
previous_version: "2026.6.6"
summary: "Syncs Observer firmware with the latest upstream MeshCore dev changes, realigns saved settings storage with upstream, and restores EastMesh/MeshMapper broker TLS trust."
changes:
- type: changed
area: upstream
text: "Merged upstream MeshCore dev updates including power-off/deep-sleep improvements, SX1262 LDO support, hardware channel-activity detection, radio gain fixes, and board/platform fixes."
- type: fixed
area: prefs
text: "Realigned saved node settings to upstream byte offsets and moved EastMesh-specific fields behind a reserved gap so future upstream syncs no longer shift or corrupt them."
- type: fixed
area: mqtt
text: "Restored EastMesh and MeshMapper broker TLS trust after mqtt2.eastmesh.au moved from Let's Encrypt to a Google Trust Services certificate."
- type: changed
area: build
text: "Bumped CI build and docs workflows to Python 3.13."
breaking_changes:
- "The saved settings layout changed; devices upgrading from 2026.6.6 or earlier may need EastMesh-specific settings (such as fan control and bridge peer) and recently added radio settings reconfigured."
- track: observer-eastmesh
version: "2026.8.0"
tag: "observer-eastmesh-v2026.8.0"
date: "2026-08-09"
previous_version: "2026.7.0"
summary: "Updates Observer firmware to upstream MeshCore v1.17.0 with the new key-based settings format and fixes the web panel becoming unreachable after long uptimes."
changes:
- type: changed
area: upstream
text: "Merged upstream MeshCore v1.17.0 including new board support, ethernet interface groundwork, LR2021 radio support, display and UI improvements, and platform fixes."
- type: changed
area: prefs
text: "Moved saved node settings to upstream's new key-based `prefs.json` format; existing settings, including EastMesh fan control and bridge peer configuration, are migrated automatically on first boot."
- type: fixed
area: web
text: "Fixed the web panel refusing connections (browser `PR_CONNECT_RESET_ERROR`) after long uptimes by evicting stale keep-alive connections instead of letting vanished clients permanently occupy the connection pool."
breaking_changes:
- "Saved settings move to the new `prefs.json` format on first boot; downgrading to earlier firmware afterwards reverts the device to the old (pre-migration) settings file."
- track: observer-eastmesh
version: "2026.8.1"
tag: "observer-eastmesh-v2026.8.1"
date: "2026-08-09"
previous_version: "2026.8.0"
summary: "Hardens T-Beam S3 Supreme display bring-up so a failed boot-time OLED probe can no longer crash-loop the node."
changes:
- type: fixed
area: board
text: "Restored the proven T-Beam S3 Supreme SH1106 bring-up order (initialise the display before probing the bus, which can NAK cold probes on this board) so the OLED reliably comes up at boot."
- type: fixed
area: board
text: "Made a failed or absent SH1106 display boot the node headless instead of crash-looping: display operations are now safe no-ops when the boot-time initialisation did not succeed."
breaking_changes: []
- track: observer-eastmesh-bridge-espnow
version: "2026.5.1"
tag: "observer-eastmesh-bridge-espnow-v2026.5.1"
date: "2026-05-23"
previous_version: "1.4.0"
summary: "Renames the EastMesh MQTT bridge release track and PlatformIO targets to Observer ESP-NOW naming."
changes:
- type: changed
area: release
text: "Renamed the EastMesh MQTT bridge release tag format from `repeater-mqtt-bridge-eastmesh-v*` to `observer-eastmesh-bridge-espnow-v*`."
- type: changed
area: build
text: "Renamed `*_repeater_mqtt_bridge` PlatformIO environments and release artifact prefixes to `*_repeater_observer_espnow`."
- type: docs
area: docs
text: "Updated EastMesh release, local build, board, and CLI documentation to use Observer ESP-NOW naming."
breaking_changes:
- "The EastMesh MQTT bridge release tag format and PlatformIO target suffix changed to Observer ESP-NOW naming."
- track: observer-eastmesh-bridge-espnow
version: "2026.6.0"
tag: "observer-eastmesh-bridge-espnow-v2026.6.0"
date: "2026-06-03"
previous_version: "2026.5.1"
summary: "Updates Observer ESP-NOW bridge firmware with the latest upstream MeshCore dev changes plus EastMesh radio, web, MQTT, and board support fixes."
changes:
- type: added
area: mqtt
text: "Added configurable custom MQTT broker support alongside the curated EastMesh and LetsMesh endpoints."
- type: added
area: build
text: "Added Station G3 ESP32 Observer ESP-NOW firmware targets."
- type: added
area: cli
text: "Added `flood.max.unscoped` so unscoped flood packets can use a separate hop limit from scoped flood traffic."
- type: fixed
area: web
text: "Preserved web panel sessions across Wi-Fi reconnects and hardened OTA startup from the local web panel."
- type: fixed
area: radio
text: "Hardened LilyGo T-Beam 1W radio setup and restored the missing SX126x register patch."
- type: changed
area: upstream
text: "Merged upstream MeshCore dev updates including sensor handling, RAK4631 BME680/BSEC support, documentation refreshes, and board/platform fixes."
breaking_changes: []
- track: observer-eastmesh-bridge-espnow
version: "2026.6.1"
tag: "observer-eastmesh-bridge-espnow-v2026.6.1"
date: "2026-06-07"
previous_version: "2026.6.0"
summary: "Updates Observer ESP-NOW bridge firmware to upstream MeshCore v1.16.0 with flood-advert controls and board/platform fixes."
changes:
- type: added
area: cli
text: "Added `flood.max.advert` so flooded advert packets can use their own hop limit."
- type: changed
area: upstream
text: "Merged upstream MeshCore v1.16.0 dev updates including companion UI, board, radio, power-saving, documentation, and platform fixes."
- type: docs
area: docs
text: "Updated EastMesh custom CLI docs for the new `flood.max.advert` command."
breaking_changes: []
- track: observer-eastmesh-bridge-espnow
version: "2026.6.2"
tag: "observer-eastmesh-bridge-espnow-v2026.6.2"
date: "2026-06-07"
previous_version: "2026.6.1"
summary: "Applies the Observer boot, Wi-Fi/OTA persistence, telemetry, archive, and web-panel maintenance fixes to ESP-NOW bridge builds."
changes:
- type: fixed
area: board
text: "Fixed LilyGo T-Beam S3 Supreme BME280 detection and live telemetry by using the board-detected address, stop-based I2C reads, and board-specific I2C bus recovery before samples."
- type: fixed
area: web
text: "Changed live `/stats` sensor values to use the main-loop sensor snapshot instead of reading I2C sensors from the web request handler."
- type: fixed
area: wifi
text: "Improved boot-time Wi-Fi startup by starting Wi-Fi earlier on T-Beam S3 Supreme, remembering the last connected AP channel, and falling back to full scan if that channel is stale."
- type: fixed
area: wifi
text: "Added NVS-backed Wi-Fi preference recovery so SSID and password survive OTA updates even if the filesystem preference file is lost."
- type: fixed
area: wifi
text: "Hardened Wi-Fi retry handling so scan-mode connects are not interrupted early and failed attempts reset the ESP32 station state before retrying."
- type: fixed
area: cli
text: "Fixed `set wifi.powersaving none` returning an error when Wi-Fi power saving was already disabled."
- type: fixed
area: archive
text: "Bounded archive neighbour restore and history reads so large SD-card archive files no longer slow boot unnecessarily."
- type: added
area: web
text: "Added a web-panel and CLI SD purge action for clearing archive contents from supported SD-card targets."
- type: fixed
area: web
text: "Hardened OTA startup by binding before reporting success and falling back to alternate ports when port 80 is still being released."
breaking_changes: []
- track: observer-eastmesh-bridge-espnow
version: "2026.6.3"
tag: "observer-eastmesh-bridge-espnow-v2026.6.3"
date: "2026-06-09"
previous_version: "2026.6.2"
summary: "Adds secure WebSocket transport support for custom MQTT brokers in Observer ESP-NOW bridge builds."
changes:
- type: added
area: mqtt
text: "Added TCP/WSS transport selection for custom MQTT brokers while keeping custom broker authentication to username and password only."
- type: fixed
area: mqtt
text: "Verified custom MQTT WSS connections with the ESP-IDF x509 root CA bundle and the fixed `/mqtt` WebSocket path."
- type: fixed
area: mqtt
text: "Configured custom MQTT WSS using a full `wss://host:port/mqtt` URI so ESP-MQTT handles the WebSocket connection consistently."
- type: changed
area: cli
text: "Updated `get mqtt.status` to show the custom MQTT transport and state, for example `custom:wss:up`."
- type: docs
area: docs
text: "Documented custom MQTT TCP/WSS configuration in the web panel and custom CLI guides."
breaking_changes: []
- track: observer-eastmesh-bridge-espnow
version: "2026.6.4"
tag: "observer-eastmesh-bridge-espnow-v2026.6.4"
date: "2026-06-23"
previous_version: "2026.6.3"
summary: "Replaces the retired LetsMesh brokers with the MeshMapper broker and reworks broker selection into Primary and Secondary slots in Observer ESP-NOW bridge builds."
changes:
- type: added
area: mqtt
text: "Added the `meshmapper` curated broker (`wss://mqtt.meshmapper.net:443/mqtt`) using WSS, verified TLS, and MeshCore JWT authentication with the broker host as the token audience."
- type: added
area: cli
text: "Added `get mqtt.meshmapper` and `set mqtt.meshmapper on|off` to toggle the MeshMapper broker."
- type: changed
area: mqtt
text: "Retired the unmaintained LetsMesh EU/US brokers: they remain selectable but are marked retired, and saved selections are cleared once on upgrade so dead brokers stop retrying."
- type: changed
area: web
text: "Replaced the EastMesh and LetsMesh sliders and the custom MQTT toggle with Primary and Secondary broker dropdowns that enforce the two-broker maximum and reveal custom host, username, and password fields when Custom is selected."
- type: changed
area: cli
text: "Shortened `get mqtt.status` to report the two active broker slots as `p:<broker>:<state>` and `s:<broker>:<state>` so the reply stays within the LoRa text limit."
- type: docs
area: docs
text: "Updated the README, web panel, and custom CLI guides for MeshMapper and the Primary/Secondary broker layout."
breaking_changes:
- "`get mqtt.status` output changed from per-broker fields to `p:`/`s:` broker slots; anything parsing the previous format must be updated."
- "Saved LetsMesh EU/US broker selections are cleared once on upgrade; re-enable a broker such as MeshMapper if a second uplink is required."
- track: observer-eastmesh-bridge-espnow
version: "2026.6.5"
tag: "observer-eastmesh-bridge-espnow-v2026.6.5"
date: "2026-06-26"
previous_version: "2026.6.4"
summary: "Adds the Waev curated MQTT broker and makes the Custom MQTT settings panel full width in Observer ESP-NOW bridge builds."
changes:
- type: added
area: mqtt
text: "Added the `waev` curated broker (`wss://mqtt.waev.app:443/mqtt`) using WSS, verified TLS, and MeshCore JWT authentication with the broker host as the token audience."
- type: added
area: cli
text: "Added `get mqtt.waev` and `set mqtt.waev on|off` to toggle the Waev broker."
- type: added
area: mqtt
text: "Added per-broker JWT token lifetimes so Waev receives a 1-hour token to match its shorter maximum token lifetime."
- type: fixed
area: web
text: "Made the Custom MQTT settings panel span the full width of the MQTT Servers card when Custom is selected."
- type: docs
area: docs
text: "Documented the Waev broker in the README and custom CLI guides."
breaking_changes: []
- track: observer-eastmesh-bridge-espnow
version: "2026.6.6"
tag: "observer-eastmesh-bridge-espnow-v2026.6.6"
date: "2026-06-27"
previous_version: "2026.6.5"
summary: "Adds cumulative packet counters to the MQTT status payload so brokers receive radio TX/RX totals."
changes:
- type: added
area: mqtt
text: "Added `packets_sent` and `packets_received` counters to the MQTT `status` payload `stats` object, reporting cumulative radio TX/RX packet totals to align with the Waev/MeshMapper status schema."
breaking_changes: []
- track: observer-eastmesh-bridge-espnow
version: "2026.7.0"
tag: "observer-eastmesh-bridge-espnow-v2026.7.0"
date: "2026-07-19"
previous_version: "2026.6.6"
summary: "Syncs Observer ESP-NOW bridge firmware with the latest upstream MeshCore dev changes, realigns saved settings storage with upstream, and restores EastMesh/MeshMapper broker TLS trust."
changes:
- type: changed
area: upstream
text: "Merged upstream MeshCore dev updates including power-off/deep-sleep improvements, SX1262 LDO support, hardware channel-activity detection, radio gain fixes, and board/platform fixes."
- type: fixed
area: prefs
text: "Realigned saved node settings to upstream byte offsets and moved EastMesh-specific fields behind a reserved gap so future upstream syncs no longer shift or corrupt them."
- type: fixed
area: mqtt
text: "Restored EastMesh and MeshMapper broker TLS trust after mqtt2.eastmesh.au moved from Let's Encrypt to a Google Trust Services certificate."
- type: changed
area: build
text: "Bumped CI build and docs workflows to Python 3.13."
breaking_changes:
- "The saved settings layout changed; devices upgrading from 2026.6.6 or earlier may need EastMesh-specific settings (such as fan control and bridge peer) and recently added radio settings reconfigured."
- track: observer-eastmesh-bridge-espnow
version: "2026.8.0"
tag: "observer-eastmesh-bridge-espnow-v2026.8.0"
date: "2026-08-09"
previous_version: "2026.7.0"
summary: "Updates Observer ESP-NOW bridge firmware to upstream MeshCore v1.17.0 with the new key-based settings format and fixes the web panel becoming unreachable after long uptimes."
changes:
- type: changed
area: upstream
text: "Merged upstream MeshCore v1.17.0 including new board support, ethernet interface groundwork, LR2021 radio support, display and UI improvements, and platform fixes."
- type: changed
area: prefs
text: "Moved saved node settings to upstream's new key-based `prefs.json` format; existing settings, including EastMesh fan control and bridge peer configuration, are migrated automatically on first boot."
- type: fixed
area: web
text: "Fixed the web panel refusing connections (browser `PR_CONNECT_RESET_ERROR`) after long uptimes by evicting stale keep-alive connections instead of letting vanished clients permanently occupy the connection pool."
breaking_changes:
- "Saved settings move to the new `prefs.json` format on first boot; downgrading to earlier firmware afterwards reverts the device to the old (pre-migration) settings file."
- track: observer-eastmesh-bridge-espnow
version: "2026.8.1"
tag: "observer-eastmesh-bridge-espnow-v2026.8.1"
date: "2026-08-09"
previous_version: "2026.8.0"
summary: "Hardens T-Beam S3 Supreme display bring-up so a failed boot-time OLED probe can no longer crash-loop the node."
changes:
- type: fixed
area: board
text: "Restored the proven T-Beam S3 Supreme SH1106 bring-up order (initialise the display before probing the bus, which can NAK cold probes on this board) so the OLED reliably comes up at boot."
- type: fixed
area: board
text: "Made a failed or absent SH1106 display boot the node headless instead of crash-looping: display operations are now safe no-ops when the boot-time initialisation did not succeed."
breaking_changes: []