J. Nick Koston
e91e1edbe8
Merge remote-tracking branch 'origin/fix-memory-impact-platform-filter' into integration
2026-03-19 13:38:59 -10:00
J. Nick Koston
b5a1faac68
[ci] Add libretiny and zephyr to memory impact platform filter
...
Add libretiny and zephyr to PLATFORM_SPECIFIC_COMPONENTS so they
are correctly filtered out when an incompatible platform is selected
for memory impact analysis. Previously, libretiny was missing from
the set, causing it to be included in esp32-idf builds and producing
a misleading comment showing both platforms.
2026-03-19 13:32:40 -10:00
J. Nick Koston
8a28e40a9e
Merge remote-tracking branch 'upstream/api-dump-progmem' into integration
2026-03-19 12:41:04 -10:00
J. Nick Koston
78b10a24b0
Move message_name() strings to flash via LOG_STR
...
message_name() returned bare string literals that stayed in RAM on
ESP8266. Change return type to const LogString * and wrap with LOG_STR()
so they are stored in flash. Update log_send_message_ to use
LOG_STR_ARG() accordingly.
Also fix clang-tidy: rename append_p_esp8266_ to append_p_esp8266,
add NOLINTNEXTLINE for conditionally-unused dump_field overloads.
2026-03-19 12:40:38 -10:00
J. Nick Koston
68340875dd
Merge remote-tracking branch 'origin/api-dump-progmem' into integration
2026-03-19 12:38:52 -10:00
J. Nick Koston
fb07c708b5
Move message_name() strings to flash via LOG_STR
...
message_name() returned bare string literals that stayed in RAM on
ESP8266. Change return type to const LogString * and wrap with LOG_STR()
so they are stored in flash. Update log_send_message_ to use
LOG_STR_ARG() accordingly.
Also fix clang-tidy: rename append_p_esp8266_ to append_p_esp8266,
add NOLINTNEXTLINE for conditionally-unused dump_field overloads.
2026-03-19 12:35:29 -10:00
J. Nick Koston
96616e3ccb
Merge remote-tracking branch 'upstream/ci-ban-std-bind' into integration
2026-03-19 12:30:24 -10:00
J. Nick Koston
5e64e3a3d4
[api] Store dump strings in PROGMEM to save RAM on ESP8266
...
All string literals in api_pb2_dump.cpp (field names, message names,
enum value names) were stored in rodata which occupies RAM on ESP8266.
This meant every API protobuf change appeared as a RAM increase in CI
when using very_verbose logging.
Add append_p() to DumpBuffer for PROGMEM-safe string reading and update
the code generator to wrap all dump string literals with ESPHOME_PSTR().
On non-ESP8266 platforms, these are no-ops with zero overhead.
2026-03-19 12:24:10 -10:00
J. Nick Koston
b3281e0c2e
Address review: add word boundary and soften SBO wording
2026-03-19 01:32:51 -10:00
J. Nick Koston
df71e4db17
[ci] Ban std::bind in new C++ code
...
Lambdas are clearer, produce smaller binaries, and fit within the
std::function small-buffer optimization (avoiding heap allocation).
2026-03-19 01:22:36 -10:00
Javier Peletier
0a3393bed3
[core] Disable LeakSanitizer in C++ unit tests ( #14712 )
2026-03-18 23:13:36 -10:00
Javier Peletier
0c5f055d45
[core] cpp tests: Allow customizing code generation during tests ( #14681 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-18 00:16:01 +00:00
J. Nick Koston
1670f04a87
[core] Add CodSpeed C++ benchmarks for protobuf, main loop, and helpers ( #14878 )
2026-03-17 12:29:38 -10:00
J. Nick Koston
b3210de374
[core] Extract shared C++ build helpers from cpp_unit_test.py ( #14883 )
2026-03-17 08:53:36 -10:00
Diorcet Yann
73ca0ff106
[core] Small improvements ( #14884 )
2026-03-17 09:22:31 -04:00
Jonathan Swoboda
18a082de30
[ci] Support URL and version extras in generate-esp32-boards.py ( #14828 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-15 14:58:01 -04:00
J. Nick Koston
5e3c44d48f
[rp2040] Add CI check for boards.py freshness ( #14754 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-13 13:28:55 -10:00
J. Nick Koston
56f7b3e61b
[ci] Only run integration tests for changed components ( #14776 )
2026-03-13 13:20:35 -10:00
J. Nick Koston
05d285ba86
[api] Fix heap-buffer-overflow in protobuf message dump for StringRef ( #14721 )
2026-03-12 07:16:53 -10:00
Adam DeMuri
4df3d3554e
Enable the address and behavior sanitizers for C++ component unit tests ( #13490 )
2026-03-10 19:44:05 -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
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
Javier Peletier
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
J. Nick Koston
d6ce5dda81
[ci] Skip YAML anchor keys in integration fixture component extraction ( #14670 )
2026-03-09 22:54:56 +00:00
Clyde Stubbs
f3ca86b670
[ci-custom] Directions on constant hoisting ( #14637 )
2026-03-08 23:48:03 -04:00
J. Nick Koston
088a8a4338
[ci] Match symbols with changed signatures in memory impact analysis ( #14600 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-08 17:23:58 -10:00
tomaszduda23
e4b89a69d4
[nrf52, ota] ble and serial OTA based on mcumgr ( #11932 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-07 20:32:20 -10:00
J. Nick Koston
be6c3c52ac
[api] Add force proto field option to skip zero checks on hot path ( #14610 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 18:59:13 -10:00
J. Nick Koston
77f2c371b2
[api] Single-pass protobuf encode for BLE proxy advertisements ( #14575 )
2026-03-07 07:26:34 -10:00
J. Nick Koston
42dbb51022
[api] Devirtualize protobuf encode/calculate_size ( #14449 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-06 19:03:54 +00:00
Kevin Ahrendt
5c5ea8824e
[audio_file] New component for embedding files into firmware ( #14434 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-05 09:51:08 -10:00
Clyde Stubbs
f5c37bf486
[packet_transport] Minimise heap allocations ( #14482 )
2026-03-05 14:24:01 +11:00
J. Nick Koston
78602ccacb
[ci] Add lint check to prevent powf in core and base entity platforms ( #14126 )
2026-03-03 07:03:50 -10:00
J. Nick Koston
1f1b20f4fe
[core] Pack entity string properties into PROGMEM-indexed uint8_t fields ( #14171 )
2026-03-03 07:03:24 -10:00
J. Nick Koston
f68a3ed15d
[api] Remove virtual destructor from ProtoMessage ( #14393 )
2026-03-01 18:09:00 -10:00
J. Nick Koston
b7cb65ec49
[ci] Fix TypeError in ci-custom.py when POST lint checks fail ( #14378 )
2026-02-28 14:23:20 -10:00
J. Nick Koston
5c56b99742
[ci] Fix C++ unit tests missing time component dependency ( #14364 )
2026-02-27 13:19:11 -10:00
J. Nick Koston
1ccfcfc8d8
[time] Eliminate libc timezone bloat (~9.5KB flash ESP32, ~2% RAM on ESP8266) ( #13635 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 15:12:44 -10:00
J. Nick Koston
8bb577de64
[api] Split ProtoVarInt::parse into 32-bit and 64-bit phases ( #14039 )
2026-02-25 12:23:13 -06:00
Jonathan Swoboda
fb6c7d81d5
[core] Fix multiline log continuations without leading whitespace ( #14217 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 05:08:40 +00:00
J. Nick Koston
9571a979eb
[ci] Suggest StringRef instead of std::string_view ( #14183 )
2026-02-21 13:53:45 -06:00
J. Nick Koston
f77da803c9
[api] Write protobuf encode output to pre-sized buffer directly ( #14018 )
2026-02-20 21:39:18 -06:00
Jonathan Swoboda
9ce01fc369
[esp32] Add engineering_sample option for ESP32-P4 ( #14139 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 11:20:05 -05:00
J. Nick Koston
b5a8e1c94c
[ci] Update lint message to recommend constexpr over static const ( #14099 )
2026-02-19 09:06:46 -06:00
Guillermo Ruffino
7b251dcc31
[schema-gen] fix Windows: ensure UTF-8 encoding when reading component files ( #13952 )
2026-02-12 11:23:59 -05: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
c658d7b57f
[api] Merge auth check into base read_message, eliminate APIServerConnection ( #13873 )
2026-02-09 12:02:02 -06:00
J. Nick Koston
3cde3daceb
[api] Collapse APIServerConnection intermediary layer ( #13872 )
2026-02-09 08:45:33 -06:00
J. Nick Koston
140ec0639c
[api] Elide empty message construction in protobuf dispatch ( #13871 )
2026-02-09 03:24:45 -06:00