J. Nick Koston
8f7c34c502
Merge branch 'proto-backpatch-encode' into integration
2026-03-06 14:27:11 -10:00
J. Nick Koston
3d5b1e327e
[api] Add single-pass encode_sub_message to eliminate redundant calculate_size() calls
...
Replace encode_message with encode_sub_message for protobuf submessage encoding.
For repeated submessage fields, encode_sub_message uses a backpatch approach:
writes field tag, reserves 1 byte for length varint, encodes the body, then
backpatches the actual length. For bodies >= 128 bytes, shifts the body forward
to make room for a multi-byte varint. This eliminates 2 of 3 calculate_size()
calls per repeated submessage element.
For singular submessage fields, encode_sub_message uses calculate_size() upfront
to skip empty submessages without writing to the buffer, preserving the debug
size check.
For the BLE advertisement proxy hot path (16 advertisements per batch), this
reduces calculate_size() calls from 48 to 16 per flush.
2026-03-06 14:26:58 -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
J. Nick Koston
191e5d70b5
Merge origin/log-skip-vprintf-indirection into integration
2026-03-05 22:12:26 -10:00
J. Nick Koston
6e36af6c4b
[log] Add ESPHOME_DEBUG_ASSERT for log function invariants
...
Add ESPHOME_DEBUG_ASSERT macro that only fires when ESPHOME_DEBUG is
defined. Use it to assert global_logger is not null in log functions.
Enable ESPHOME_DEBUG in C++ unit test builds so these assertions are
active during testing but have zero cost in production firmware.
2026-03-05 22:05:17 -10:00
J. Nick Koston
21fb5975d6
Merge remote-tracking branch 'upstream/dev' into integration
...
# Conflicts:
# esphome/components/esphome/ota/ota_esphome.h
# esphome/components/http_request/ota/ota_http_request.cpp
# esphome/components/http_request/ota/ota_http_request.h
# esphome/components/ota/ota_backend_factory.h
# esphome/components/web_server/ota/ota_web_server.cpp
# esphome/components/wifi/wifi_component.cpp
2026-03-05 10:57:44 -10: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
J. Nick Koston
6e99bc96a2
Merge remote-tracking branch 'upstream/rp2040-socket-wake' into integration
2026-03-04 22:37:44 -10:00
Clyde Stubbs
f5c37bf486
[packet_transport] Minimise heap allocations ( #14482 )
2026-03-05 14:24:01 +11:00
J. Nick Koston
765075b1d0
tweaks
2026-03-03 21:35:11 -10:00
J. Nick Koston
3a5f03d0a3
naming
2026-03-03 20:22:02 -10:00
J. Nick Koston
daf2e6ecc8
naming
2026-03-03 20:21:25 -10:00
J. Nick Koston
08c9990b53
simple register
2026-03-03 20:14:34 -10:00
J. Nick Koston
a7b61b1061
twea
2026-03-03 18:22:23 -10:00
J. Nick Koston
b0279752eb
tweak
2026-03-03 17:09:36 -10: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
J. Nick Koston
55ef8393af
[api] Remove is_single parameter and fix batch buffer preparation ( #13773 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-05 15:19:03 +01:00
J. Nick Koston
f4e410f47f
[ci] Block new scanf() usage to prevent ~9.8KB flash bloat ( #13657 )
2026-02-06 02:56:43 +13:00
dependabot[bot]
4d05cd3059
Bump ruff from 0.14.14 to 0.15.0 ( #13752 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-02-04 09:24:05 +00:00
J. Nick Koston
8d0ce49eb4
[api] Eliminate intermediate buffers in protobuf dump helpers ( #13742 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-03 16:34:15 +01:00
J. Nick Koston
a7fbecb25c
[ci] Soft-deprecate str_sprintf/str_snprintf to prevent hidden heap allocations ( #13227 )
2026-01-26 17:28:07 -10:00
J. Nick Koston
fc16ad806a
[ci] Block sprintf/vsprintf usage, suggest snprintf alternatives ( #13305 )
2026-01-20 17:53:36 -10:00
J. Nick Koston
ea0fac96cb
[core][mqtt] Add str_sanitize_to(), soft-deprecate str_sanitize() ( #13233 )
2026-01-18 18:42:04 -10:00
J. Nick Koston
3f892711c7
[core][opentherm] Add format_bin_to(), soft-deprecate format_bin() ( #13232 )
2026-01-17 11:09:42 -10:00
J. Nick Koston
42491569c8
[analyze_memory] Add nRF52/Zephyr platform support for memory analysis ( #13249 )
2026-01-15 17:53:53 -10:00
J. Nick Koston
00cc9e44b6
[analyze_memory] Fix ELF section mapping for RTL87xx and LN882X platforms ( #13213 )
2026-01-15 10:38:24 -10:00
J. Nick Koston
7fed9144a6
[api] Use stack buffer for VERY_VERBOSE proto message dumps ( #13176 )
2026-01-13 08:04:48 -10:00
J. Nick Koston
6c043be4d3
[ci] Add format_hex_pretty to heap-allocating helper lint check ( #13178 )
2026-01-12 20:55:23 -10:00
J. Nick Koston
889886909b
[core] Soft deprecate heap-allocating string helpers to prevent fragmentation patterns ( #13156 )
2026-01-12 12:48:54 -10:00
J. Nick Koston
7ea6bcef88
[api] Use stack buffer for bytes field dumping in proto message logs ( #13162 )
2026-01-12 07:37:58 -10:00
J. Nick Koston
912f94d1e8
[api] Use StringRef for HomeassistantServiceMap.value to eliminate heap allocations ( #13154 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-11 17:54:06 -10:00
J. Nick Koston
45c0796e40
[ci] Add RP2040 to memory impact analysis ( #13134 )
2026-01-11 17:19:00 -10:00
Keith Burzinski
f2eb61a767
[api] Proto code generator changes for #12985 ( #13100 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-01-10 15:43:27 -10:00