J. Nick Koston
828fa3c408
Merge branch 'ble-loop-extract-transitions' into integration
2026-02-09 20:59:24 -06:00
J. Nick Koston
fca26ce944
[esp32_ble] Extract state transitions from ESP32BLE::loop() hot path
2026-02-09 20:57:36 -06:00
J. Nick Koston
b22290b2bb
Merge branch 'api-server-extract-accept' into integration
2026-02-09 20:43:45 -06:00
J. Nick Koston
a671f6ea85
Use if/else instead of continue in client loop
2026-02-09 20:42:25 -06:00
J. Nick Koston
0c62781539
Extract remove_client_() from APIServer::loop() hot path
2026-02-09 20:42:09 -06:00
J. Nick Koston
7b3ab7f7f0
Merge branch 'api-server-extract-accept' into integration
2026-02-09 20:35:24 -06:00
J. Nick Koston
e6c743ea67
[api] Extract accept_new_connections_() from APIServer::loop() hot path
2026-02-09 20:34:11 -06:00
J. Nick Koston
94684cdc0b
Revert early returns in process_active_iterator_()
...
The if/else pattern produces smaller code than early returns.
2026-02-09 20:20:33 -06:00
J. Nick Koston
5c8f1a180b
Merge branch 'api-dedup-iterator-batch' into integration
2026-02-09 20:17:54 -06:00
J. Nick Koston
c53baf70c7
Collapse else chain in process_active_iterator_() with early returns
2026-02-09 20:16:09 -06:00
J. Nick Koston
041c43fb32
Add INITIAL_STATE comment to else branch
2026-02-09 20:14:54 -06:00
J. Nick Koston
b4741ade0d
Remove unreachable NONE case from process_active_iterator_()
2026-02-09 20:13:57 -06:00
J. Nick Koston
2c3a92db97
Add forward declaration for ComponentIterator in api_connection.h
2026-02-09 20:11:45 -06:00
J. Nick Koston
fc91a4d7a3
Extract iterator switch from loop() into process_active_iterator_()
...
The iterator switch only runs during initial connection handshake.
In steady state active_iterator_ is always NONE, so the entire
switch block is cold code that wastes icache in the hot loop path.
2026-02-09 20:10:44 -06:00
J. Nick Koston
eb26b5d45c
Merge branch 'api-dedup-iterator-batch' into integration
2026-02-09 20:02:32 -06:00
J. Nick Koston
842e0a9073
Merge branch 'app-loop-extract-dump-config' into integration
2026-02-09 20:02:27 -06:00
J. Nick Koston
8f367571f8
Add precondition comment to process_dump_config_()
2026-02-09 20:01:43 -06:00
J. Nick Koston
9bf90eff01
[api] De-duplicate iterator batch processing in APIConnection::loop()
...
Replace the process_iterator_batch_ template (instantiated separately
for ListEntitiesIterator and InitialStateIterator) with a single
non-template method taking a ComponentIterator& base class reference.
Both iterators inherit from ComponentIterator, and the template only
called completed() and advance() which are both base class methods.
The two template instantiations generated ~160 bytes of duplicate code
in APIConnection::loop(). The single non-template version is 79 bytes,
saving 61 bytes net flash and removing 140 bytes of cold
connect/reconnect code from the hot loop path.
Also move the duplicated completed() method from ListEntitiesIterator
and InitialStateIterator to the ComponentIterator base class where
state_ is defined.
2026-02-09 19:57:29 -06:00
J. Nick Koston
1213774168
[core] Extract dump_config from Application::loop() hot path
...
Extract the dump_config block (version/chip info logging + per-component
dump_config iteration) into a separate noinline process_dump_config_()
method.
This code runs once at startup and once on API reconnect, but was
inlined into loop() which runs ~7000 times/minute. On ESP32 the
dump_config block compiled to ~140 bytes (38% of loop's 368 bytes),
including esp_chip_info(), integer division for revision formatting,
and multiple ESP_LOG calls. Extracting it frees ~2 icache lines for
the hot path.
2026-02-09 19:43:25 -06:00
J. Nick Koston
80fd7b2e49
Merge branch 'scheduler-reduce-hot-path' into integration
2026-02-09 19:32:16 -06:00
J. Nick Koston
c1328f1b3a
[scheduler] Reduce set_timer_common_ hot path size by 25%
...
Restructure set_timer_common_ to reduce icache pressure on the hot path
(538 → 405 bytes on ESP32):
- Extract calculate_interval_offset_ as noinline helper - float math and
random_float() only needed for intervals, not timeouts
- Extract is_retry_cancelled_locked_ as noinline helper - retry path is
cold and deprecated (removal planned for 2026.8.0)
- Merge duplicated cancel+push_back epilogue by computing a target vector
pointer (defer_queue_ vs to_add_) before the branch, converging both
paths at a single cancel+push sequence
- Replace 4-way switch on name_type with unified set_name() method that
does a single branch + store instead of 4 separate bitfield RMW
sequences
- Remove now-unused individual name setters (set_static_name,
set_hashed_name, set_numeric_id, set_internal_id)
2026-02-09 19:24:15 -06:00
Jonathan Swoboda
dcbb020479
[uart] Fix available() return type to size_t across components ( #13898 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 20:02:41 -05:00
J. Nick Koston
b77bcf6460
Merge branch 'fix-available-size-t' into integration
2026-02-09 18:57:08 -06:00
Jonathan Swoboda
4d9a75d808
Fix available() return type to size_t across UART components
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 19:42:05 -05:00
J. Nick Koston
59637ceda5
Merge branch 'peername_no_double_ram' into integration
2026-02-09 18:40:28 -06:00
J. Nick Koston
4c006d98af
Merge remote-tracking branch 'upstream/dev' into peername_no_double_ram
...
# Conflicts:
# esphome/components/api/api_connection.cpp
2026-02-09 18:38:02 -06:00
J. Nick Koston
33c1040668
Merge remote-tracking branch 'upstream/dev' into integration
...
# Conflicts:
# esphome/components/dlms_meter/dlms_meter.cpp
# esphome/components/hlk_fm22x/hlk_fm22x.cpp
# esphome/components/ld2420/ld2420.cpp
2026-02-09 18:36:55 -06:00
J. Nick Koston
87ac263264
[dsmr] Batch UART reads to reduce per-loop overhead ( #13826 )
2026-02-10 00:32:52 +00:00
Sean Kelly
097901e9c8
[aqi] Fix AQI calculation for specific pm2.5 or pm10 readings ( #13770 )
2026-02-09 19:30:37 -05:00
J. Nick Koston
01a90074ba
[ld2420] Batch UART reads to reduce loop overhead ( #13821 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-10 00:25:34 +00:00
J. Nick Koston
57b85a8400
[dlms_meter] Batch UART reads to reduce per-loop overhead ( #13828 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-10 00:24:20 +00:00
J. Nick Koston
2edfcf278f
[hlk_fm22x] Replace per-cycle vector allocation with member buffer ( #13859 )
2026-02-09 18:21:10 -06:00
J. Nick Koston
bcd4a9fc39
[pylontech] Batch UART reads to reduce loop overhead ( #13824 )
2026-02-09 18:20:53 -06:00
J. Nick Koston
78df8be31f
[logger] Resolve thread name once and pass through logging chain ( #13836 )
2026-02-09 18:16:27 -06:00
J. Nick Koston
dacc557a16
[uart] Convert parity_to_str to PROGMEM_STRING_TABLE ( #13805 )
2026-02-09 18:15:48 -06:00
J. Nick Koston
3767c5ec91
[scheduler] Make core timer ID collisions impossible with type-safe internal IDs ( #13882 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-09 16:48:08 -06:00
J. Nick Koston
13ef9d0fcd
Merge remote-tracking branch 'upstream/dev' into integration
2026-02-09 16:46:03 -06:00
George Joseph
7c1327f96a
[mipi_dsi] Add WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD 3.4C and 4C ( #13840 )
2026-02-10 09:44:47 +11:00
Jonathan Swoboda
475db750e0
[uart] Change available() return type from int to size_t ( #13893 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 17:41:16 -05:00
dependabot[bot]
8f74b027b4
Bump setuptools from 80.10.2 to 82.0.0 ( #13897 )
2026-02-09 16:40:32 -06:00
tomaszduda23
b2b9e0cb0a
[nrf52,zigee] print reporting status ( #13890 )
...
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com >
2026-02-09 16:00:08 -05:00
tronikos
dbf202bf0d
Add get_away and get_on in WaterHeaterCall and deprecate get_state ( #13891 )
2026-02-09 20:57:36 +00:00
J. Nick Koston
b6fdd29953
[voice_assistant] Replace timer unordered_map with vector to eliminate per-tick heap allocation ( #13857 )
2026-02-09 14:42:40 -06:00
Clyde Stubbs
00256e3ca0
[mipi_rgb] Allow use on P4 ( #13740 )
2026-02-10 06:35:41 +11:00
J. Nick Koston
38d3de7c00
Merge remote-tracking branch 'upstream/dev' into integration
2026-02-09 13:19:29 -06:00
J. Nick Koston
e0712cc53b
[scheduler] Make core timer ID collisions impossible with type-safe internal IDs ( #13882 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-09 13:16:22 -06:00
J. Nick Koston
6c6da8a3cd
[api] Skip class generation for empty SOURCE_CLIENT protobuf messages ( #13880 )
2026-02-09 18:45:24 +00:00
J. Nick Koston
e4ea016d1e
[ci] Block new std::to_string() usage, suggest snprintf alternatives ( #13369 )
2026-02-09 12:26:19 -06:00
J. Nick Koston
41a9588d81
[i2c] Replace switch with if-else to avoid CSWTCH table in RAM ( #13815 )
2026-02-09 12:26:06 -06:00
J. Nick Koston
cd55eb927d
[modbus] Batch UART reads to reduce loop overhead ( #13822 )
2026-02-09 12:21:15 -06:00