Commit Graph

22328 Commits

Author SHA1 Message Date
J. Nick Koston
19b0d38a43 Merge branch 'compact_string_wifi' into integration 2026-02-11 14:57:38 -06:00
J. Nick Koston
340156945f remove now unused 2026-02-11 14:57:17 -06:00
J. Nick Koston
a7c28fb68a Merge branch 'compact_string_wifi' into integration 2026-02-11 14:53:45 -06:00
J. Nick Koston
ee0f3a8548 fix pre-existing bug 2026-02-11 14:52:06 -06:00
J. Nick Koston
6a5015b2df debloat 2026-02-11 14:43:24 -06:00
J. Nick Koston
322fe205ab debloat 2026-02-11 14:40:05 -06:00
J. Nick Koston
f8115e9b18 Revert "reduce blast"
This reverts commit c1d53d9bad.
2026-02-11 14:39:54 -06:00
J. Nick Koston
0113575e4c reduce some of the StringRef bloat 2026-02-11 14:33:29 -06:00
J. Nick Koston
c1d53d9bad reduce blast 2026-02-11 14:02:10 -06:00
J. Nick Koston
18a6e43db8 avoid some conversion overhead 2026-02-11 13:51:49 -06:00
J. Nick Koston
2506831445 contain complexity into wifi 2026-02-11 13:34:18 -06:00
J. Nick Koston
90209e73c0 Merge branch 'dev' into compact_string_wifi 2026-02-11 13:20:38 -06:00
J. Nick Koston
64a98599a6 Merge remote-tracking branch 'upstream/dev' into integration 2026-02-11 12:22:26 -06:00
J. Nick Koston
fc7e9c8a0c add reverse operators 2026-02-11 12:20:36 -06:00
J. Nick Koston
c9c125aa8d [socket] Devirtualize Socket::ready() and implement working ready() for LWIP raw TCP (#13913)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-11 17:54:58 +00:00
schrob
8d62a6a88a [openthread] Fix warning on old C89 implicit field zero init (#13935) 2026-02-11 11:54:31 -06:00
J. Nick Koston
5d4fcaaf34 Merge remote-tracking branch 'upstream/dev' into integration 2026-02-11 11:42:01 -06:00
J. Nick Koston
0ec02d4886 [preferences] Replace per-element erase with clear() in sync() (#13934) 2026-02-11 11:41:53 -06:00
Nate Clark
1411868a0b [mqtt.cover] Add option to publish states as JSON payload (#12639)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 11:40:27 -06:00
J. Nick Koston
68c233b3bd Merge branch 'api-optimize-varint-encoding' into integration 2026-02-11 11:37:42 -06:00
J. Nick Koston
8f7e64dd0b Merge remote-tracking branch 'upstream/dev' into integration 2026-02-11 11:37:35 -06:00
J. Nick Koston
069c90ec4a [api] Split process_batch_ to reduce stack on single-message hot path (#13907) 2026-02-11 11:34:43 -06:00
J. Nick Koston
242d152edc Use ESPHOME_DEBUG_API guard instead of DEBUG
CI compile tests also define DEBUG, so a dedicated guard is needed.
Enable ESPHOME_DEBUG_API in integration tests via conftest.py.
2026-02-11 11:34:14 -06:00
J. Nick Koston
e63308aa33 Use DEBUG guard for asserts instead of custom define
Integration tests already pass -DDEBUG, so no custom define needed.
2026-02-11 11:30:51 -06:00
J. Nick Koston
93ff39709a Enable ESPHOME_DEBUG_API in API integration tests 2026-02-11 11:28:08 -06:00
J. Nick Koston
d3e47a5d80 Fix encode_bool to encode actual value when force=true 2026-02-11 11:20:41 -06:00
J. Nick Koston
77d8fc80be Guard asserts with ESPHOME_DEBUG_API to avoid flash overhead 2026-02-11 11:18:50 -06:00
J. Nick Koston
fb1c495506 tweaks 2026-02-11 11:12:46 -06:00
J. Nick Koston
dc2085cc25 tweaks 2026-02-11 11:11:22 -06:00
J. Nick Koston
930a186168 [web_server_idf] Use constant-time comparison for Basic Auth (#13868) 2026-02-11 11:03:27 -06:00
J. Nick Koston
25baec48ee [api] Optimize varint encoding to eliminate uint64_t widening
Replace ProtoVarInt temporaries with direct uint32_t encoding functions
to avoid unnecessary 64-bit widening on 32-bit architectures (ESP32 Xtensa).

- Add encode_varint_to_buffer() free function for direct buffer encoding
- Replace encode_varint_raw(ProtoVarInt) with uint32_t-native implementation
- Add encode_varint_raw_64() for the few call sites needing 64-bit (BLE)
- Remove unused ProtoVarInt::encode() and encode_to_buffer_unchecked()
- Remove dead null checks from ProtoVarInt::parse()

Net savings: -152 bytes flash on ESP32 IDF.
2026-02-11 11:02:03 -06:00
Djordje Mandic
b1f0db9da8 [bl0942] Update reference values (#12867) 2026-02-11 11:10:32 -05:00
J. Nick Koston
923445eb5d [light] Eliminate redundant clamp in LightCall::validate_() (#13923) 2026-02-11 10:06:44 -06:00
J. Nick Koston
86f0012abd Merge remote-tracking branch 'upstream/dev' into integration 2026-02-11 09:56:47 -06:00
J. Nick Koston
c82d630cf5 Merge branch 'preferences-clear-on-sync' into integration 2026-02-11 09:53:45 -06:00
J. Nick Koston
185786604b [preferences] Replace per-element erase with clear() in sync()
NVS/FDB write failures are permanent (flash worn out, partition full,
handle invalid). The NVS layer already performs internal garbage
collection during writes, so retrying the same call will always fail
again. Keeping failed entries in the vector leaked memory and forced
a reverse-iterate + per-element erase pattern that generated ~130
bytes of inlined vector move/destroy code for NVSData objects.

Replace with a forward range-for and a single clear() at the end.
2026-02-11 09:48:32 -06:00
tomaszduda23
9bdae5183c [nrf52,logger] add support for task_log_buffer_size (#13862)
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
2026-02-11 15:43:55 +00:00
J. Nick Koston
e0f3d87c17 Merge remote-tracking branch 'tomaszduda23/logger_threading' into integration 2026-02-11 09:18:41 -06:00
J. Nick Koston
8b53f9a649 revert to 0 disabled to test off path 2026-02-11 08:48:22 -06:00
J. Nick Koston
a451491b47 tweak semantics to match 2026-02-11 08:46:30 -06:00
J. Nick Koston
37f97c9043 [esp8266][rp2040] Eliminate heap fallback in preference save/load (#13928) 2026-02-11 08:41:15 -06:00
J. Nick Koston
8e785a2216 [web_server] Remove unnecessary packed attribute from DeferredEvent (#13932) 2026-02-11 08:40:41 -06:00
schrob
4fb1ddf212 [api] Fix compiler format warnings (#13931) 2026-02-11 08:40:21 -06:00
J. Nick Koston
4f7d4e1fd3 make sure its > 0 in test 2026-02-11 08:36:38 -06:00
J. Nick Koston
1050d083b4 cleanup ifdefs and typos 2026-02-11 08:34:17 -06:00
J. Nick Koston
ba5703254a Merge remote-tracking branch 'origin/web-server-remove-packed-deferred-event' into integration 2026-02-11 08:23:32 -06:00
J. Nick Koston
48cc739bab Add static_assert to guard DeferredEvent size and update comments
Add compile-time check that DeferredEvent has no padding, so future
field additions would trigger a build error rather than silently
reintroducing the unaligned access codegen issue.

Update comments to reference pointer sizes instead of hardcoded "8 bytes".
2026-02-11 08:17:51 -06:00
J. Nick Koston
11735bc2ed Merge branch 'web-server-remove-packed-deferred-event' into integration 2026-02-11 08:13:19 -06:00
J. Nick Koston
e139722e9d [web_server] Remove unnecessary packed attribute from DeferredEvent
DeferredEvent contains two pointers (void* + function pointer), which
are already naturally 4-byte aligned on all ESPHome targets. The struct
is 8 bytes with no padding regardless of packed.

The packed attribute forces the compiler to use byte-by-byte loads and
stores instead of word-aligned access, bloating deq_push_back_with_dedup_
from 163 to 317 bytes due to shift/mask/or sequences for every field
access.

The packed attribute was added in #7538 likely to guarantee the struct
stayed at 8 bytes, but this is already the case without it since both
fields are pointer-sized.
2026-02-11 08:11:31 -06:00
J. Nick Koston
48e0c9c76b Merge branch 'preferences-eliminate-heap-fallback' into integration 2026-02-11 07:31:30 -06:00