J. Nick Koston
d8fcfd319f
Merge remote-tracking branch 'origin/api-decode-without-vtable' into integration
2026-09-24 16:11:30 +01:00
J. Nick Koston
ac2fd48910
Merge remote-tracking branch 'upstream/dev' into integration
2026-09-24 16:11:07 +01:00
J. Nick Koston
8629ec6cda
Regenerate api_pb2 for SerialProxySetModeRequest after merging dev
2026-09-24 15:53:51 +01:00
J. Nick Koston
677a88726e
[api] State the destructor trade-off as a codebase rule, not a language guarantee
2026-09-24 15:53:51 +01:00
J. Nick Koston
174b683c15
[api] Use the direction helpers in the base class builder too
2026-09-24 15:53:50 +01:00
J. Nick Koston
70505153d4
[api] Say why ProtoDecodableMessage has no protected destructor
2026-09-24 15:53:50 +01:00
J. Nick Koston
0ddb59cf72
[api] Drop the unused base decode(), group the vtable asserts, and test the decode emitters
...
A generated decodable message that lost its decode() would now fail to compile instead of
silently keeping its defaults. The asserts cover exactly the classes that derive from
ProtoDecodableMessage, under one ifdef per run instead of one per line, and the generator
tests pin the inline decode() wrapper, its absence on fixed vector messages, and the
this-> free static body.
2026-09-24 15:53:50 +01:00
J. Nick Koston
9286d0ce00
[api] Assert at compile time that decodable messages carry no vtable
...
Every build below VERY_VERBOSE now checks the base class and each generated decodable
message with std::is_polymorphic_v, so a vtable cannot come back unnoticed.
2026-09-24 15:53:50 +01:00
J. Nick Koston
e8e1f434e4
[api] Decode without a vtable
...
decode_field() becomes a static per message function and the generated decode() hands it
to the shared loop as a function pointer, so decodable messages carry no vtable and no
vptr store at every construction site. The loop loses the two vtable loads per field. The
protected destructor on ProtoDecodableMessage goes with the virtuals; ProtoMessage keeps
its own guard for the dump builds that still have them.
2026-09-24 15:53:50 +01:00
J. Nick Koston
9f5ac44db1
[api] Default response only string fields to a null StringRef ( #19025 )
2026-09-24 15:52:37 +01:00
dependabot[bot]
6f71b9102b
Bump click from 8.3.3 to 8.5.0 ( #18925 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-24 15:49:07 +01:00
04da1827e3
[light] Add transition_state_publish_interval option to publish intermediate states during transitions ( #11968 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-09-24 14:48:46 +00:00
d2fefe2299
[TAS2780] Add TAS2780 audio amplifier ( #15708 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.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@home-assistant.io >
2026-09-24 15:45:51 +01:00
J. Nick Koston
f1f83cda07
[api] Collapse the three protobuf decode virtuals into one ( #19016 )
2026-09-24 15:30:11 +01:00
Ivan Kruglov and J. Nick Koston
7dc98c683b
[uart] clock_source option ( #16486 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-09-24 15:16:40 +01:00
Bonne Eggleston and Claude
071fc08e32
[core] Silence -Wunused-function for user builds ( #19571 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-09-24 14:15:52 +00:00
J. Nick Koston
c27cbb132d
[api] Make generated encode and size entry points type erased ( #19015 )
2026-09-24 15:13:52 +01:00
J. Nick Koston
7e308bb83d
[tests] Define USE_WEBSERVER_PORT in the light unit test override ( #19584 )
2026-09-24 14:58:54 +01:00
J. Nick Koston
68235f34c5
[automation] Remove dead trigger classes from switch, button, binary_sensor and event ( #19563 )
2026-09-24 13:49:38 +00:00
J. Nick Koston
b59518f6ab
[remote_transmitter] Use register_apply_action for the digital_write action ( #19550 )
2026-09-24 13:28:29 +00:00
J. Nick Koston
da148bedfe
[api] Pass the encode cursor by value through the protobuf helpers ( #19014 )
2026-09-24 14:25:50 +01:00
Jesse Hills
b0c9a7d5bd
[core] Lint duplicate UNIT_/CONF_ constants against both const homes ( #19422 )
2026-09-24 14:21:32 +01:00
J. Nick Koston
22177680c4
[tests] Point the binary_sensor conditions at the renamed publish target ( #19583 )
2026-09-24 14:15:18 +01:00
J. Nick Koston
e92b1e27ca
[core] Let register_apply_action read the parent id from another schema key ( #19548 )
2026-09-24 09:12:04 -04:00
Ryan Ronnander
fed5dd6a9d
[light] Accept the top-level white key from Home Assistant's MQTT JSO… ( #19570 )
2026-09-24 13:11:40 +00:00
J. Nick Koston
cbd985826c
[speaker] Use register_apply_condition for speaker.is_playing and speaker.is_stopped ( #19562 )
2026-09-24 09:10:09 -04:00
J. Nick Koston
2ce2b7b25c
[event] Remove the unused std::vector set_event_types overload ( #19566 )
2026-09-24 09:09:35 -04:00
J. Nick Koston
acc9324fa8
[tests] Give the binary_sensor and sensor publish targets distinct ids ( #19564 )
2026-09-24 09:07:41 -04:00
J. Nick Koston
cbb4c49011
[automation] Remove dead trigger classes from sensor, number and text_sensor ( #19565 )
2026-09-24 09:07:07 -04:00
J. Nick Koston
afc5c29569
[event] Trigger events without building a temporary std::string ( #19567 )
2026-09-24 09:06:29 -04:00
J. Nick Koston
993c96875c
[core][select] Pass the select.set option as a plain literal ( #19568 )
2026-09-24 09:05:24 -04:00
J. Nick Koston
75360a5d52
[core] Collapse ESP8266 flash string ifdefs onto the progmem helpers ( #19578 )
2026-09-24 13:05:21 +00:00
J. Nick Koston
8b11d3da39
[switch] Use register_apply_condition for switch.is_on and switch.is_off ( #19553 )
2026-09-24 08:57:58 -04:00
J. Nick Koston
5790181f44
[binary_sensor] Use register_apply_condition for binary_sensor.is_on and binary_sensor.is_off ( #19554 )
2026-09-24 08:57:34 -04:00
J. Nick Koston
4780936867
[fan] Use register_apply_condition for fan.is_on and fan.is_off ( #19555 )
2026-09-24 08:57:07 -04:00
J. Nick Koston
22959ea1cf
[light] Use register_apply_condition for light.is_on and light.is_off ( #19556 )
2026-09-24 08:56:40 -04:00
Leonardo Rivera
e9aecb5fe8
[climate_ir] Store the supported modes in one mask ( #19580 )
2026-09-24 12:56:11 +00:00
J. Nick Koston
6768cb818b
[media_player] Use register_apply_condition for the state and muted conditions ( #19557 )
2026-09-24 08:55:39 -04:00
J. Nick Koston
1861d8282f
[script] Use register_apply_condition for script.is_running ( #19558 )
2026-09-24 08:55:12 -04:00
J. Nick Koston
c39ffd7099
[lock] Use register_apply_condition for lock.is_locked and lock.is_unlocked ( #19559 )
2026-09-24 08:54:42 -04:00
J. Nick Koston
1671bb6dd3
[time] Use register_apply_condition for time.has_time ( #19560 )
2026-09-24 08:54:03 -04:00
J. Nick Koston
0ceefd5f91
[mqtt] Use register_apply_condition for mqtt.connected ( #19561 )
2026-09-24 08:53:29 -04:00
J. Nick Koston
4477e35d66
[dfplayer] Use register_apply_action for the play, volume, eq, device and transport actions ( #19549 )
2026-09-24 08:52:34 -04:00
J. Nick Koston
e98c4bd375
[online_image] Use register_apply_action for the set_url and release actions ( #19547 )
2026-09-24 08:51:30 -04:00
J. Nick Koston
eae8ff7f91
[audio_dac] Use register_apply_action for the mute_off, mute_on and set_volume actions ( #19546 )
2026-09-24 08:51:04 -04:00
J. Nick Koston
f24e1f31f2
[rotary_encoder] Use register_apply_action for the set_value action ( #19545 )
2026-09-24 08:50:33 -04:00
J. Nick Koston
4cbced407d
[ha-addon] Announce the MCP server to Home Assistant ( #19413 )
2026-09-24 08:49:40 -04:00
J. Nick Koston
64127632f5
[core][logger] Keep ESP8266 log strings in flash and deprecate the RAM option ( #19577 )
2026-09-24 13:11:50 +01:00
Philip Poten
cd5ff787f4
[lvgl] Allow negative text_letter_space, text_line_space ( #19576 )
2026-09-24 19:18:32 +10:00
J. Nick Koston
698eb71862
[core] Add ESPHOME_strlen_P to the progmem helpers ( #19574 )
2026-09-24 10:03:33 +01:00