J. Nick Koston
cf9e79beda
Merge branch 'dev' into api-max-data-length-force
2026-04-06 18:34:36 -10:00
J. Nick Koston
cfcf9216f3
[core] Add cv.ByteLength validator, switch all proto-backed length checks to byte length
...
Add cv.ByteLength() validator that checks UTF-8 byte length instead
of character count. This ensures multibyte characters don't cause
the encoded string to exceed the proto max_data_length limit.
Switch all length validators that feed into proto fields with
max_data_length annotations to use byte length:
- Entity names, friendly names, area names, device names
- Icons, device classes, units of measurement
- Board names, project name/version
2026-04-06 18:33:04 -10:00
J. Nick Koston
52d76f8db0
[api] Fix name max_data_length to match hostname limit, add suggested_area
...
- Fix HelloResponse.name and DeviceInfoResponse.name max_data_length
from 120 to 31 to match ESPHOME_DEVICE_NAME_MAX_LEN (hostname limit)
- Add max_data_length=120 + force to suggested_area field
- Add static_asserts for ESPHOME_DEVICE_NAME_MAX_LEN and
ESPHOME_FRIENDLY_NAME_MAX_LEN
- Fix comments to accurately describe guarantees
2026-04-06 18:17:04 -10:00
J. Nick Koston
5a92a3b16e
[api] Add max_data_length/force to model and project fields, validate board/project lengths
...
Add BOARD_MAX_LENGTH and PROJECT_MAX_LENGTH constants (127) and
enforce them in YAML validation for all platform board schemas
and project name/version.
Add max_data_length + force proto options to model, project_name,
and project_version fields in DeviceInfoResponse.
2026-04-06 18:14:18 -10:00
J. Nick Koston
f94e1dfab6
[core] Move ControllerRegistry notify methods inline into header ( #15505 )
2026-04-07 16:12:01 +12:00
J. Nick Koston
95974358ab
[api] Add max_data_length and force to DeviceInfoResponse/HelloResponse proto fields
...
Add max_data_length + force proto options to string fields in
HelloResponse, AreaInfo, DeviceInfo, and DeviceInfoResponse where
we have strong compile-time or codegen guarantees on max length.
This enables encode_short_string_force() (direct byte writes,
no varint branching) for fields with single-byte tags, and
fixed-formula size calculations for all annotated fields.
Add static_asserts to cross-validate C++ constexpr constants
(MAC_ADDRESS_PRETTY_BUFFER_SIZE, BUILD_TIME_STR_SIZE,
ESPHOME_VERSION, ESPHOME_MANUFACTURER) against the proto
max_data_length annotations.
2026-04-06 18:03:26 -10:00
Jonathan Swoboda
e49384cd57
[dfrobot_sen0395] Fix list.index() on mutated list in range validator ( #15511 )
2026-04-06 23:42:39 -04: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
Jonathan Swoboda
b6ef1a58fb
[multiple] Fix validation ranges and error messages ( #15508 )
2026-04-06 23:17:35 -04:00
Jonathan Swoboda
9894bdc0f1
[multiple] Fix misc low-priority bugs (batch 3) ( #15506 )
2026-04-06 23:03:57 -04:00
Jonathan Swoboda
99ee405f4e
[esp32_ble][esp32_ble_server][esp32_ble_beacon] Fix UUID regex, IndexError, and unused inheritance ( #15504 )
2026-04-06 22:17:34 -04:00
Jonathan Swoboda
517d0390d0
[ota] Fix check_error skipping validation for RESPONSE_OK ( #15501 )
2026-04-06 22:17:25 -04:00
J. Nick Koston
96c3986481
[core] Replace std::vector in CallbackManager with trivial-copy container ( #15272 )
2026-04-07 01:58:17 +00:00
Jonathan Swoboda
e62c78ad46
[multiple] Fix misc cosmetic bugs (error messages, types, defaults) ( #15499 )
2026-04-07 01:41:57 +00:00
Jonathan Swoboda
e428cb5092
[multiple] Fix misc cosmetic bugs (batch 2) ( #15502 )
2026-04-06 21:33:22 -04:00
Jonathan Swoboda
b8b8d1bb15
[core] Replace deprecated datetime.utcfromtimestamp() ( #15503 )
2026-04-06 21:31:57 -04:00
J. Nick Koston
82dc80a413
[scheduler] Skip cancel for anonymous items, add empty-container fast path ( #15397 )
2026-04-07 01:26:40 +00:00
J. Nick Koston
d15fa84f4f
[api] Auto-derive max_value for enum fields in protobuf codegen ( #15469 )
2026-04-06 14:39:55 -10:00
Jonathan Swoboda
4fa3e48d33
[remote_base] Fix misc protocol schema and codegen bugs ( #15497 )
2026-04-07 00:34:07 +00:00
Jonathan Swoboda
094e0440c6
[config] Fix unfilled placeholder in dimensions() error message ( #15498 )
2026-04-06 14:30:36 -10:00
J. Nick Koston
b155c13117
[api] Use integer comparison for float zero checks in protobuf encoding ( #15490 )
2026-04-07 12:25:53 +12:00
Jonathan Swoboda
0816579fa9
[prometheus] Fix relabel validation not checking for required keys ( #15496 )
2026-04-06 14:20:46 -10:00
Jonathan Swoboda
c6e683cc33
[pmsx003] Connect model-specific sensor validation to schema ( #15495 )
2026-04-06 14:19:53 -10:00
Jonathan Swoboda
14bcd9db59
[neopixelbus] Fix SPI pin validation accepting one wrong pin on ESP8266 ( #15494 )
2026-04-06 14:18:59 -10:00
Jonathan Swoboda
d9da91efbe
[bl0940] Fix restore_value reading from wrong config dict ( #15492 )
2026-04-06 14:14:17 -10:00
Jesse Hills
017af24c22
Merge branch 'release' into dev
2026-04-07 12:06:30 +12:00
Jesse Hills
496c395f1a
Merge pull request #15489 from esphome/bump-2026.3.3
...
2026.3.3
2026.3.3
2026-04-07 12:05:46 +12:00
Jonathan Swoboda
29ca7bc8f9
[espnow] Fix string data generating invalid C++ char literals ( #15493 )
2026-04-06 19:57:16 -04:00
Jesse Hills
62d0c25a2b
[CI] Add branches-ignore for release and beta in PR title check ( #15491 )
2026-04-07 11:14:59 +12:00
Jesse Hills
1c67e4ce4c
Bump version to 2026.3.3
2026-04-07 10:50:41 +12:00
Clyde Stubbs
162c8810db
[esp32] Clean build when sdkconfig options change ( #15439 )
2026-04-07 10:50:41 +12:00
Clyde Stubbs
9036c29c8a
[online_image] Clear LVGL dsc when image size changes. ( #15360 )
2026-04-07 10:50:41 +12:00
Edward Firmo
9bd936112d
[nextion] Fix queue age check using inconsistent time sources ( #15317 )
2026-04-07 10:50:41 +12:00
Clyde Stubbs
c98bb9060f
[lvgl] Fix setting triggers on display ( #15364 )
2026-04-07 10:48:14 +12:00
Clyde Stubbs
ce0d360790
[lvgl] Implement rotation directly ( #14955 )
2026-04-07 10:46:42 +12:00
J. Nick Koston and pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2b5ee69eb2
[api] Speed up protobuf encode 17-20% with register-optimized write path ( #15290 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-06 12:42:18 -10:00
Jonathan Swoboda and J. Nick Koston
5a14d6a4ad
[multiple] Add missing device_class to sensor schemas (batch 2) ( #15487 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-06 22:38:47 +00:00
Jonathan Swoboda
6f62b2f18c
[thermostat] Remove non-functional cv.templatable from preset fields ( #15481 )
2026-04-06 12:20:38 -10:00
Jonathan Swoboda
c78fb964a2
[multiple] Add missing state_class to remaining sensor schemas ( #15486 )
2026-04-06 12:15:42 -10:00
Jonathan Swoboda
8650c5b013
[multiple] Add missing state_class to sensor schemas ( #15478 )
2026-04-06 17:19:20 -04:00
Jonathan Swoboda
5051891813
[esp32] Fix ESP32-C6 pin validator rejecting GPIO 24-30 with wrong error ( #15477 )
2026-04-06 17:02:28 -04:00
Jonathan Swoboda
95e2b0a8b0
[multiple] Add missing device_class to sensor schemas ( #15479 )
2026-04-06 17:02:20 -04:00
J. Nick Koston and Jonathan Swoboda
ab45591507
[core] Move wake_loop out of socket component into core ( #15446 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-06 21:01:03 +00:00
Jonathan Swoboda
62b4b250c7
[opentherm] Fix step=0 default overriding entity step ( #15484 )
2026-04-07 08:35:50 +12:00
Jonathan Swoboda
a7963bee98
[gcja5][cd74hc4067][openthread_info] Fix PollingComponent mismatches ( #15476 )
2026-04-06 16:31:40 -04:00
Jonathan Swoboda
e86978f0da
[rpi_dpi_rgb][st7701s][ags10] Fix Optional config keys accessed unconditionally ( #15474 )
2026-04-06 16:30:46 -04:00
Jonathan Swoboda
6044f41db5
[multiple] Add missing cv.COMPONENT_SCHEMA to CONFIG_SCHEMA ( #15475 )
2026-04-06 16:30:15 -04:00
Jonathan Swoboda
a64f09a43f
[sprinkler][dfplayer][max6956][rf_bridge] Fix cg.templatable type mismatches ( #15480 )
2026-04-06 16:29:59 -04:00
Jonathan Swoboda
dbd4e77d61
[pylontech] Remove unnecessary Component inheritance from sensor/text_sensor ( #15482 )
2026-04-06 16:23:10 -04:00
Boris Krivonog
02185fb4f4
[mitsubishi_cn105] Add climate component for Mitsubishi A/C units with CN105 connector (Part 5) ( #15483 )
2026-04-06 09:59:18 -10:00