fix(nimble): fix crash on disconnect due to stale per-connection CCCD pool
Closes BLERP-3057, BLERP-3060, BLERP-3061, and BLERP-3062
See merge request espressif/esp-idf!51868
test(wpa_supplicant): wait for the idle task after esp_wifi_deinit in eloop unit test
Closes IDFCI-11307 and IDFCI-12170
See merge request espressif/esp-idf!52111
The example enables CONFIG_ESP_SYSTEM_USE_FRAME_POINTER, which pushes the
bootloader to 0x6020 bytes on ESP32-H4. That exceeds the 0x6000 budget
available with the default partition table offset of 0x8000, breaking the
build for both the app_trace_jtag and app_trace_uart CI configurations.
Move the partition table to 0x10000 on ESP32-H4, same as already done for
ESP32-P4, and drop the now stale "only overflowed on P4" note. Tell OpenOCD
the matching app image offset so GDB can map flash on both chips.
- Update LC3 in btc and bta, update AT
- Update LC3 in SCO frame transfer and examples
- improve lc3 transfer speed
- Fix some encoding and decoding bugs
- Rename the functions and macros to fit both msbc and lc3
- Add config dependency
- Add migration guides for bluetooth-classic
- change the statement of "Wide Band Speech" to "Wideband Speech" to fit HFPv1.10
- Added macros for registering handlers to run before the scheduler and app main.
- Updated various components to utilize the new registration system for initialization.
- Refactored app startup logic to streamline initialization sequence.
change(build): drop BUILD_COMPONENTS support and migrate test_apps to not use it for buildv2
Closes IDF-15859
See merge request espressif/esp-idf!51695
Auto-detect used to pick the first Espressif device, even when it did
not match IDF_TARGET. With several boards attached, flash/monitor could
talk to the wrong chip.
Pass the project target into esptool so unmatched ports are skipped.
Resolve the port after ensure_build_directory() so the target is known.
For monitor on an unconfigured project, probe the connected chip and
pass it directly to idf_monitor without configuring the project.
A blocking transport read can return zero when no data arrives before
timeout. Passing that zero length to http_parser_execute signals EOF while
a response is incomplete, puts the parser in HPE_INVALID_EOF_STATE, and
causes later response bytes to be discarded. The shortened response can
then be treated as successful.
Skip parser execution for every zero-length transport read, not only async
reads. Also compare the raw esp_transport_read result against raw
ERR_TCP_TRANSPORT values so timeout and peer-close failures retain their
documented HTTP error classifications.
A standalone reproduction built with the unmodified HTTP parser showed the
blocking timeout transition to HPE_INVALID_EOF_STATE and loss of the
remaining 15 bytes. Skipping the zero-length parser call delivered the full
chunk and message-complete callback.
Disclosure: this fix was prepared with AI assistance (Claude) and reviewed by me before submission.
Constraint: esp_http_client_get_data returns raw transport result values before esp_transport_translate_error.
Rejected: Keep the async-only zero-length guard | blocking transport reads also return zero on timeout.
Confidence: high
Scope-risk: moderate
Directive: Do not pass a transient zero-length transport read to the HTTP parser as EOF.
Tested: standalone blocking mid-chunk timeout reproduction; source-only duplicate-comment cleanup; git diff --check
Not-tested: hardware TLS transport integration
Signed-off-by: yi chen <94xhn1@gmail.com>