release-notes.yml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. schema_version: 1
  2. tracks:
  3. - companion-wifi
  4. - repeater-mqtt
  5. generated_from: "Adjacent git tag comparisons plus non-merge commit subjects."
  6. releases:
  7. - track: companion-wifi
  8. version: "1.14.1"
  9. tag: "companion-wifi-v1.14.1"
  10. date: "2026-04-09"
  11. previous_version: null
  12. summary: "First EastMesh companion_wifi release with persisted Wi-Fi CLI settings and EastMesh-specific docs and release plumbing."
  13. changes:
  14. - type: added
  15. area: companion-wifi
  16. text: "Added the EastMesh companion_wifi release track for supported boards."
  17. - type: added
  18. area: wifi
  19. text: "Added persisted Wi-Fi CLI settings so companion Wi-Fi devices can retain configured credentials across restart."
  20. - type: added
  21. area: release
  22. text: "Added EastMesh release documentation, local build guidance, and CI workflows focused on the supported Wi-Fi and MQTT firmware tracks."
  23. - type: changed
  24. area: docs
  25. text: "Refreshed the docs site structure and theme as part of the first EastMesh release set."
  26. breaking_changes: []
  27. - track: companion-wifi
  28. version: "1.15.0"
  29. tag: "companion-wifi-v1.15.0"
  30. date: "2026-04-19"
  31. previous_version: "1.14.1"
  32. summary: "Prepares the next companion_wifi release on top of upstream MeshCore firmware v1.15.0."
  33. changes:
  34. - type: changed
  35. area: upstream
  36. text: "Updated the companion_wifi firmware base to upstream MeshCore v1.15.0."
  37. breaking_changes: []
  38. - track: repeater-mqtt
  39. version: "1.0.1"
  40. tag: "repeater-mqtt-eastmesh-v1.0.1"
  41. date: "2026-04-09"
  42. previous_version: null
  43. summary: "First EastMesh repeater_mqtt release with MQTT uplink, optional local web panel support, and EastMesh-specific release plumbing."
  44. changes:
  45. - type: added
  46. area: mqtt
  47. text: "Added the EastMesh repeater_mqtt firmware track with MQTT uplink support and EastMesh-specific firmware workflows."
  48. - type: added
  49. area: web-panel
  50. text: "Added the initial local HTTPS repeater web configuration panel for supported targets."
  51. - type: added
  52. area: release
  53. text: "Added EastMesh release documentation, local build guidance, and CI workflows focused on the supported Wi-Fi and MQTT firmware tracks."
  54. - type: changed
  55. area: build
  56. text: "Moved web panel certificate generation into the build flow and kept the web panel optional for tighter firmware targets."
  57. breaking_changes: []
  58. - track: repeater-mqtt
  59. version: "1.1.0"
  60. tag: "repeater-mqtt-eastmesh-v1.1.0"
  61. date: "2026-04-10"
  62. previous_version: "1.0.1"
  63. summary: "Expanded the repeater web panel with a fuller dashboard and MQTT settings, and stabilised HTTPS/TLS startup."
  64. changes:
  65. - type: added
  66. area: web-panel
  67. text: "Added a repeater dashboard and in-panel MQTT settings controls."
  68. - type: changed
  69. area: web-panel
  70. text: "Stabilised HTTPS/TLS startup behaviour for the local repeater web panel."
  71. - type: changed
  72. area: mqtt
  73. text: "Refactored MQTT uplink handling to support the expanded web panel controls and cleaner repeater status reporting."
  74. - type: docs
  75. area: setup
  76. text: "Added CLI rescue guidance for setting Wi-Fi on companion Wi-Fi builds and refreshed README/license content."
  77. breaking_changes: []
  78. - track: repeater-mqtt
  79. version: "1.1.1"
  80. tag: "repeater-mqtt-eastmesh-v1.1.1"
  81. date: "2026-04-10"
  82. previous_version: "1.1.0"
  83. summary: "Added mqtt.status control support and tightened the web panel and migration documentation."
  84. changes:
  85. - type: added
  86. area: mqtt
  87. text: "Added mqtt.status control/reporting support to make broker state easier to inspect from the repeater CLI."
  88. - type: docs
  89. area: migration
  90. text: "Expanded migration guidance and aligned the docs site with the newer EastMesh structure."
  91. - type: docs
  92. area: web-panel
  93. text: "Added dedicated web panel documentation and refreshed the site theme and navigation."
  94. breaking_changes: []
  95. - track: repeater-mqtt
  96. version: "1.1.2"
  97. tag: "repeater-mqtt-eastmesh-v1.1.2"
  98. date: "2026-04-10"
  99. previous_version: "1.1.1"
  100. summary: "Cleaned up legacy MQTT preference handling, restored status publishing, and expanded web panel controls."
  101. changes:
  102. - type: fixed
  103. area: mqtt
  104. text: "Cleared legacy MQTT preference fields so older persisted settings stopped leaking into current repeater behaviour."
  105. - type: fixed
  106. area: mqtt
  107. text: "Restored MQTT status publishing after the earlier control changes."
  108. - type: changed
  109. area: web-panel
  110. text: "Expanded the repeater web panel controls and updated the related CLI and web panel docs."
  111. breaking_changes: []
  112. - track: repeater-mqtt
  113. version: "1.2.0"
  114. tag: "repeater-mqtt-eastmesh-v1.2.0"
  115. date: "2026-04-11"
  116. previous_version: "1.1.2"
  117. summary: "Reduced MQTT and web-panel memory pressure, streamlined broker controls, and polished the repeater admin surface."
  118. changes:
  119. - type: changed
  120. area: mqtt
  121. text: "Reduced MQTT uplink memory pressure and improved runtime behaviour on constrained repeater targets."
  122. - type: changed
  123. area: web-panel
  124. text: "Streamlined broker controls in the web panel and refreshed the end-user admin flow."
  125. - type: fixed
  126. area: web-panel
  127. text: "Corrected the noise floor gauge colouring and exposed prv.key in the web console."
  128. - type: added
  129. area: board-support
  130. text: "Added a battery reporting toggle for Heltec V3 repeater builds."
  131. - type: docs
  132. area: docs
  133. text: "Simplified the end-user guides and aligned the web panel docs with the current UI."
  134. breaking_changes: []
  135. - track: repeater-mqtt
  136. version: "1.2.1"
  137. tag: "repeater-mqtt-eastmesh-v1.2.1"
  138. date: "2026-04-12"
  139. previous_version: "1.2.0"
  140. summary: "Made broker outages less disruptive and expanded the repeater web panel with radio presets and richer operational controls."
  141. changes:
  142. - type: fixed
  143. area: mqtt
  144. text: "Added graceful MQTT reconnect backoff during broker outages."
  145. - type: added
  146. area: web-panel
  147. text: "Added radio preset controls, repeater info cards, and clock sync controls to the repeater web panel."
  148. - type: docs
  149. area: release
  150. text: "Updated release guidance so the web panel can be used for common repeater setup before being disabled for maximum MQTT headroom."
  151. breaking_changes: []
  152. - track: repeater-mqtt
  153. version: "1.2.2"
  154. tag: "repeater-mqtt-eastmesh-v1.2.2"
  155. date: "2026-04-13"
  156. previous_version: "1.2.1"
  157. summary: "Reduced repeater web panel load pressure and improved MQTT diagnostics."
  158. changes:
  159. - type: changed
  160. area: web-panel
  161. text: "Reduced web panel runtime pressure so opening the admin UI had less impact on busy MQTT repeaters."
  162. - type: added
  163. area: mqtt
  164. text: "Improved MQTT diagnostics and status visibility for troubleshooting broker and uplink issues."
  165. - type: docs
  166. area: web-panel
  167. text: "Updated the web panel documentation to match the lighter loading behaviour and operational guidance."
  168. breaking_changes: []
  169. - track: repeater-mqtt
  170. version: "1.3.0"
  171. tag: "repeater-mqtt-eastmesh-v1.3.0"
  172. date: "2026-04-15"
  173. previous_version: "1.2.2"
  174. summary: "Added SD-backed stats history and split the repeater web UI into a lighter /app page and a dedicated /stats console."
  175. changes:
  176. - type: added
  177. area: stats
  178. text: "Added SD-backed stats archival and restore support for repeater history data."
  179. - type: added
  180. area: web-panel
  181. text: "Added a dedicated /stats web console for current status, historical trends, neighbours, and recent events."
  182. - type: changed
  183. area: web-panel
  184. text: "Reworked the local web UI so /app stays focused on configuration and admin controls while /stats handles visibility and history."
  185. - type: fixed
  186. area: stats
  187. text: "Restored /stats Wi-Fi signal quality and tuned the /stats signal, noise floor, and RSSI meters for correct LoRa-oriented ranges."
  188. - type: changed
  189. area: board-support
  190. text: "Removed ESP32-C3 repeater_mqtt target support and the related CI coverage."
  191. - type: docs
  192. area: docs
  193. text: "Expanded board comparison guidance and refreshed the published web panel screenshots and docs."
  194. breaking_changes:
  195. - "ESP32-C3 repeater_mqtt targets were removed in this release."
  196. - track: repeater-mqtt
  197. version: "1.3.1"
  198. tag: "repeater-mqtt-eastmesh-v1.3.1"
  199. date: "2026-04-16"
  200. previous_version: "1.3.0"
  201. 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."
  202. changes:
  203. - type: fixed
  204. area: web-panel
  205. text: "Disabled web stats by default on non-PSRAM repeater builds so the local web UI places less memory pressure on constrained boards."
  206. - type: changed
  207. area: stats
  208. text: "Changed non-PSRAM repeater builds to a live-only stats mode with smaller in-memory history buffers instead of archive-backed persistence."
  209. - type: fixed
  210. area: stats
  211. text: "Lazy-initialised web stats buffers and released idle live-only buffers so opening /stats has less impact on busy or memory-constrained repeaters."
  212. - type: changed
  213. area: web-panel
  214. text: "Extended the web stats status output and JSON summary payloads to report whether history is running in live-only mode."
  215. - type: docs
  216. area: web-panel
  217. text: "Refreshed the published web panel screenshots and docs to use separate light and dark mode captures."
  218. breaking_changes: []
  219. - track: repeater-mqtt
  220. version: "1.3.2"
  221. tag: "repeater-mqtt-eastmesh-v1.3.2"
  222. date: "2026-04-17"
  223. previous_version: "1.3.1"
  224. summary: "Refined the repeater /stats UX, added better early-event and noise-floor handling, and persisted the ESP32 fallback clock across reboot."
  225. changes:
  226. - type: fixed
  227. area: stats
  228. text: "Removed the misleading neighbour Route column from /stats and cleaned up the neighbour table payload to match the stored data."
  229. - type: changed
  230. area: stats
  231. text: "Retuned the /stats radio noise-floor meter and added a dedicated noise-floor trend with clearer ranges, colour bands, and orientation."
  232. - type: changed
  233. area: web-panel
  234. text: "Reordered the /stats trend cards and changed Packet Activity to a bar chart for interval-based packet counts."
  235. - type: fixed
  236. area: stats
  237. text: "Captured boot/session events earlier on live-only non-PSRAM repeaters so the Events panel is populated before /stats is first opened."
  238. - type: fixed
  239. area: clock
  240. 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."
  241. - type: changed
  242. area: web-panel
  243. text: "Remembered whether the local web UI was last on /app or /stats and returned to that page after unlocking again."
  244. - type: changed
  245. area: mqtt
  246. 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."
  247. breaking_changes: []
  248. - track: repeater-mqtt
  249. version: "1.3.3"
  250. tag: "repeater-mqtt-eastmesh-v1.3.3"
  251. date: "2026-04-17"
  252. previous_version: "1.3.2"
  253. 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."
  254. changes:
  255. - type: fixed
  256. area: stats
  257. text: "Adjusted boot auto-capture for web stats to recognise 2 MB-class ESP32 PSRAM sizes instead of requiring an exact 2 MiB boundary."
  258. - type: changed
  259. area: stats
  260. 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."
  261. - type: changed
  262. area: web-panel
  263. 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."
  264. - type: fixed
  265. area: web-panel
  266. 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."
  267. - type: changed
  268. area: web-panel
  269. text: "Changed the local web panel tab title to use the repeater name when available, with a fallback to `Repeater Config`."
  270. - type: changed
  271. area: upstream
  272. 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."
  273. - type: docs
  274. area: web-panel
  275. text: "Updated the web panel docs to describe the rough 2 MB PSRAM boot-history cutoff."
  276. breaking_changes: []
  277. - track: repeater-mqtt
  278. version: "1.3.4"
  279. tag: "repeater-mqtt-eastmesh-v1.3.4"
  280. date: "2026-04-18"
  281. previous_version: "1.3.3"
  282. 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."
  283. changes:
  284. - type: fixed
  285. area: board-support
  286. text: "Added the missing T-Beam 1W flash partition size so the repeater_mqtt target builds with the correct partition layout."
  287. - type: changed
  288. area: web-panel
  289. text: "Cached the repeater title across both the /app and /stats pages so the local admin UI presents a more consistent device label."
  290. - type: changed
  291. area: web-panel
  292. text: "Applied the newer four-band threshold styling to the largest-block memory meters in the /stats Memory card."
  293. - type: docs
  294. area: web-panel
  295. 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`."
  296. breaking_changes: []
  297. - track: repeater-mqtt
  298. version: "1.3.5"
  299. tag: "repeater-mqtt-eastmesh-v1.3.5"
  300. date: "2026-04-19"
  301. previous_version: "1.3.4"
  302. summary: "Prepares the next repeater_mqtt release on top of upstream MeshCore firmware v1.15.0."
  303. changes:
  304. - type: changed
  305. area: upstream
  306. text: "Updated the repeater_mqtt firmware base to upstream MeshCore v1.15.0."
  307. breaking_changes: []
  308. - track: repeater-mqtt
  309. version: "1.3.6"
  310. tag: "repeater-mqtt-eastmesh-v1.3.6"
  311. date: "2026-04-20"
  312. previous_version: "1.3.5"
  313. 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."
  314. changes:
  315. - type: changed
  316. area: web-panel
  317. text: "Removed the browser-side repeater CLI allowlist so authenticated web panel sessions can run the same CLI commands accepted by the repeater."
  318. - type: added
  319. area: web-panel
  320. text: "Added a lightweight local HTTP listener that redirects browser requests to the repeater's HTTPS web panel URL."
  321. - type: changed
  322. area: web-panel
  323. text: "Changed the login flow so refreshing /stats and re-authenticating returns to /stats without persisting the last page in browser storage."
  324. - type: fixed
  325. area: board-support
  326. text: "Updated repeater_mqtt partition layouts for 4 MB boards so the affected targets use the correct flash sizing."
  327. - type: docs
  328. area: web-panel
  329. text: "Updated the repeater web panel and custom CLI docs to reflect full web CLI access and the new HTTP-to-HTTPS behavior."
  330. breaking_changes: []
  331. - track: repeater-mqtt
  332. version: "1.3.7"
  333. tag: "repeater-mqtt-eastmesh-v1.3.7"
  334. date: "2026-04-20"
  335. previous_version: "1.3.6"
  336. 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."
  337. changes:
  338. - type: changed
  339. area: mqtt
  340. text: "Changed fresh repeater_mqtt defaults to use `mqtt.iata=UNSET` instead of pre-filling Melbourne."
  341. - type: fixed
  342. area: mqtt
  343. 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."
  344. - type: changed
  345. area: web-panel
  346. text: "Added a top-of-page warning banner and inline MQTT Settings warning when the repeater still needs its MQTT IATA configured."
  347. - type: docs
  348. area: mqtt
  349. text: "Updated the custom CLI and web panel docs to describe the unset-first MQTT IATA flow and the resulting broker behaviour."
  350. breaking_changes: []
  351. - track: repeater-mqtt
  352. version: "1.3.8"
  353. tag: "repeater-mqtt-eastmesh-v1.3.8"
  354. date: "2026-04-21"
  355. previous_version: "1.3.7"
  356. summary: "Expanded repeater `/stats` with environment telemetry and persisted trends, and hardened archive startup on shared-SPI boards."
  357. changes:
  358. - type: fixed
  359. area: web-panel
  360. 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."
  361. - type: added
  362. area: board-support
  363. text: "Added T-Beam 1W repeater fan CLI controls with persisted mode and post-TX timeout settings."
  364. - type: added
  365. area: board-support
  366. 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."
  367. - type: fixed
  368. area: stats
  369. 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."
  370. - type: added
  371. area: web-panel
  372. text: "Added an optional `Environment` section on `/stats` for boards that expose GPS or environmental telemetry, and hid metrics that have no current reading."
  373. - type: added
  374. area: stats
  375. 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."
  376. - type: added
  377. area: stats
  378. text: "Added environment trend series to `/stats`, including a GPS satellites graph that only appears when GPS is enabled."
  379. - type: fixed
  380. area: board-support
  381. 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."
  382. - type: docs
  383. area: docs
  384. 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."
  385. breaking_changes: []
  386. - track: repeater-mqtt
  387. version: "1.3.9"
  388. tag: "repeater-mqtt-eastmesh-v1.3.9"
  389. date: "2026-04-22"
  390. previous_version: "1.3.8"
  391. summary: "Reduced unnecessary repeater battery polling by removing hot-loop MQTT sampling and reusing throttled battery reads across stats and web status paths."
  392. changes:
  393. - type: fixed
  394. area: mqtt
  395. 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."
  396. - type: changed
  397. area: stats
  398. 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."
  399. - type: fixed
  400. area: board-support
  401. 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."
  402. - type: changed
  403. area: board-support
  404. 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."
  405. - type: docs
  406. area: docs
  407. 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."
  408. breaking_changes: []
  409. - track: repeater-mqtt
  410. version: "1.3.10"
  411. tag: "repeater-mqtt-eastmesh-v1.3.10"
  412. date: "2026-04-22"
  413. previous_version: "1.3.9"
  414. summary: "Made `/stats` battery display board-aware and corrected count-trend rendering for restored packet activity and GPS satellites."
  415. changes:
  416. - type: changed
  417. area: stats
  418. 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."
  419. - type: added
  420. area: board-support
  421. 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."
  422. - type: fixed
  423. area: web-panel
  424. 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."
  425. - type: added
  426. area: mqtt
  427. text: "Added a `get mqtt.client_version` repeater CLI command and exposed the same value in the `/app` quick MQTT command buttons."
  428. - type: changed
  429. area: web-panel
  430. text: "Reworked the `/app` Info panel to show `Version` and `Client Version`, and moved `Clock UTC` into Repeater Settings beside Device Name."
  431. - type: fixed
  432. area: web-panel
  433. 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."
  434. - type: docs
  435. area: docs
  436. 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."
  437. breaking_changes: []
  438. - track: repeater-mqtt
  439. version: "1.3.11"
  440. tag: "repeater-mqtt-eastmesh-v1.3.11"
  441. date: "2026-04-23"
  442. previous_version: "1.3.10"
  443. summary: "Makes OTA startup consistent across command sources, fixes T-Beam 1W SX1262 repeater builds, and cleans up PMU-backed battery stats in `/stats`."
  444. changes:
  445. - type: fixed
  446. area: web-panel
  447. 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."
  448. - type: fixed
  449. area: web-panel
  450. 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."
  451. - type: fixed
  452. area: board-support
  453. 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."
  454. - type: fixed
  455. area: stats
  456. 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."
  457. - type: docs
  458. area: web-panel
  459. 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."
  460. breaking_changes: []