J. Nick Koston
11c24324d5
Merge remote-tracking branch 'upstream/templatable-value-specialize' into integration
2026-04-07 14:31:35 -10:00
J. Nick Koston
7d497e6b52
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-07 14:31:13 -10:00
J. Nick Koston
0dddeea4d2
[core] Assert stateless capture in test, fix TemplatableFn comment
2026-04-07 14:10:18 -10:00
Jesse Hills
b307c7c74c
[config_validation] Add unbounded percentage validators ( #15500 )
2026-04-08 11:44:52 +12:00
J. Nick Koston
9bf0133525
[core] Specialize TemplatableValue for non-string types as function pointer
...
Specialize TemplatableValue so non-string types use function-pointer-only
storage (4 bytes on 32-bit) instead of the tagged union with std::function
support (8 bytes). The std::string specialization retains full support for
VALUE, STATIC_STRING, FLASH_STRING, and stateful lambdas.
Codegen now wraps non-string constants in stateless lambdas automatically,
so the generated C++ always assigns a function pointer.
2026-04-07 13:16:14 -10:00
J. Nick Koston
ef6c65c7ec
[cli] Add config bundle CLI command for remote compilation ( #13791 )
2026-04-07 10:37:19 -10:00
J. Nick Koston
6460f3a757
[api] Add max_data_length and force to DeviceInfoResponse/HelloResponse proto fields ( #15514 )
2026-04-07 10:24:36 -10:00
J. Nick Koston
0d809a7481
[automation] Add CallbackAutomation dataclass and build_callback_automations helper ( #15246 )
2026-04-07 10:09:27 -10:00
J. Nick Koston
d3df97f534
Merge remote-tracking branch 'origin/api-max-data-length-force' into integration
2026-04-06 18:42:13 -10:00
J. Nick Koston
b86ab07632
[core] Fix test for byte-length error message, add ByteLength and multibyte tests
2026-04-06 18:38:58 -10:00
J. Nick Koston
10b38e1588
[api] Add max_data_length proto option and optimize entity name/object_id ( #15426 )
2026-04-07 03:31:01 +00:00
J. Nick Koston
9ee5089891
[time] Support */N syntax in cron expressions ( #15434 )
2026-04-04 00:30:41 -10:00
J. Nick Koston
e166ee6f60
Merge remote-tracking branch 'upstream/cron-star-slash' into integration
2026-04-03 18:48:32 -10:00
J. Nick Koston
90df902d09
[time] Support */N syntax in cron expressions
2026-04-03 18:20:53 -10:00
J. Nick Koston
ef41caa347
Merge branch 'api-proto-max-length' into integration
2026-04-03 14:16:20 -10:00
J. Nick Koston
dd08d7631e
[core] Add test for register_unit_of_measurement max length
2026-04-03 14:13:03 -10:00
J. Nick Koston
6bad85d3e2
Merge remote-tracking branch 'origin/fix-preferences-log-spam' into integration
2026-03-30 22:39:11 -10:00
J. Nick Koston
8561a8c495
[core] Suppress component source overflow warnings in testing mode ( #15320 )
2026-03-30 08:48:04 -10:00
J. Nick Koston
38fdd86384
Revert "[core] Expand component source index to 9 bits (511 max)"
...
This reverts commit fcfcb4ed72 .
2026-03-30 08:42:23 -10:00
J. Nick Koston
9ac9814955
Merge remote-tracking branch 'upstream/component-source-9bit' into integration
2026-03-30 08:36:35 -10:00
J. Nick Koston
fcfcb4ed72
[core] Expand component source index to 9 bits (511 max)
...
Bitfield component_source_index_ (9 bits) and warn_if_blocking_over_
(7 bits) into the same 16 bits. This doubles the max unique component
source names from 255 to 511 without increasing Component size.
The blocking warn threshold max drops from 2550ms to 1270ms which is
more than sufficient since it starts at 50ms and ratchets up.
Fixes test warnings when many components are compiled together:
WARNING Too many unique component source names (max 255)
2026-03-30 08:30:55 -10:00
J. Nick Koston
85529ee518
Merge remote-tracking branch 'upstream/api/peel-first-write-iteration' into integration
2026-03-29 12:36:30 -10:00
J. Nick Koston
a9aaf29d83
[core] Shrink Component from 12 to 8 bytes per instance ( #15103 )
2026-03-29 12:09:21 -10:00
J. Nick Koston
5da3253f4b
[esp8266] Add enable_scanf_float option ( #15284 )
2026-03-29 11:57:52 -10:00
J. Nick Koston
a12dcc68a9
Merge remote-tracking branch 'upstream/component-8byte-optimization' into integration
2026-03-29 08:36:03 -10:00
J. Nick Koston
fd8b8c6546
Merge branch 'dev' into component-8byte-optimization
2026-03-29 08:25:57 -10:00
J. Nick Koston
db15bb2494
Merge remote-tracking branch 'upstream/callback-manager-no-vector' into integration
2026-03-28 08:27:47 -10:00
Jonathan Swoboda
b6abfec82e
[core] Fix area/device hash collision validation not running ( #15259 )
2026-03-27 22:22:24 -04:00
J. Nick Koston
fa8a609bcc
[automation] Eliminate trigger trampolines with deduplicated forwarder structs ( #15174 )
2026-03-26 13:50:50 -10:00
J. Nick Koston
4170f0ecb4
Merge remote-tracking branch 'origin/warn-verbose-logging' into integration
2026-03-26 09:43:45 -10:00
Jonathan Swoboda
c2456409bd
[core] Improve clean-all with no arguments ( #15184 )
2026-03-26 13:39:19 -04:00
J. Nick Koston
93232363e9
Merge remote-tracking branch 'upstream/eliminate-trigger-trampolines' into integration
2026-03-25 15:38:03 -10:00
J. Nick Koston
bdc4a54613
Address review: const ref args, revert lock migration
...
- TriggerForwarder::operator() now takes const Ts&... to avoid
copies of non-trivial types (e.g., std::string).
- Revert lock to trigger-based pattern: LockStateForwarder holds
two pointers (automation + lock), exceeding sizeof(void*) which
would cause Callback::create to heap-allocate.
- Remove forwarder_extra_args from API since lock was the only user.
2026-03-25 15:10:10 -10:00
J. Nick Koston
2465339d07
Merge remote-tracking branch 'upstream/eliminate-trigger-trampolines' into integration
2026-03-25 14:47:08 -10:00
J. Nick Koston
9be87f66c3
Accept custom forwarder types, migrate number and lock
...
Replace bool_filter with generic forwarder parameter that accepts
any struct type. Components can define their own forwarders with
custom fields (e.g., LockStateForwarder needs both automation and
lock entity pointers).
Migrates number (NumberStateTrigger) and lock (LockStateTrigger)
to prove the API is flexible enough for diverse patterns.
2026-03-25 14:23:35 -10:00
J. Nick Koston
c127cacb9a
Use template forwarder structs for callback deduplication
...
Replace per-site lambda generation with TriggerForwarder<Ts...>,
TriggerOnTrueForwarder, and TriggerOnFalseForwarder structs. The
compiler generates one operator() per forwarder type shared across
all call sites, avoiding flash duplication from unique lambdas.
Also cleans up API: replaces condition/callback_args with
bool_filter using TRIGGER_ON_TRUE/TRIGGER_ON_FALSE constants.
2026-03-25 14:16:30 -10:00
J. Nick Koston
6c905bd036
Add unit tests for trigger callback lambda generation
...
Tests the lambda output format for all variations used by
build_callback_automation: no args, typed args, conditions,
multiple args, and empty capture.
2026-03-25 14:09:10 -10:00
J. Nick Koston
a22d47c719
[api] Add --no-states flag to esphome logs command ( #15160 )
2026-03-25 07:36:53 -10:00
J. Nick Koston
5b2d65b5c8
Merge branch 'state-log-no-states' into integration
2026-03-24 23:06:52 -10:00
J. Nick Koston
9befe1b299
[api] Add --no-states flag to esphome logs command
...
Pass subscribe_states through to aioesphomeapi's log runner so users
can suppress synthetic [S] state change lines in log output.
2026-03-24 23:00:06 -10:00
J. Nick Koston
ff02bf8099
Merge branch 'state-publish-logv' into integration
2026-03-24 22:26:09 -10:00
Jonathan Swoboda and J. Nick Koston
4ff85e2a1e
[core] Fix clean-all to handle custom build paths ( #15146 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-03-24 19:48:17 -04:00
J. Nick Koston
968fa1cadd
Merge remote-tracking branch 'origin/api-warning-message' into integration
2026-03-24 10:19:55 -10:00
Javier Peletier and J. Nick Koston
7eddf429ea
[substitutions] speed up config loading: substitutions pass and !include redesign (package refactor part 4) ( #12126 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-23 23:57:22 -10:00
J. Nick Koston
51de1ad0b9
Merge remote-tracking branch 'upstream/precompute-tag-forced-varint-fields' into integration
...
# Conflicts:
# esphome/components/api/api_pb2_dump.cpp
# esphome/components/sensor/sensor.h
2026-03-23 15:28:13 -10:00
Javier Peletier and J. Nick Koston
df4318505f
[substitutions] refactor substitute() as a pure function (package refactor part 3) ( #15031 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-23 14:28:04 -10:00
J. Nick Koston
e63105b023
Merge remote-tracking branch 'upstream/wifi-esp8266-roam-scan-dwell' into integration
2026-03-23 13:14:26 -10:00
bf6000ef3d
[substitutions] substitutions pass and !include redesign (package refactor part 2b) ( #14918 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-23 12:50:28 -10:00
J. Nick Koston
cba87a22fb
Add type annotations to new tests
2026-03-22 21:43:36 -10:00
J. Nick Koston
c8d97830f2
Add non-empty test for _generate_source_table_code
2026-03-22 21:42:56 -10:00