J. Nick Koston
f059a1c2ea
[api] Remove USE_API guards from api_pb2_service (aligned with parent PR)
2026-03-22 21:18:04 -10:00
J. Nick Koston
2cdb301fc4
Merge branch 'devirtualize-api-dispatch' into devirtualize-decode
2026-03-22 14:44:52 -10:00
J. Nick Koston
9c1e319aa8
Merge branch 'dev' into devirtualize-api-dispatch
2026-03-22 14:44:31 -10:00
cd05462e9f
[core] Use placement new allocation for Pvariables ( #15079 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-22 14:42:04 -10:00
J. Nick Koston and Claude Opus 4.6
e85065b1c4
[logger] Fix dummy_main.cpp Logger constructor for clang-tidy ( #15088 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 14:06:00 -10:00
J. Nick Koston
d0e705d948
[core] Inline Application::loop() to eliminate stack frame ( #15041 )
2026-03-22 12:46:28 -10:00
J. Nick Koston
2c06464f7b
[packet_transport] Use FixedVector and parent pointer to enable inline Callback storage ( #14946 )
2026-03-22 12:41:54 -10:00
J. Nick Koston
84727b1f71
[esp32] Validate eFuse MAC reads and reject garbage MACs ( #15049 )
2026-03-22 12:41:01 -10:00
J. Nick Koston
aef987dccf
[core] Fix Callback::create memcpy from function reference ( #14995 )
2026-03-22 12:37:46 -10:00
J. Nick Koston
b2b61bea6a
[web_server_idf] Inline send() to reduce httpd task stack depth ( #15045 )
2026-03-22 12:33:06 -10:00
J. Nick Koston
30f66be1da
[esp32] Mention ignore_pin_validation_error in flash pin error message ( #14998 )
2026-03-22 12:32:42 -10:00
J. Nick Koston
6caa9ee227
[logger] Move log level lookup tables to PROGMEM ( #15003 )
2026-03-22 12:32:08 -10:00
J. Nick Koston
9152f77cdd
[core] Reduce automation call chain stack depth ( #15042 )
2026-03-22 12:31:48 -10:00
J. Nick Koston
4d09eb2cec
[tests] Fix flaky ld24xx integration tests by disabling API batching ( #15050 )
2026-03-22 12:29:28 -10:00
J. Nick Koston
5cc4f6e85a
[logger] Add task_log_buffer_zephyr.cpp to platform source filter ( #15081 )
2026-03-22 12:29:12 -10:00
J. Nick Koston
27f3a5f5f4
[sht4x] Add missing hal.h include for millis() on ESP-IDF ( #15087 )
2026-03-22 11:54:54 -10:00
J. Nick Koston
593dbc9e67
[logger] Fix unit test and benchmark Logger constructor calls ( #15085 )
2026-03-23 09:50:58 +13:00
J. Nick Koston
daafa8faa3
[wifi] Inline trivial WiFiAP and WiFiComponent accessors ( #15075 )
2026-03-22 10:36:18 -10:00
Jason Kölker
2b6d63fd09
[pmsx003] Keep active-mode reads aligned ( #14832 )
2026-03-23 09:21:08 +13:00
c917b8ce06
[logger] Fix race condition in task log buffer initialization ( #15071 )
...
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>
2026-03-23 09:20:28 +13:00
Jonathan Swoboda
12b10d8b89
[ultrasonic] Fix ISR edge detection with debounce and trigger filtering ( #15014 )
2026-03-22 16:19:46 -04:00
J. Nick Koston
6a77b8b1f4
[light] Fix gamma LUT quantizing small brightness to zero ( #15060 )
2026-03-23 09:19:28 +13:00
J. Nick Koston
ba4be2a904
[uart] Fix RTL87xx compilation failure due to SUCCESS macro collision ( #15054 )
2026-03-23 09:17:59 +13:00
J. Nick Koston
ca0523b86c
[sht4x] Fix heater causing measurement jitter ( #15030 )
2026-03-23 09:16:46 +13:00
J. Nick Koston and Copilot
5e68282519
[light] Fix constant_brightness broken by gamma LUT refactor ( #15048 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-23 09:14:52 +13:00
Clyde Stubbs
a0d5525312
[lvgl] Meter fixes ( #15073 )
2026-03-22 19:01:49 +11:00
J. Nick Koston
a5bd718fc9
[api] Make ProtoDecodableMessage::decode() non-virtual
...
decode() is never called polymorphically - all call sites in
read_message_() use concrete types. The only indirect call site was
decode_to_message(), which also always knows the concrete type.
Convert decode_to_message() to a template so the concrete type is
preserved, allowing decode() to be non-virtual. The two classes that
override decode() (ExecuteServiceArgument, ExecuteServiceRequest) now
hide the base method, which works since all calls use concrete types.
This removes one vtable slot (4 bytes) from each decodable message
class vtable, saving ~148 bytes of flash.
2026-03-21 20:51:28 -10:00
J. Nick Koston
c48fd0738b
[mqtt] Rate-limit component resends to prevent task WDT on reconnect ( #15061 )
2026-03-21 15:33:42 -10:00
J. Nick Koston
8224da3460
[core] Inline Component::get_component_log_str() ( #15068 )
2026-03-21 15:32:24 -10:00
Clyde Stubbs
dd82a91d8f
[lvgl] Don't animate page change when not requested ( #15069 )
2026-03-22 11:13:17 +11:00
J. Nick Koston
86ec218f75
[benchmark] Add plaintext API frame write benchmarks ( #15036 )
2026-03-21 13:15:35 -10:00
Samuel Sieb
2a6ec597b4
[analog_threshhold] add missing header ( #15058 )
2026-03-21 18:13:08 +00:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
8dd69207ea
Bump aioesphomeapi from 44.6.2 to 44.7.0 ( #15052 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-21 10:24:56 +00:00
J. Nick Koston
1d191d2461
[api] Fix review comments and add USE_API guards
...
- Update comments to reflect that ProtoService methods moved to
APIConnection, not APIServerConnectionBase
- Fix comment referring to read_message as "override"
- Wrap #include "api_connection.h" and read_message_ implementation
in #ifdef USE_API guards
2026-03-20 21:29:42 -10:00
J. Nick Koston
20d3e7c13a
[api] Remove virtual destructor and rename read_message to read_message_
...
The virtual destructor was unnecessary since APIConnection is only
stored as unique_ptr<APIConnection>, never via a base class pointer.
Removing it eliminates the vtable entirely.
Rename read_message to read_message_ per clang-tidy naming convention
for protected methods.
2026-03-20 21:21:09 -10:00
J. Nick Koston
2067053adb
[api] Remove ProtoService base class
...
ProtoService was an abstract interface with 6 pure virtual methods,
but APIConnection was the only concrete implementation. Move all
functionality directly into APIConnection and remove the unnecessary
virtual dispatch and vtable overhead.
2026-03-20 21:14:45 -10:00
J. Nick Koston
e9d25645cb
[api] Move auth check helpers from ProtoService to APIConnection
...
check_connection_setup_() and check_authenticated_() call virtual
methods (is_connection_setup, on_no_setup_connection). When defined
in ProtoService, the compiler cannot devirtualize these calls.
Moving them to APIConnection (final) enables devirtualization.
2026-03-20 21:10:41 -10:00
J. Nick Koston
9583a6a921
[api] Restore override on is_authenticated (ProtoService virtual)
2026-03-20 21:05:03 -10:00
J. Nick Koston
391ad05d45
[api] Devirtualize API command dispatch
...
Move read_message() from APIServerConnectionBase into APIConnection
and drop the virtual keyword from all 64 on_* handler declarations.
Since APIConnection is final and the only subclass, the virtual
dispatch was unnecessary. With read_message and the on_* handlers
in the same class, the compiler can devirtualize the calls and
inline small handlers directly into the switch cases.
2026-03-20 20:58:54 -10:00
J. Nick Koston
d203a46ef8
[api] Enable HAVE_WEAK_SYMBOLS and HAVE_INLINE_ASM for libsodium ( #15038 )
2026-03-21 04:17:37 +00:00
J. Nick Koston
1920d8a887
[benchmark] Add noise encryption benchmarks ( #15037 )
2026-03-20 17:35:17 -10:00
J. Nick Koston
95dea59382
[core] Use SplitMix32 PRNG for random_uint32() ( #14984 )
2026-03-20 15:25:54 -10:00
J. Nick Koston
f3cddcee21
[core] Store parent pointers as members to enable inline Callback storage ( #14923 )
2026-03-20 15:25:40 -10:00
J. Nick Koston and Copilot
21e384cafd
[esp32] Disable PicolibC Newlib compatibility shim on IDF 6.0+ ( #15008 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-20 15:10:18 -10:00
J. Nick Koston
32db055b98
[number] Clean up NumberCall::perform() increment/decrement logic ( #15000 )
2026-03-20 15:09:28 -10:00
J. Nick Koston
2c87260046
[core] Optimize Component::is_ready() with bitmask check ( #15005 )
2026-03-20 15:09:13 -10:00
J. Nick Koston
51ccad8461
[preferences] Shorten TAG strings across all platforms ( #15004 )
2026-03-20 15:09:01 -10:00
J. Nick Koston
7f500c4b6e
[modbus] Fix size_t format warning in clear_rx_buffer_ ( #15002 )
2026-03-20 15:08:46 -10:00
J. Nick Koston
564d155cb6
[wifi] Use LOG_STR_LITERAL for scan complete log on ESP8266 ( #15001 )
2026-03-20 15:08:33 -10:00
J. Nick Koston
edf5542559
[analyze-memory] Attribute extern C symbols to components via source file mapping ( #15006 )
2026-03-20 15:05:17 -10:00