Commit Graph
20 Commits
Author SHA1 Message Date
Valentin V. Bartenev afd5fc2f98 Unify firmware version format with release builds. 2026-04-29 01:07:11 +03:00
Valentin V. Bartenev a99196c3ce Do not tokenize HW model in JSON payload.
Tokenization replaces dots and spaces with underscores
making it look ugly on the MeshCoreTel website.
2026-04-28 03:27:49 +03:00
Valentin V. Bartenev 68e951e204 Work around IDFv4 heap canary corruption on early connect failure.
When the MQTT WebSocket handshake fails before a connection is fully
established (e.g. "Sec-WebSocket-Accept not found"), the IDF v4
transport teardown path writes only 3 of the 4 bytes of the heap block
tail canary (expected 0xbaad5678, actual 0xbaad5600).  The subsequent
esp_mqtt_client_destroy() call frees that block, causing multi_heap_free
to detect the broken canary and abort:

  CORRUPT HEAP: Bad tail at 0x3fcb42a4. Expected 0xbaad5678 got 0xbaad5600
  assert failed: multi_heap_free multi_heap_poisoning.c:259 (head != NULL)

The fix is to check heap integrity with heap_caps_check_integrity_all(false)
between esp_mqtt_client_stop() and esp_mqtt_client_destroy().  If corruption
is detected, scan internal SRAM (0x3FC00000–0x3FD00000) for the truncated
canary pattern and restore it to the correct value before
destroy() runs.

The scan is a no-op when the heap is clean and is compiled out entirely
on IDF v5+, where the underlying bug does not exist.

This fixes crash-on-reconnect observed with ESP32-S3 + IDF v4 + WSS transport.
2026-04-28 03:01:37 +03:00
Valentin V. Bartenev 03c365124b Fix truncation of LWT message.
It's just too small to fit the whole JSON that is put there
in refreshBrokerState().
2026-04-28 02:11:59 +03:00
Valentin V. Bartenev 46b0df7a4b Removed EastMesh MQTT broker support.
It's intended for Eastern Australia repeaters only.  Using original EastMesh
firmware is prefered in this case.
2026-04-28 00:52:26 +03:00
Valentin V. Bartenev f1912ff184 Added support for MeshCoreTel broker. 2026-04-27 03:15:00 +03:00
Jared Dohrman 46f0496865 feat: add mqtt client version to repeater app and cli 2026-04-22 13:29:03 +10:00
Jared Dohrman bf57f342b3 fix: require configured mqtt iata before broker connect 2026-04-20 22:30:06 +10:00
Jared Dohrman d412e3e84a fix: improve repeater stats UX and persist ESP32 fallback clock 2026-04-17 12:17:35 +10:00
Jared Dohrman f67aaebe7e feat: add SD-backed stats archive and dedicated /stats web console 2026-04-15 17:12:32 +10:00
Jared Dohrman de071cbb79 fix: reduce repeater web panel pressure and improve mqtt diagnostics 2026-04-13 09:42:32 +10:00
Jared Dohrman 3bb4f69566 fix: add graceful MQTT reconnect backoff during broker outages 2026-04-12 09:01:25 +10:00
Jared Dohrman 6680e53ef5 fix: improve MQTT/web memory usage and streamline broker controls 2026-04-11 16:40:45 +10:00
Jared Dohrman 328a0ecf6f fix(mqtt): clear legacy prefs, restore status publishing, and expand web controls 2026-04-10 22:24:58 +10:00
Jared Dohrman b5374a705a feat(web,mqtt): add repeater dashboard, MQTT settings, and stabilise HTTPS/TLS startup 2026-04-10 15:18:19 +10:00
Jared Dohrman bd60d0e631 chore: update theme for web 2026-04-09 16:39:25 +10:00
Jared Dohrman 4b184a60d9 fix: stop tracking web panel cert key and generate it under ignored artifacts 2026-04-09 15:25:52 +10:00
Jared Dohrman ca63ea923a fix: generate web panel certs per build and clean up mqtt env flags 2026-04-09 15:19:46 +10:00
Jared Dohrman 238e19d9b7 fix: trim C3 mqtt firmware size and make web panel optional 2026-04-09 15:14:06 +10:00
Jared Dohrman 98fe78a379 feat: add MQTT repeater support, web config panel, and EastMesh-specific firmware workflows 2026-04-09 15:00:53 +10:00