J. Nick Koston
7b04f4ea8b
[http_request] Soften SBO comment to say supported toolchains
2026-03-17 18:51:12 -10:00
J. Nick Koston
fd70517445
[http_request] Use file-local TaskResult instead of modifying UpdateInfo
...
Address review feedback:
- Move error_str out of public UpdateInfo into file-local TaskResult
- Add container.reset() before vTaskDelete (doesn't call destructors)
- Remove redundant has_progress/progress assignments after move
- Add comment on delete after std::move
2026-03-17 18:39:01 -10:00
J. Nick Koston
17476934c8
[http_request] Guard against empty firmware_url before path merge
...
Accessing path[0] on an empty string is undefined behavior.
Add an empty check before the relative URL merge logic.
2026-03-17 18:34:24 -10:00
J. Nick Koston
564128127b
[http_request] Call container->end() on non-OK status, fix comment
...
Address Copilot review feedback:
- Call container->end() when status_code != HTTP_STATUS_OK (pre-existing
bug, but easy to fix while we're here)
- Update error_str comment to say "update check failure" not "fetch failure"
2026-03-17 18:33:55 -10:00
J. Nick Koston
e93e064304
[http_request] Inline apply_manifest_result_main_loop_ into defer lambda
...
One less method — the logic lives directly in the lambda body.
No flash change (compiler was already inlining the call).
2026-03-17 18:27:53 -10:00
J. Nick Koston
211273d46c
[http_request] Inline fetch_manifest_ back into update_task
...
Eliminates separate function call overhead — compiler can optimize
across the single function. Saves ~32 bytes flash on ESP8266.
2026-03-17 18:26:22 -10:00
J. Nick Koston
f496936b31
[http_request] Reduce flash cost of update race fix
...
- Move state computation to main loop callback (avoids 2 extra lambda captures)
- Add error_str field to UpdateInfo so error info rides with the pointer
- Allocate UpdateInfo once at top of fetch_manifest_ (single ownership path)
- Lambda captures only 2 pointers (8 bytes), fits std::function SBO
Reduces ESP8266 flash delta from +480 to ~+288 bytes.
2026-03-17 18:23:51 -10:00
J. Nick Koston
a28a6f7d93
[http_request] Fix data race on update_info_ strings in update task
...
The update task runs in a FreeRTOS thread on ESP32 and was writing
directly to update_info_ std::string fields while the main loop
reads them via API (as StringRef pointers into the string buffer),
MQTT, web server, and Prometheus. This is undefined behavior that
can cause use-after-free crashes when a string reallocation
invalidates a StringRef held by the API serialization path.
Move all update_info_ and state_ writes into the existing defer()
callback so they execute on the main loop. The task now accumulates
results in a local UpdateInfo struct and moves it into update_info_
in the deferred callback, eliminating the cross-thread data race
with zero steady-state memory overhead.
2026-03-17 17:58:10 -10:00
Jonathan Swoboda
2531fb1a02
[voice_assistant][micro_wake_word] Fix null deref and missing error return ( #14906 )
2026-03-17 23:12:13 -04:00
J. Nick Koston
3e845d387a
[tests] Fix test_show_logs_serial taking 30s due to unmocked serial port wait ( #14903 )
2026-03-17 14:44:17 -10:00
b9e8da92c7
[scheduler] Fix UB in cross-thread counter/vector reads, add atomic fast-path ( #14880 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-18 00:19:31 +00:00
0c5f055d45
[core] cpp tests: Allow customizing code generation during tests ( #14681 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-18 00:16:01 +00:00
J. Nick Koston and Jesse Hills
342020e1d3
[mqtt] Fix data race on inbound event queue ( #14891 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-03-17 13:49:24 -10:00
J. Nick Koston
62f9bc79c4
[ci] Add CodSpeed badge to README ( #14901 )
2026-03-17 13:48:21 -10:00
Jonathan Swoboda
53bfb02a21
[sensor][ee895][hdc2010] Fix misc bugs found during component scan ( #14890 )
2026-03-17 19:46:26 -04:00
J. Nick Koston
83484a8828
[esp32_ble_server] Remove vestigial semaphore from BLECharacteristic ( #14900 )
2026-03-17 13:38:41 -10:00
J. Nick Koston
ece235218f
[debug][bme680_bsec] Use fnv1_hash_extend to avoid temporary string allocations ( #14876 )
2026-03-17 13:27:46 -10:00
J. Nick Koston
f3409acfa8
[core] Document EventPool sizing requirement with LockFreeQueue ( #14897 )
2026-03-17 13:08:58 -10:00
J. Nick Koston and Copilot Autofix powered by AI
77b7201eb8
[ci] Run CodSpeed benchmarks on push to dev for baseline ( #14899 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-17 13:08:45 -10:00
J. Nick Koston
6b91df8d75
[esp32_ble][esp32_ble_server] Inline is_active/is_running and remove STL bloat ( #14875 )
2026-03-17 13:05:16 -10:00
J. Nick Koston
1670f04a87
[core] Add CodSpeed C++ benchmarks for protobuf, main loop, and helpers ( #14878 )
2026-03-17 12:29:38 -10:00
J. Nick Koston
1adf05e2d5
[esp32_ble] Fix EventPool/LockFreeQueue sizing off-by-one ( #14892 )
2026-03-17 22:24:02 +00:00
J. Nick Koston
a94bb74d04
[usb_uart] Fix EventPool/LockFreeQueue sizing off-by-one ( #14895 )
2026-03-18 11:18:31 +13:00
J. Nick Koston
c19c75220b
[usb_host] Fix EventPool/LockFreeQueue sizing off-by-one ( #14896 )
2026-03-18 11:17:59 +13:00
J. Nick Koston
97382ed814
[usb_cdc_acm] Fix EventPool/LockFreeQueue sizing off-by-one ( #14894 )
2026-03-18 11:17:43 +13:00
J. Nick Koston
5f06679d78
[espnow] Fix EventPool/LockFreeQueue sizing off-by-one ( #14893 )
2026-03-18 11:16:44 +13:00
Jonathan Swoboda
851e8b6c0d
[gree] Fix IR checksum for YAA/YAC/YAC1FB9/GENERIC models ( #14888 )
2026-03-17 16:28:13 -04:00
J. Nick Koston
9a729608d5
[core] Add back deprecated set_internal() for external projects ( #14887 )
2026-03-17 19:58:05 +00:00
Jonathan Swoboda
53fa346ddc
[speaker] Fix media playlist using announcement delay ( #14889 )
2026-03-17 19:18:49 +00:00
J. Nick Koston
b3210de374
[core] Extract shared C++ build helpers from cpp_unit_test.py ( #14883 )
2026-03-17 08:53:36 -10:00
J. Nick Koston
82ccc37ba1
[ethernet] Mark EthernetComponent as final ( #14842 )
2026-03-17 08:14:52 -10:00
J. Nick Koston
3826e95506
[api] Fix ProtoMessage protected destructor compile error on host platform ( #14882 )
2026-03-17 08:14:36 -10:00
Jonathan Swoboda
b083491e74
[microphone] Switch IDF test to new I2S driver ( #14886 )
2026-03-17 13:46:32 -04:00
Diorcet Yann
73ca0ff106
[core] Small improvements ( #14884 )
2026-03-17 09:22:31 -04:00
Jesse Hills
bba11b3b1e
Merge branch 'beta' into dev
2026-03-17 14:14:03 +13:00
Jesse Hills
a40d97f346
Merge pull request #14873 from esphome/bump-2026.3.0b3
...
2026.3.0b3
2026.3.0b3
2026-03-17 14:13:29 +13:00
Jesse Hills
d6c67d5c35
Bump version to 2026.3.0b3
2026-03-17 11:45:03 +13:00
Jonathan Swoboda
0816b27398
[core] Support both dot and dash separators in Version.parse ( #14858 )
2026-03-17 11:45:03 +13:00
Jonathan Swoboda
9133582aa0
[as3935] Fix ENERGY_MASK dropping bit 4 of lightning energy MMSB ( #14861 )
2026-03-17 11:45:02 +13:00
Jonathan Swoboda
f36b0fcb61
[am43] Fix battery update throttle using wrong type ( #14864 )
2026-03-17 11:45:02 +13:00
Jonathan Swoboda
bb0a5dc8a8
[lilygo_t5_47] Fix Y coordinate mapping and clamp touch point count ( #14865 )
2026-03-17 11:45:02 +13:00
Jonathan Swoboda
0c260e483e
[gpio][dallas_temp] Fix one_wire read64() and DS18S20 division by zero ( #14866 )
2026-03-17 11:45:02 +13:00
tomaszduda23
b8ce907976
[ble_nus] fix uart debug ( #14850 )
2026-03-17 11:45:02 +13:00
dependabot[bot]
ffce637ea5
Bump aioesphomeapi from 44.5.1 to 44.5.2 ( #14849 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-17 11:45:02 +13:00
d6fba39037
[runtime_image] Add esp-dsp dependency for JPEGDEC SIMD on ESP32 ( #14840 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-17 11:45:02 +13:00
J. Nick Koston
5d5c2723b2
[fastled] Include esp_lcd IDF component for ESP32-S3 compatibility ( #14839 )
2026-03-17 11:45:02 +13:00
guillempages and Jonathan Swoboda
06d1498c47
[runtime_image] Update jpegdec lib version ( #14726 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-03-17 11:45:02 +13:00
Fabrice
2142bc1b76
[mipi_rgb] Make h- and v-sync pins optional ( #14870 )
2026-03-17 09:25:11 +11:00
KamilCuk
f81e04b036
[web_server] Fix wrong printf format specifier ( #14836 )
2026-03-16 11:30:31 -10:00
Jonathan Swoboda and J. Nick Koston
c3327d0b43
[i2s_audio] Fix ESP-IDF 6.0 compatibility for I2S port types ( #14818 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-03-16 16:04:20 -04:00