schema_version: 1 tracks: - companion-wifi - repeater-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: repeater-mqtt version: "1.0.1" tag: "repeater-mqtt-eastmesh-v1.0.1" date: "2026-04-09" previous_version: null summary: "First EastMesh repeater_mqtt release with MQTT uplink, optional local web panel support, and EastMesh-specific release plumbing." changes: - type: added area: mqtt text: "Added the EastMesh repeater_mqtt firmware track with MQTT uplink support and EastMesh-specific firmware workflows." - type: added area: web-panel text: "Added the initial local HTTPS repeater web configuration panel for supported targets." - 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: build text: "Moved web panel certificate generation into the build flow and kept the web panel optional for tighter firmware targets." breaking_changes: [] - track: repeater-mqtt version: "1.1.0" tag: "repeater-mqtt-eastmesh-v1.1.0" date: "2026-04-10" previous_version: "1.0.1" summary: "Expanded the repeater web panel with a fuller dashboard and MQTT settings, and stabilised HTTPS/TLS startup." changes: - type: added area: web-panel text: "Added a repeater dashboard and in-panel MQTT settings controls." - type: changed area: web-panel text: "Stabilised HTTPS/TLS startup behaviour for the local repeater web panel." - type: changed area: mqtt text: "Refactored MQTT uplink handling to support the expanded web panel controls and cleaner repeater status reporting." - type: docs area: setup text: "Added CLI rescue guidance for setting Wi-Fi on companion Wi-Fi builds and refreshed README/license content." breaking_changes: [] - track: repeater-mqtt version: "1.1.1" tag: "repeater-mqtt-eastmesh-v1.1.1" date: "2026-04-10" previous_version: "1.1.0" summary: "Added mqtt.status control support and tightened the web panel and migration documentation." changes: - type: added area: mqtt text: "Added mqtt.status control/reporting support to make broker state easier to inspect from the repeater CLI." - type: docs area: migration text: "Expanded migration guidance and aligned the docs site with the newer EastMesh structure." - type: docs area: web-panel text: "Added dedicated web panel documentation and refreshed the site theme and navigation." breaking_changes: [] - track: repeater-mqtt version: "1.1.2" tag: "repeater-mqtt-eastmesh-v1.1.2" date: "2026-04-10" previous_version: "1.1.1" summary: "Cleaned up legacy MQTT preference handling, restored status publishing, and expanded web panel controls." changes: - type: fixed area: mqtt text: "Cleared legacy MQTT preference fields so older persisted settings stopped leaking into current repeater behaviour." - type: fixed area: mqtt text: "Restored MQTT status publishing after the earlier control changes." - type: changed area: web-panel text: "Expanded the repeater web panel controls and updated the related CLI and web panel docs." breaking_changes: [] - track: repeater-mqtt version: "1.2.0" tag: "repeater-mqtt-eastmesh-v1.2.0" date: "2026-04-11" previous_version: "1.1.2" summary: "Reduced MQTT and web-panel memory pressure, streamlined broker controls, and polished the repeater admin surface." changes: - type: changed area: mqtt text: "Reduced MQTT uplink memory pressure and improved runtime behaviour on constrained repeater targets." - type: changed area: web-panel text: "Streamlined broker controls in the web panel and refreshed the end-user admin flow." - type: fixed area: web-panel text: "Corrected the noise floor gauge colouring and exposed prv.key in the web console." - type: added area: board-support text: "Added a battery reporting toggle for Heltec V3 repeater builds." - type: docs area: docs text: "Simplified the end-user guides and aligned the web panel docs with the current UI." breaking_changes: [] - track: repeater-mqtt version: "1.2.1" tag: "repeater-mqtt-eastmesh-v1.2.1" date: "2026-04-12" previous_version: "1.2.0" summary: "Made broker outages less disruptive and expanded the repeater web panel with radio presets and richer operational controls." changes: - type: fixed area: mqtt text: "Added graceful MQTT reconnect backoff during broker outages." - type: added area: web-panel text: "Added radio preset controls, repeater info cards, and clock sync controls to the repeater web panel." - type: docs area: release text: "Updated release guidance so the web panel can be used for common repeater setup before being disabled for maximum MQTT headroom." breaking_changes: [] - track: repeater-mqtt version: "1.2.2" tag: "repeater-mqtt-eastmesh-v1.2.2" date: "2026-04-13" previous_version: "1.2.1" summary: "Reduced repeater web panel load pressure and improved MQTT diagnostics." changes: - type: changed area: web-panel text: "Reduced web panel runtime pressure so opening the admin UI had less impact on busy MQTT repeaters." - type: added area: mqtt text: "Improved MQTT diagnostics and status visibility for troubleshooting broker and uplink issues." - type: docs area: web-panel text: "Updated the web panel documentation to match the lighter loading behaviour and operational guidance." breaking_changes: [] - track: repeater-mqtt version: "1.3.0" tag: "repeater-mqtt-eastmesh-v1.3.0" date: "2026-04-15" previous_version: "1.2.2" summary: "Added SD-backed stats history and split the repeater web UI into a lighter /app page and a dedicated /stats console." changes: - type: added area: stats text: "Added SD-backed stats archival and restore support for repeater history data." - type: added area: web-panel text: "Added a dedicated /stats web console for current status, historical trends, neighbours, and recent events." - type: changed area: web-panel text: "Reworked the local web UI so /app stays focused on configuration and admin controls while /stats handles visibility and history." - type: fixed area: stats text: "Restored /stats Wi-Fi signal quality and tuned the /stats signal, noise floor, and RSSI meters for correct LoRa-oriented ranges." - type: changed area: board-support text: "Removed ESP32-C3 repeater_mqtt target support and the related CI coverage." - type: docs area: docs text: "Expanded board comparison guidance and refreshed the published web panel screenshots and docs." breaking_changes: - "ESP32-C3 repeater_mqtt targets were removed in this release." - track: repeater-mqtt version: "1.3.1" tag: "repeater-mqtt-eastmesh-v1.3.1" date: "2026-04-16" previous_version: "1.3.0" summary: "Made web stats safer on non-PSRAM repeaters by defaulting them off, switching constrained boards to live-only history, and allocating stats buffers lazily." changes: - type: fixed area: web-panel text: "Disabled web stats by default on non-PSRAM repeater builds so the local web UI places less memory pressure on constrained boards." - type: changed area: stats text: "Changed non-PSRAM repeater builds to a live-only stats mode with smaller in-memory history buffers instead of archive-backed persistence." - type: fixed area: stats text: "Lazy-initialised web stats buffers and released idle live-only buffers so opening /stats has less impact on busy or memory-constrained repeaters." - type: changed area: web-panel text: "Extended the web stats status output and JSON summary payloads to report whether history is running in live-only mode." - type: docs area: web-panel text: "Refreshed the published web panel screenshots and docs to use separate light and dark mode captures." breaking_changes: [] - track: repeater-mqtt version: "1.3.2" tag: "repeater-mqtt-eastmesh-v1.3.2" date: "2026-04-17" previous_version: "1.3.1" summary: "Refined the repeater /stats UX, added better early-event and noise-floor handling, and persisted the ESP32 fallback clock across reboot." changes: - type: fixed area: stats text: "Removed the misleading neighbour Route column from /stats and cleaned up the neighbour table payload to match the stored data." - type: changed area: stats text: "Retuned the /stats radio noise-floor meter and added a dedicated noise-floor trend with clearer ranges, colour bands, and orientation." - type: changed area: web-panel text: "Reordered the /stats trend cards and changed Packet Activity to a bar chart for interval-based packet counts." - type: fixed area: stats text: "Captured boot/session events earlier on live-only non-PSRAM repeaters so the Events panel is populated before /stats is first opened." - type: fixed area: clock text: "Persisted the ESP32 fallback clock in NVS with immediate saves on sync and periodic checkpoints so boards without a hardware RTC recover a recent sane epoch after reboot." - type: changed area: web-panel text: "Remembered whether the local web UI was last on /app or /stats and returned to that page after unlocking again." - type: changed area: mqtt text: "Changed the Services MQTT status to report degraded when only some enabled MQTT brokers are connected instead of treating any single connected broker as fully up." breaking_changes: [] - track: repeater-mqtt version: "1.3.3" tag: "repeater-mqtt-eastmesh-v1.3.3" date: "2026-04-17" previous_version: "1.3.2" summary: "Improved /stats memory visibility, tightened web stats startup on 2 MB-class PSRAM boards, polished the local repeater admin UI, and pulled in a high-level upstream MeshCore sync." changes: - type: fixed area: stats text: "Adjusted boot auto-capture for web stats to recognise 2 MB-class ESP32 PSRAM sizes instead of requiring an exact 2 MiB boundary." - type: changed area: stats text: "Extended `get web.stats.status` with focused startup diagnostics for PSRAM size and boot auto-capture, while trimming low-value fields so the reply fits cleanly." - type: changed area: web-panel text: "Updated the /stats Memory card to promote Heap Free, refine its headroom thresholds, and align the memory trend colours with the recent heap-free state." - type: fixed area: web-panel text: "Captured the /stats summary memory snapshot earlier in the request path so the live memory values are more consistent while the page is loading." - type: changed area: web-panel text: "Changed the local web panel tab title to use the repeater name when available, with a fallback to `Repeater Config`." - type: changed area: upstream text: "Synced with newer upstream MeshCore `dev` changes, including region/default-scope CLI support, companion default-scope handling, board/platform updates, and refreshed upstream documentation." - type: docs area: web-panel text: "Updated the web panel docs to describe the rough 2 MB PSRAM boot-history cutoff." breaking_changes: [] - track: repeater-mqtt version: "1.3.4" tag: "repeater-mqtt-eastmesh-v1.3.4" date: "2026-04-18" previous_version: "1.3.3" summary: "Polished the repeater web panel, fixed a T-Beam 1W build issue, and synced the documented web CLI allowlist with the shipped browser console." changes: - type: fixed area: board-support text: "Added the missing T-Beam 1W flash partition size so the repeater_mqtt target builds with the correct partition layout." - type: changed area: web-panel text: "Cached the repeater title across both the /app and /stats pages so the local admin UI presents a more consistent device label." - type: changed area: web-panel text: "Applied the newer four-band threshold styling to the largest-block memory meters in the /stats Memory card." - type: docs area: web-panel text: "Updated the documented web CLI allowlist to match the actual browser command gate, including the AGC reset interval commands and the troubleshooting note for `noise_floor` reporting `0`." breaking_changes: [] - track: repeater-mqtt version: "1.3.5" tag: "repeater-mqtt-eastmesh-v1.3.5" date: "2026-04-19" previous_version: "1.3.4" summary: "Prepares the next repeater_mqtt release on top of upstream MeshCore firmware v1.15.0." changes: - type: changed area: upstream text: "Updated the repeater_mqtt firmware base to upstream MeshCore v1.15.0." breaking_changes: [] - track: repeater-mqtt version: "1.3.6" tag: "repeater-mqtt-eastmesh-v1.3.6" date: "2026-04-20" previous_version: "1.3.5" summary: "Opened the repeater web CLI fully after login, added HTTP-to-HTTPS redirect support, preserved /stats through the login bounce, and fixed 4 MB repeater partition layouts." changes: - type: changed area: web-panel text: "Removed the browser-side repeater CLI allowlist so authenticated web panel sessions can run the same CLI commands accepted by the repeater." - type: added area: web-panel text: "Added a lightweight local HTTP listener that redirects browser requests to the repeater's HTTPS web panel URL." - type: changed area: web-panel text: "Changed the login flow so refreshing /stats and re-authenticating returns to /stats without persisting the last page in browser storage." - type: fixed area: board-support text: "Updated repeater_mqtt partition layouts for 4 MB boards so the affected targets use the correct flash sizing." - type: docs area: web-panel text: "Updated the repeater web panel and custom CLI docs to reflect full web CLI access and the new HTTP-to-HTTPS behavior." breaking_changes: [] - track: repeater-mqtt version: "1.3.7" tag: "repeater-mqtt-eastmesh-v1.3.7" date: "2026-04-20" previous_version: "1.3.6" summary: "Made MQTT IATA explicit on fresh repeater installs, blocked broker connects until it is configured, and surfaced the missing-IATA state in the web panel and CLI status." changes: - type: changed area: mqtt text: "Changed fresh repeater_mqtt defaults to use `mqtt.iata=UNSET` instead of pre-filling Melbourne." - type: fixed area: mqtt text: "Blocked EastMesh and LetsMesh broker connection attempts while `mqtt.iata` is unset, and reported `invalid iata` in `get mqtt.status` for enabled brokers until a real code is saved." - type: changed area: web-panel text: "Added a top-of-page warning banner and inline MQTT Settings warning when the repeater still needs its MQTT IATA configured." - type: docs area: mqtt text: "Updated the custom CLI and web panel docs to describe the unset-first MQTT IATA flow and the resulting broker behaviour." breaking_changes: [] - track: repeater-mqtt version: "1.3.8" tag: "repeater-mqtt-eastmesh-v1.3.8" date: "2026-04-21" previous_version: "1.3.7" summary: "Expanded repeater `/stats` with environment telemetry and persisted trends, and hardened archive startup on shared-SPI boards." changes: - type: fixed area: web-panel text: "Fixed Radio Settings preset application in the repeater web panel so the generated `set radio` command uses the comma-separated format accepted by the CLI." - type: added area: board-support text: "Added T-Beam 1W repeater fan CLI controls with persisted mode and post-TX timeout settings." - type: added area: board-support text: "Added T-Beam 1W manual fan mode handling so `fan off` stays off, `fan on` stays on, and TX hold only applies while the board is in auto mode." - type: fixed area: stats text: "Stabilised T-Beam 1W web stats with SD archive enabled by making archive access reuse the same SPI object as the LoRa radio on the board's shared SPI bus." - type: added area: web-panel text: "Added an optional `Environment` section on `/stats` for boards that expose GPS or environmental telemetry, and hid metrics that have no current reading." - type: added area: stats text: "Extended `/stats` history persistence in PSRAM and on the SD-backed archive to capture supported environment telemetry, including voltage, temperatures, humidity, barometer, altitude, and GPS satellites." - type: added area: stats text: "Added environment trend series to `/stats`, including a GPS satellites graph that only appears when GPS is enabled." - type: fixed area: board-support text: "Hardened archive startup on the T-Beam S3 Supreme by providing a safe default shared-archive SPI hook so boards without an override do not crash during early boot." - type: docs area: docs text: "Updated the web panel, API, and custom CLI docs to cover the environment summary/trends, stats persistence behaviour, and existing T-Beam 1W fan controls." breaking_changes: [] - track: repeater-mqtt version: "1.3.9" tag: "repeater-mqtt-eastmesh-v1.3.9" date: "2026-04-22" previous_version: "1.3.8" summary: "Reduced unnecessary repeater battery polling by removing hot-loop MQTT sampling and reusing throttled battery reads across stats and web status paths." changes: - type: fixed area: mqtt text: "Stopped rebuilding the MQTT status battery reading from a fresh ADC sample on every repeater loop iteration and switched that path to a throttled cached value instead." - type: changed area: stats text: "Reused a single battery sample across the web stats history and summary builders so one logical stats operation no longer performs multiple immediate battery reads." - type: fixed area: board-support text: "Reduced Heltec V3 battery-sense activity while MQTT and web features are active, while still keeping explicit status and telemetry requests on a fresh reading path." - type: changed area: board-support text: "Removed the obsolete battery reporting toggle path and its stale CLI documentation now that repeater battery sampling is handled correctly without a board-level reporting disable switch." - type: docs area: docs text: "Updated the custom CLI docs to note that repeater MQTT background battery sampling is now rate-limited while explicit status and telemetry requests still refresh immediately." breaking_changes: [] - track: repeater-mqtt version: "1.3.10" tag: "repeater-mqtt-eastmesh-v1.3.10" date: "2026-04-22" previous_version: "1.3.9" summary: "Made `/stats` battery display board-aware and corrected count-trend rendering for restored packet activity and GPS satellites." changes: - type: changed area: stats text: "Updated the `/stats` Core battery meter to prefer a board-reported battery percentage when available and otherwise scale from a board-specific battery voltage range instead of a fixed single-cell assumption." - type: added area: board-support text: "Added default board battery range hints to the board abstraction and set the T-Beam 1W repeater battery profile to a 2S `6000-8400 mV` range for the web stats path." - type: fixed area: web-panel text: "Corrected `/stats` packet activity and GPS satellites bar charts so restored zero values no longer draw phantom bars and the final bar uses the same spacing as the rest of the series." - type: added area: mqtt text: "Added a `get mqtt.client_version` repeater CLI command and exposed the same value in the `/app` quick MQTT command buttons." - type: changed area: web-panel text: "Reworked the `/app` Info panel to show `Version` and `Client Version`, and moved `Clock UTC` into Repeater Settings beside Device Name." - type: fixed area: web-panel text: "Narrowed `start ota` handling so the repeater only releases the local HTTP redirect listener on port `80`, allowing ElegantOTA to start without unnecessarily stopping the rest of the repeater services." - type: docs area: docs text: "Updated the web panel, API, and custom CLI docs to describe the board-aware battery display, the new MQTT client-version command, and the revised `/app` layout." breaking_changes: [] - track: repeater-mqtt version: "1.3.11" tag: "repeater-mqtt-eastmesh-v1.3.11" date: "2026-04-23" previous_version: "1.3.10" summary: "Makes OTA startup consistent across command sources, fixes T-Beam 1W SX1262 repeater builds, and cleans up PMU-backed battery stats in `/stats`." changes: - type: fixed area: web-panel text: "Moved OTA startup preparation into the shared repeater web service path so `start ota` now behaves consistently whether it is triggered from the web panel, serial CLI, or a remote CLI session." - type: fixed area: web-panel text: "Fixed the old repeater OTA redirect glitch so starting an upgrade no longer falls into the earlier odd redirect behaviour before the OTA page loads." - type: fixed area: board-support text: "Added the missing `USE_SX1262` build flag for the LilyGo T-Beam 1W repeater target so the `*_repeater_mqtt` variant builds with the correct radio configuration." - type: fixed area: stats text: "Cleaned up `/stats` battery details on PMU-backed boards so the Core battery card no longer shows a synthetic battery-voltage range beside a board-reported battery percentage." - type: docs area: web-panel text: "Updated the web panel and custom CLI docs to note the OTA redirect fallback on older builds and to describe the consistent `start ota` handling across command sources." breaking_changes: []