Commit Graph
25558 Commits
Author SHA1 Message Date
J. Nick Koston 5a44d4f14d Merge branch 'binary-sensor-remove-optional-state' into integration 2026-03-22 16:18:17 -10:00
J. Nick Koston 5854fa1d82 [binary_sensor] Access flags_ directly in set_new_state to reduce flash 2026-03-22 16:17:35 -10:00
J. Nick Koston e28c9d191c [binary_sensor] Move send_state_internal to header for devirtualization 2026-03-22 16:16:59 -10:00
J. Nick Koston 2833401cc1 [binary_sensor] Simplify else-if in set_new_state 2026-03-22 16:15:24 -10:00
J. Nick Koston 1e2c5fbc4e [binary_sensor] Update state before firing callbacks in set_new_state
Move set_has_state and set_state_value_ before callback invocations
so callback code can inspect the entity's current state via
get_state()/has_state(). The old state is passed as a parameter.

Addresses Copilot review feedback.
2026-03-22 16:13:35 -10:00
J. Nick Koston db3cfaa3fc [binary_sensor] Reduce flash: un-inline send_state_internal, optimize set_new_state
Move send_state_internal back to .cpp to avoid duplicating it at each
call site (publish_state and Filter::output).

Optimize set_new_state to compare has_state + value directly instead
of constructing optional<T> on stack for the comparison. Optionals
are only constructed in the changed path for callbacks that need them.
2026-03-22 16:11:06 -10:00
J. Nick Koston fc1186895c [binary_sensor] Fix stale comment in StatefulEntityBase docs 2026-03-22 16:03:44 -10:00
J. Nick Koston 047a744ed3 [binary_sensor] Inline send_state_internal into header 2026-03-22 16:02:51 -10:00
J. Nick Koston e406fb25cb [binary_sensor] Move trigger_on_initial_state out of EntityBase flags into BinarySensor
Use pure virtual get/set methods on StatefulEntityBase instead of
storing the flag in EntityBase::flags_. This keeps EntityBase clean
and avoids mixing binary_sensor-specific state into the base entity.
2026-03-22 16:01:39 -10:00
J. Nick Koston 98b0aea6bf [binary_sensor] Restore comment on state member 2026-03-22 16:00:07 -10:00
J. Nick Koston 7754e517f2 [binary_sensor] Add documentation comments to StatefulEntityBase 2026-03-22 15:59:33 -10:00
J. Nick Koston 91944988ef [binary_sensor] Remove redundant optional<bool> state_ from StatefulEntityBase
Replace optional<T> state_ in StatefulEntityBase with pure virtual
get_state()/set_state_value_() that subclasses implement. BinarySensor
stores its value in the existing public bool state member and uses
EntityBase::flags_.has_state instead of the optional's discriminant.

Move trigger_on_initial_state_ into EntityBase::flags_ (1 bit from
reserved), eliminating the standalone bool and its padding.

Saves 8 bytes per BinarySensor instance:
- optional<bool> (2B) + padding (2B) = 4B removed
- bool trigger_on_initial_state_ (1B) + padding (3B) = 4B removed
2026-03-22 15:58:31 -10:00
J. Nick Koston fbe3e7d99c [api] Emit raw tag+value writes for forced fixed32 key fields (#15051) 2026-03-22 15:28:46 -10:00
J. Nick Koston 73c8ac0acc Merge branch 'analyze-memory-pstorage-attribution' into integration 2026-03-22 15:20:09 -10:00
J. Nick Koston 6393190957 Handle esphome:: prefix in type namespace and format top symbols 2026-03-22 15:19:47 -10:00
J. Nick Koston 9cdc17566a [combination] Use FixedVector and parent pointer to enable inline Callback storage (#14947) 2026-03-22 15:06:45 -10:00
J. Nick Koston 20420d0016 Merge remote-tracking branch 'upstream/analyze-memory-pstorage-attribution' into integration 2026-03-22 15:05:20 -10:00
J. Nick Koston 8aeb3c5212 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-22 15:05:18 -10:00
J. Nick Koston 2d10f8abd3 [analyze-memory] Attribute placement new storage symbols to components
Embed component namespace in storage variable names so analyze-memory
can reliably attribute them. Display as "storage for {id}" in reports
and always show regardless of size threshold.
2026-03-22 15:03:36 -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 d60ab8e20f Merge branch 'kamilcuk/use-placement-new' into integration 2026-03-22 14:19:43 -10:00
J. Nick Koston 5b1b285220 Merge branch 'kamilcuk/use-placement-new' of https://github.com/Kamilcuk/esphome into kamilcuk/use-placement-new 2026-03-22 14:19:29 -10:00
J. Nick Koston 2d47c31fbf nits 2026-03-22 14:19:22 -10:00
J. Nick Koston e564114787 Merge branch 'dev' into kamilcuk/use-placement-new 2026-03-22 14:06:12 -10:00
J. Nick KostonandClaude 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 76cd51beb9 Merge remote-tracking branch 'upstream/fix-dummy-main-logger-constructor' into integration 2026-03-22 14:02:18 -10:00
J. Nick Koston ad439ea3f9 Merge branch 'kamilcuk/use-placement-new' into integration 2026-03-22 14:02:07 -10:00
J. Nick Koston 58b6d7a0df revert fix -- moved to another pr 2026-03-22 14:01:48 -10:00
J. Nick Koston 1dde810db8 revert fix -- moved to another pr 2026-03-22 14:01:32 -10:00
J. Nick Koston 280ea52002 Merge branch 'kamilcuk/use-placement-new' into integration 2026-03-22 13:58:24 -10:00
J. Nick Koston 42e1d93398 cleanup 2026-03-22 13:57:08 -10:00
J. Nick Koston 3eb0f1affd Merge branch 'kamilcuk/use-placement-new' of https://github.com/Kamilcuk/esphome into kamilcuk/use-placement-new 2026-03-22 13:54:09 -10:00
J. Nick Koston 8b89f5e036 avoid template overhead 2026-03-22 13:54:00 -10:00
J. Nick Koston 7bd4cde012 Merge branch 'dev' into kamilcuk/use-placement-new 2026-03-22 13:47:53 -10:00
J. Nick KostonandClaude Opus 4.6 67add9b9b6 [logger] Fix dummy_main.cpp Logger constructor for clang-tidy
The Logger constructor requires a task_log_buffer_size argument when
USE_ESPHOME_TASK_LOG_BUFFER is defined, which is the case in defines.h
used by clang-tidy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 13:44:39 -10:00
J. Nick Koston bccaee8d79 fix test 2026-03-22 13:38:43 -10:00
J. Nick Koston f70f012dc2 fix test 2026-03-22 13:38:25 -10:00
J. Nick Koston cf27eca8fc Merge branch 'kamilcuk/use-placement-new' into integration 2026-03-22 13:14:10 -10:00
J. Nick Koston 4a2ff62d68 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-22 12:58:13 -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 08df8e15f1 Merge branch 'dev' into kamilcuk/use-placement-new 2026-03-22 12:33:56 -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