J. Nick Koston
c3bd9af738
[socket] Add thread safety comments to lwip callbacks
...
Mark all lwip callbacks with IRQ context warning and
note that heap allocation (malloc) is not safe in this
context on RP2040.
2026-03-10 15:57:52 -10:00
J. Nick Koston
a0681bce6b
[socket] Combine shift and tcp_arg update into single loop in accept()
2026-03-10 15:09:41 -10:00
J. Nick Koston
7cb32321b1
cleanup
2026-03-10 14:57:30 -10:00
J. Nick Koston
b8e9ad931b
Merge remote-tracking branch 'upstream/dev' into rp2040-accept-no-irq-malloc
2026-03-10 14:55:56 -10:00
J. Nick Koston
a9e921e053
[socket] Refactor accept() to skip null entries without duplicate code
...
Consolidate the dequeue + shift + tcp_arg update into a single while
loop that skips null entries (freed by lwip while queued) and returns
the first valid PCB. Eliminates the duplicated shift/update logic.
2026-03-10 14:52:38 -10:00
J. Nick Koston
6751fcf0b8
clear error first
2026-03-10 14:46:44 -10:00
J. Nick Koston
b1e41be02f
clear error first
2026-03-10 14:46:02 -10:00
J. Nick Koston
9265d9e0f8
[socket] Buffer early data on queued PCBs to prevent data loss
...
When LWIPRawImpl creation was deferred to the main-loop accept(),
the queued PCB had no recv callback registered. lwip's default
tcp_recv_null handler ACKs incoming data but drops it silently.
On ESP8266, lwip processes TCP segments in batches — if the SYN
completion and first data packet arrive in the same batch, the
API handshake data is lost, causing SocketClosedAPIError (EOF).
Fix: register temporary recv/err callbacks on queued PCBs that
buffer any data received before accept() creates the LWIPRawImpl.
The buffered data is transferred to the new socket via init().
2026-03-10 14:45:45 -10:00
CFlix
b84d773bec
[bme280] Change communication error message to include "no response" hint. ( #14686 )
2026-03-10 20:24:46 -04:00
J. Nick Koston
756b00b59d
Reduce MAX_ACCEPTED_SOCKETS from 3 to 2
2026-03-10 14:10:38 -10:00
J. Nick Koston
6ad5f107d9
Unify accept queue to use raw PCBs on all platforms
...
The LWIPRawImpl object is only 20 bytes — no reason to heap-allocate it
in the callback on ESP8266 either. Store raw tcp_pcb pointers on both
platforms, removing the #ifdef branches and simplifying the code.
2026-03-10 14:07:12 -10:00
J. Nick Koston
49024c240b
Register temporary err callback on queued PCBs to prevent use-after-free
...
Between accept_fn_ storing a raw PCB and accept() picking it up, the
connection could error (RST, timeout). Without an error callback, lwip
frees the PCB silently, leaving a dangling pointer. When accept() later
creates LWIPRawImpl with it, the use-after-free corrupts the heap.
Fix: register a lightweight error callback (no allocation) in accept_fn_
that nulls the array slot when the PCB is freed. accept() checks for
null and skips freed PCBs. After shifting the array, tcp_arg pointers
are updated for remaining entries.
2026-03-10 14:02:56 -10:00
J. Nick Koston
e5c879290e
[socket] Fix RP2040 heap corruption from malloc in lwip accept IRQ callback
2026-03-10 13:54:50 -10: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
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
Jonathan Swoboda and Claude Opus 4.6
9418f35cc3
[multiple] Remove unnecessary heap allocations in 4 components ( #14656 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:18:44 -04:00
Jonathan Swoboda and Claude Opus 4.6
08a0608a48
[wifi][captive_portal][heatpumpir][es8388] Fix wrong behavior in 4 components ( #14657 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:18:21 -04:00
Jonathan Swoboda and Claude Opus 4.6
b721cd48e5
[hmc5883l][mmc5603][honeywellabp2][xgzp68xx][max9611] Fix uninitialized members ( #14659 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:18:07 -04:00
Jonathan Swoboda and Claude Opus 4.6
75f55adbfa
[api][at581x][vl53l0x] Fix bounds check issues in 3 components ( #14660 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:17:31 -04:00
Jonathan Swoboda and Claude Opus 4.6
a379e5a635
[runtime_image][st7701s] Fix BMP decoder and LCD init bugs ( #14663 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 17:16:29 -04:00