J. Nick Koston
216cc47e4e
[socket] Extract read_locked_() so readv() never calls wait_for_data_() under lock
...
readv() holds LWIP_LOCK for the entire scatter-gather operation and
previously called read() internally, which would call wait_for_data_()
→ socket_delay() while the lock was held — blocking recv_fn() on RP2040.
Extract read_locked_() with the state checks and copy logic. Both
read() and readv() call wait_for_data_() before acquiring the lock,
then use read_locked_() under the lock.
2026-03-11 22:07:59 -10:00
J. Nick Koston
235d75f830
[socket] Extract waiting_for_data_() inline helper
...
Deduplicate the unlocked pre-check condition used in read(),
readv(), and wait_for_data_(). Safety documentation lives on
the helper in the header.
2026-03-11 21:34:25 -10:00
J. Nick Koston
fe6ba153bc
[socket] Fix RP2040 socket_delay race that could miss a wake
...
Remove the redundant s_socket_woke = false between the early-return
check and the while loop. If an IRQ fires in that window (recv_fn
sets s_socket_woke = true), clearing the flag would lose the wake
and sleep until the timer fires. Now the while loop sees the flag
immediately and exits. The flag is cleared after the loop instead.
2026-03-11 21:32:11 -10:00
J. Nick Koston
fe576b1aa5
[socket] Document safety of unlocked reads in wait_for_data_/read/readv
2026-03-11 21:28:31 -10:00
J. Nick Koston
ab422809f5
[socket] Simplify SO_RCVTIMEO: extract wait_for_data_() for read/readv
...
Replace read_locked_() approach with a simpler wait_for_data_() called
at the top of both read() and readv(), keeping the original read/readv
structure intact.
2026-03-11 21:25:20 -10:00
J. Nick Koston
96f59a11ac
[socket] Release LWIP lock during SO_RCVTIMEO wait and handle spurious wakes
...
- Extract read_locked_() to avoid holding LWIP_LOCK during socket_delay(),
which would block recv_fn() on RP2040 (needs async_context lock)
- Loop around socket_delay() for remaining time on spurious wakes from
other sockets, ensuring SO_RCVTIMEO semantics are correct
- Fix readv() to use read_locked_() directly instead of calling read(),
avoiding recursive locking and unintended socket_delay() waits
2026-03-11 21:19:51 -10:00
J. Nick Koston
381ae03db9
Merge branch 'dev' into ota-so-rcvtimeo
2026-03-11 20:29:47 -10:00
J. Nick Koston
f8a22b87b8
[rp2040] Fix crash handler design flaws ( #14716 )
2026-03-12 18:23:01 +13:00
Keith Burzinski
7f38d95424
[ethernet] ESP32-S3 Ethernet compilation fix ( #14717 )
2026-03-11 23:48:27 -05:00
Javier Peletier
bb7d96b954
[const] Add UNIT_METER_PER_SECOND, UNIT_MILLILITRE, UNIT_POUND to const.py ( #14713 )
2026-03-11 16:31:17 -10:00
J. Nick Koston
8daa946afa
[esp32] Add crash handler to capture and report backtrace across reboots ( #14709 )
2026-03-12 14:00:20 +13:00
Keith Burzinski and Jonathan Swoboda
ddc40f44fa
[ethernet] ESP32-P4 Ethernet compilation fix ( #14714 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-03-11 19:56:25 -05:00
Jonathan Swoboda and Claude Opus 4.6
409640c0ee
[esp32_hosted] Bump esp_hosted to 2.12.1 ( #14708 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 16:30:44 -04:00
Jesse Hills
822c9161c6
Merge branch 'beta' into dev
2026-03-12 09:15:50 +13:00
Jesse Hills
ad198fd77b
Merge pull request #14702 from esphome/bump-2026.3.0b1
...
2026.3.0b1
2026.3.0b1
2026-03-12 09:15:11 +13:00
dependabot[bot]
a060f175ad
Bump actions/download-artifact from 8.0.0 to 8.0.1 ( #14705 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 09:28:46 -10:00
dependabot[bot]
73f305ff9c
Bump tornado from 6.5.4 to 6.5.5 ( #14704 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 09:28:19 -10:00
Jesse Hills
b6ff7185e7
[ci] Dont run codeowners workflows on release or beta PRs ( #14703 )
2026-03-12 08:04:07 +13:00
J. Nick Koston
928f6f1866
[ci] Add PR title check for unescaped angle brackets ( #14701 )
2026-03-12 07:57:43 +13:00
Jesse Hills
02f7aee680
Bump version to 2026.3.0b1
2026-03-12 07:34:53 +13:00
Jesse Hills
e7c3277eeb
Bump version to 2026.4.0-dev
2026-03-12 07:34:53 +13:00
Kevin Ahrendt
bef5e4de9c
[speaker_source] Add announcement pipeline ( #14654 )
2026-03-11 08:29:17 -10:00
04bcd9f56b
[dashboard] Use sys.executable for dashboard subprocess commands ( #14698 )
...
Co-authored-by: Jonathan Swoboda <swoboda1337@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-11 14:25:36 -04:00
Jonathan Swoboda and Claude Opus 4.6
03c0ce704b
Bump pyupgrade to v3.21.2 for Python 3.14 compatibility ( #14699 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 08:22:48 -10:00
Kevin Ahrendt
b27165a842
[speaker_source] Add shuffle support ( #14653 )
2026-03-11 08:11:00 -10:00
3d4ebe74ce
[sensirion_common] Use SmallBufferWithHeapFallback helper ( #14270 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-11 08:00:42 -10:00
Kevin Ahrendt
4e16f270a3
[speaker_source] Add playlist management ( #14652 )
2026-03-11 07:47:58 -10:00
c52a48ed38
[multiple] Convert static function locals to member variables ( #14689 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-03-11 07:11:46 +00:00
236f6b1935
[micronova] Add command queue ( #12268 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: edenhaus <edenhaus@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-03-11 19:52:43 +13:00
J. Nick Koston
e8e700a683
[socket] Fix RP2040 heap corruption from malloc in lwip accept callback ( #14687 )
2026-03-11 19:51:54 +13:00
Adam DeMuri
4df3d3554e
Enable the address and behavior sanitizers for C++ component unit tests ( #13490 )
2026-03-10 19:44:05 -10:00
Keith Burzinski
d0f37ae694
[logger] Fix UART selection not applied before pre_setup() ( #14690 )
2026-03-11 04:31:27 +00:00
Keith Burzinski
6561c9bc95
[core] Fix waiting for port indefinitely ( #14688 )
2026-03-10 17:32:29 -10:00
J. Nick Koston
794098de99
[rp2040] Add HardFault crash handler with backtrace ( #14685 )
2026-03-10 16:40:45 -10:00
CFlix
b84d773bec
[bme280] Change communication error message to include "no response" hint. ( #14686 )
2026-03-10 20:24:46 -04:00
Thomas Rupprecht
dcbf3c8728
[esp32] gpio type improvements ( #14517 )
2026-03-10 18:18:35 -04:00
J. Nick Koston
30c8c68703
[socket] Fix RP2040 TCP race condition between lwip callbacks and main loop ( #14679 )
2026-03-10 11:22:23 -10:00
9513edc468
[dew_point] Add dew_point sensor component ( #14441 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-03-10 17:17:13 -04:00
J. Nick Koston and Claude Opus 4.6
6356e3def9
[core] Warn on crystal frequency mismatch during serial upload ( #14582 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 20:42:38 +00:00
Jonathan Swoboda and Claude Opus 4.6
8d988723cd
[config] Allow !extend/!remove on components without id in schema ( #14682 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 16:38:50 -04:00
Kevin Ahrendt and J. Nick Koston
8ca6ee4349
[speaker_source] Add new media player ( #14649 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-10 20:25:26 +00:00
mahumpula and Jonathan Swoboda
780e009bf4
[runtime_image] Add support for 8bit BMPs and fix existing issues ( #10733 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-03-10 16:23:49 -04:00
Jonathan Swoboda and Claude Opus 4.6
04d80cfb75
[esp32_hosted] Bump esp_wifi_remote and esp_hosted versions ( #14680 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 15:17:30 -04:00
J. Nick Koston
9404eadaf8
[rp2040_ble] Add BLE component for RP2040/RP2350 ( #14603 )
2026-03-10 09:12:28 -10:00
J. Nick Koston
4d2ef09a29
[log] Detect early log calls before logger init and optimize hot path ( #14538 )
2026-03-10 09:12:10 -10:00
J. Nick Koston
89bb5d9e42
[core] Require explicit synchronous= for register_action ( #14606 )
2026-03-10 09:11:45 -10:00
J. Nick Koston
9dd3ec258c
[scheduler] Replace unique_ptr with raw pointers, add leak detection ( #14620 )
2026-03-10 09:11:28 -10:00
J. Nick Koston
c709010c4c
[api] Replace std::vector<uint8_t> with APIBuffer to skip zero-fill ( #14593 )
2026-03-10 09:11:12 -10:00
J. Nick Koston and Claude Opus 4.6
6e468936ec
[api] Inline ProtoVarInt::parse fast path and return consumed in struct ( #14638 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 09:10:55 -10:00
J. Nick Koston
2c7ef4f758
[rp2040] Use picotool for BOOTSEL upload and improve upload UX ( #14483 )
2026-03-10 09:10:33 -10:00