schema_version: 1 tracks: - companion-wifi - repeater-bridge-espnow - observer-eastmesh - observer-eastmesh-bridge-espnow - observer-eastmesh-bridge-mqtt 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: 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: 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::` and `s::` 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-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::` and `s::` 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-mqtt version: "2026.7.0" tag: "observer-eastmesh-bridge-mqtt-v2026.7.0" date: "2026-07-01" previous_version: null summary: "Introduces the observer-eastmesh-bridge-mqtt release track with bidirectional MQTT mesh bridging and web-panel peer broker configuration." changes: - type: added area: mqtt text: "Added `WITH_MQTT_BRIDGE` and `MQTTBridge` for bidirectional mesh packet transport over a shared MQTT topic at a peer broker." - type: added area: cli text: "Added `get/set bridge.peer.host` and `get/set bridge.peer.port` for configuring the peer MQTT broker used by the mesh bridge." - type: added area: web text: "Added mesh bridge peer MQTT host:port controls to the web panel on MQTT bridge builds." - type: added area: release text: "Added the `observer-eastmesh-bridge-mqtt-v*` release tag format, PlatformIO `*_repeater_observer_mqtt_bridge` environments, and CI build workflow." - type: added area: board text: "Added `Xiao_S3_WIO_repeater_observer_mqtt_bridge` as the first supported observer MQTT bridge target." breaking_changes: []