J. Nick Koston
a0e162912c
safety
2026-03-11 00:00:52 -10:00
J. Nick Koston
1131af1690
safety
2026-03-10 23:59:25 -10:00
J. Nick Koston
6fb00baa29
Merge remote-tracking branch 'upstream/dev' into socket-lwip-raw-udp
2026-03-10 23:57:51 -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
Diorcet Yann
06a127f64b
[core] ESP-IDF compilation fixes ( #14541 )
2026-03-10 11:52:48 -04:00
Anunay Kulshrestha and Claude
fba21e6dd4
[bl0940] Fix reset_calibration() declaration missing from header ( #14676 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-10 10:44:19 -04:00
J. Nick Koston
fccfab8083
[socket] Switch UDP rx queue from lock-free SPSC to count-based with LWIP_LOCK
...
With the lwip lock infrastructure in place from the TCP race fix,
the lock-free SPSC ring buffer's wasted slot is no longer needed.
Switch to a simple rx_count_ approach that uses all 4 queue slots.
Also add LWIP_LOCK() to all UDP methods that call lwip APIs
(bind, close, sendto, setsockopt, getsockopt, recvfrom, factories).
2026-03-10 01:15:57 -10:00
J. Nick Koston and J. Nick Koston
f54756ae2d
[socket] Address review comments: doc comments and (void) flags
...
- Document port_host byte order convention in lwip_ip_to_sockaddr
- Note intentional method hiding in LWIPRawUDPRecvImpl
- Note recvfrom truncation differs from POSIX MSG_TRUNC
- Add (void) flags in sendto to clarify flags are ignored
Co-Authored-By: J. Nick Koston <nick@koston.org >
2026-03-10 01:12:15 -10:00
J. Nick Koston
49ba08cec9
[socket] Add lwip raw UDP socket implementation
...
Add native UDP support to the lwip raw TCP socket layer used by
ESP8266 and RP2040, eliminating the need for Arduino WiFiUDP fallback.
Two new classes:
- LWIPRawUDPImpl: send-only UDP (8 bytes overhead)
- LWIPRawUDPRecvImpl: send+recv with fixed-size ring buffer (no heap
allocation in recv callback)
Factory functions: socket_udp(), socket_udp_recv(), socket_ip_udp(),
socket_ip_udp_recv() with UDPSocket/UDPRecvSocket type aliases.
Additive only — no consumer migration in this PR.
2026-03-10 01:12:15 -10:00
J. Nick Koston
81d12fd14a
[socket] Hold lwip lock for entire write() operation
...
Same pattern as writev — write() calls internal_write_() then
internal_output_(), each acquiring the lock separately. Hold
the lock at the outer scope so inner calls just bump the
recursion counter.
2026-03-10 00:57:36 -10:00
J. Nick Koston
cc05bf3ed2
[socket] Add LWIP_LOCK to socket factory functions
...
tcp_new() is an lwip core API call that must be bracketed with
the lwip lock on RP2040 per pico-sdk docs. Add LWIP_LOCK() to
socket() and socket_listen() factory functions.
2026-03-10 00:55:34 -10:00
J. Nick Koston
c182c0c74f
[socket] Hold lwip lock for entire readv/writev scatter-gather operation
...
Avoid repeated lock acquire/release cycles per iovec element.
The recursive mutex re-entry in inner calls is nearly free (counter
bump), while the outer lock prevents the expensive IRQ disable/enable
on each iteration.
2026-03-10 00:53:01 -10:00
J. Nick Koston
a88e9b8146
[socket] Fix RP2040 TCP race condition between lwip callbacks and main loop
...
On RP2040 (Pico W), arduino-pico sets PICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1,
which means lwip callbacks (recv_fn, accept_fn, err_fn) run from a PendSV
interrupt — not the main loop. This allows them to preempt read(), write(),
close(), and accept() at any point, causing race conditions on shared state
like the rx_buf_ pbuf chain.
The most critical race: recv_fn calls pbuf_cat(rx_buf_, pb) while read() is
freeing nodes in the same chain, leading to use-after-free and lwip's
"Creating an infinite loop" assertion panic. This is the root cause of #10681 .
Fix: implement RP2040's LwIPLock (previously a no-op) to call
cyw43_arch_lwip_begin/end, which acquires the pico-sdk async_context recursive
mutex. Add LWIP_LOCK() guards to all main-loop lwip API call sites in the
socket layer.
On ESP8266, lwip callbacks run cooperatively from the main loop, so
LwIPLock remains a no-op.
Closes #10681
2026-03-10 00:34:20 -10:00
J. Nick Koston
4b50d14496
[serial_proxy] Reduce loop() overhead by disabling when idle and splitting read path ( #14673 )
2026-03-10 02:10:03 -05:00
e82f0f4432
[cpptests] support testing platform components ( #13075 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-10 02:41:02 +00:00
00f809f5f0
[sen6x] fix memory leak issue ( #14623 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-09 21:45:20 -04:00
c31ac662bd
[multiple] Fix crashes from malformed external input ( #14643 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-09 20:39:58 -04:00
J. Nick Koston
d6ce5dda81
[ci] Skip YAML anchor keys in integration fixture component extraction ( #14670 )
2026-03-09 22:54:56 +00:00
J. Nick Koston
dadbdd0f7b
[ci] Make codeowner label update non-fatal for fork PRs ( #14668 )
2026-03-09 12:34:31 -10:00
d96be88ff5
[multiple] Fix reliability issues in 5 components ( #14655 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-09 18:32:57 -04:00
Jonathan Swoboda and Claude Opus 4.6
d2686b49be
[canbus] Fix multiple MCP component bugs ( #14461 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 18:15:33 -04:00
Keith Burzinski
468ce74c8e
[api][serial_proxy] Fix dangling pointer ( #14640 )
2026-03-09 17:04:47 -05:00
Jonathan Swoboda and Claude Opus 4.6
b3fc43c13c
[multiple] Fix wrong behavior in sensor calculations and drivers ( #14644 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 18:00:17 -04:00
Jonathan Swoboda and Claude Opus 4.6
308e8e78cd
[ble_scanner] Escape special characters in JSON output ( #14664 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:59:36 -04:00
Jonathan Swoboda and Claude Opus 4.6
470d9160a5
[demo] Fix alarm control panel auth bypass when code is omitted ( #14645 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:57:02 -04:00
Jonathan Swoboda and Claude Opus 4.6
9902447834
[multiple] Fix minor bugs in 8 components ( #14650 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:51:50 -04:00
Jonathan Swoboda and Claude Opus 4.6
7c1b9f0cb4
[multiple] Fix wrong behavior in 5 components ( #14647 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:22:06 -04:00
Jonathan Swoboda and Claude Opus 4.6
fecedeb018
[multiple] Fix crashes from malformed external input (batch 2) ( #14651 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:20:09 -04:00