J. Nick Koston
e47133171f
Merge remote-tracking branch 'origin/dev' into store-yaml-firmware
...
# Conflicts:
# esphome/components/api/api.proto
# esphome/components/api/api_pb2.h
# esphome/components/api/api_pb2_service.cpp
# esphome/yaml_util.py
# tests/integration/conftest.py
# tests/unit_tests/test_yaml_util.py
2026-09-14 11:07:43 -05:00
Jesse Hills
94e5c3839d
[udp] Use cv.invalid for relocated packet_transport options ( #19032 )
2026-09-08 16:17:22 +12:00
Jesse Hills
d58b37faa1
[esp32_hosted] Add ESP-NOW-over-hosted shim for the ESP32-P4 ( #17712 )
2026-09-07 10:29:20 +12:00
J. Nick Koston and pre-commit-ci-lite[bot]
f65ab5629e
[esp8266] Drop Arduino framework versions before 3.0.0 ( #18917 ) to
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-09-03 15:16:36 -04:00
J. Nick Koston
6957576867
[esp32] Skip full rebuild on sdkconfig change with the esp-idf toolchain ( #18876 )
2026-08-29 03:09:12 +00:00
Clyde Stubbs
c9848d8fa6
[light] Fix gamma table dead zone collapsing to 0 ( #18845 )
2026-08-29 08:37:20 +10:00
c272c4c1a6
[lvgl] Add table widget ( #18422 )
...
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-08-26 08:44:42 +10:00
J. Nick Koston
150f75d8f6
[esp8266] Add linker-script surgery and board build metadata for the native toolchain ( #18555 )
2026-08-26 10:29:57 +12:00
J. Nick Koston
145373ed13
[api] Widen message type storage to uint16_t ( #18526 )
2026-08-25 18:04:41 +00:00
Keith Burzinski and J. Nick Koston
b97c877992
[api] Acknowledge proxy subscribe and configuration requests ( #18312 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-08-24 20:27:24 +00:00
Jesse Hills
463e3833da
[light] Replace rgb_order/is_rgbw/is_wrgb with channel_colors ( #18474 )
2026-08-18 13:19:48 +12:00
J. Nick Koston
dd51624fbb
[core] Partially revert "Hash entity keys from the raw name to fix collisions" ( #18361 )
2026-08-13 20:06:48 -05:00
J. Nick Koston
58a42fe5c2
[core] Batch remote file downloads during config validation ( #18069 )
2026-08-12 18:44:35 +12:00
J. Nick Koston
622942482c
[rp2] Size the lwIP segment pool and heap for concurrent senders ( #18257 )
2026-08-12 17:30:17 +12:00
J. Nick Koston
37eae9b466
[api] Gate the bluetooth connection messages on their own define ( #18281 )
2026-08-11 21:31:13 -05:00
Jesse Hills
3349046c5d
[rp2] Record the RP2350 die on generated board entries ( #18305 )
2026-08-12 01:56:05 +00:00
Jesse Hills
f697cf2011
[api] Add DeviceCapabilities message for optional-feature flags ( #17984 )
2026-08-11 14:52:19 +12:00
J. Nick Koston
73689f8d8b
[rp2] Limit pin validation to GPIO 0-29 on RP2350A boards ( #18102 )
2026-08-06 08:55:24 -05:00
Pete Keen
3d093c0ae8
[esp32_rmt_led_strip] Add RGBW channel ordering ( #18028 )
2026-08-05 07:57:59 -04:00
J. Nick Koston
c2ddc17063
[libretiny] Give each platform its own CONFIG_SCHEMA instance ( #18056 )
2026-08-04 11:05:04 -05:00
J. Nick Koston
a1c2983394
[core] Hash entity keys from the raw name to fix collisions ( #17949 )
2026-08-03 20:05:25 -05:00
J. Nick Koston
4424af8c5b
[api] Move runtime log client out of the component package ( #18043 )
2026-08-03 19:57:52 -05:00
J. Nick Koston
e8dadf2852
[esp32] Flag crash records captured by a different firmware build ( #17770 )
2026-08-03 19:56:20 -05:00
J. Nick Koston
180414dab4
[store_yaml] Swap secrets in wrapper representers, EsphomeError on cross-anchor paths, branched warning
2026-07-26 08:57:27 -10:00
J. Nick Koston
b20e2e0448
[store_yaml] Scan lambda and include payloads, warn on secret overlaps, explicit key gate
2026-07-26 08:14:44 -10:00
J. Nick Koston
e0644ab20a
[esp32] Capture fault address and raw cause in crash handler ( #17769 )
2026-07-25 18:12:53 -10:00
J. Nick Koston
21ddd8270f
[store_yaml] Scan tree scalars for leaks, guard key swaps, boot race, OOM check
2026-07-25 17:08:20 -10:00
J. Nick Koston
49898359be
[store_yaml] Simplify: packages records remote sources, single tree walker, dict-style test packages
2026-07-25 16:46:04 -10:00
J. Nick Koston
8e8aac8fcb
[store_yaml] Address review: chunking, re-request no-op, capture gaps, leak scan, tests
2026-07-25 16:22:37 -10:00
J. Nick Koston
66d3816e65
Merge remote-tracking branch 'origin/dev' into store-yaml-firmware-work
...
# Conflicts:
# esphome/components/api/api.proto
# esphome/components/api/api_pb2.cpp
# esphome/components/api/api_pb2.h
# esphome/components/api/api_pb2_dump.cpp
# esphome/yaml_util.py
2026-07-25 15:34:25 -10:00
J. Nick Koston
cd8d76fa34
[esp8266] Fail fast when Rosetta 2 is missing on Apple Silicon Macs ( #17737 )
2026-07-21 08:17:01 +12:00
J. Nick Koston
dfb988c563
[micro_wake_word] Download models in parallel ( #17701 )
2026-07-20 16:16:15 +12:00
J. Nick Koston
2a59c0ad9e
[logs] Cap the logs reconnect backoff for deep-sleep devices ( #17656 )
2026-07-17 17:16:14 -10:00
J. Nick Koston
5b4ae22f58
[api] Don't spam tracebacks when decoding a crash without a local build ( #17597 )
2026-07-16 08:08:28 -04:00
J. Nick Koston
49bbceb1da
[libretiny] Keep renamed board generic-ln882hki validating against generic-ln882h ( #17542 )
2026-07-14 11:51:54 +12:00
Jesse Hills and Jonathan Swoboda
cdd334284e
[rp2] Rename rp2040 platform to rp2 ( #17145 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-07-07 08:20:24 +12:00
J. Nick Koston
4dbf15ac95
[store_yaml] Record uncaptured includes as an envelope note in both modes
2026-07-03 21:20:53 -05:00
J. Nick Koston
c625c6b795
[store_yaml] Address review: retry terminal frame, fail on unredactable secrets, note uncaptured includes
2026-07-03 20:57:54 -05:00
J. Nick Koston
8f2c09e3c8
[store_yaml] Simplify redaction pipeline, fix Windows newline test failure
2026-07-03 20:40:14 -05:00
J. Nick Koston
a25b7a806b
[store_yaml] Recover secrets as !secret references using cv.sensitive
2026-07-03 20:31:32 -05:00
J. Nick Koston
bd297f08a8
[store_yaml] Simplify: lazy YAML discovery in to_code, zero-copy streaming, shared envelope decoder
2026-07-03 19:38:41 -05:00
J. Nick Koston
f3ac60b45c
[store_yaml] Gate YAML discovery on component presence, fail on unreadable files, warn on unresolved includes
2026-07-03 19:17:04 -05:00
J. Nick Koston
d6019ca2c0
Merge branch 'dev' into store-yaml-firmware
2026-07-03 19:04:12 -05:00
Franck Nijhof
239211e521
[time] Defer aioesphomeapi import to speed up config validation ( #17214 )
2026-06-25 15:34:44 -04:00
J. Nick Koston
750cf1995b
[esp8266] Decode crash handler PC and backtrace in logs ( #16911 )
2026-06-11 08:47:50 -05:00
J. Nick Koston
a8d5ffc141
Merge branch 'dev' into store-yaml-firmware
2026-05-26 09:17:39 -05:00
J. Nick Koston
ceb9d406e1
[core] Enable ruff PIE (flake8-pie) lint family ( #16658 )
2026-05-26 07:46:44 -04:00
Jesse Hills
62b0a93e5e
[rp2040] Add variant config option for RP2040/RP2350 ( #16602 )
2026-05-25 10:43:39 +12:00
J. Nick Koston
f06e96685b
[store_yaml] Refactor YAML discovery to share bundle.py's approach
...
The previous implementation extended `track_yaml_loads` across the entire
validation pass to catch deferred `!include` and package loads, but that also
captured framework YAML loaded internally by component validators (e.g.
LVGL's `hello_world.yaml`) and produced spurious "unresolved substitution"
warnings during the pre-validation force-load. bundle.py already had the
right pattern: a fresh post-validation re-parse plus `force_load_include_files`.
- Lift the discovery into `yaml_util.discover_user_yaml_files` and have both
`bundle.py` and `config.py` use it (DRY).
- Capture `secrets.yaml` / `secrets.yml` by the *un-resolved* listener fname
so a `secrets.yaml` symlinked to a non-secrets-named target is still
flagged for redaction.
- Add a `warn_on_unresolved` flag to `force_load_include_files` so the
discovery path (where substitutions haven't run) logs at debug instead of
warning.
- Reject `store_yaml` configs with an unencrypted API via
`FINAL_VALIDATE_SCHEMA`; an explicit `allow_unencrypted: true` opt-out
keeps lab setups working (renamed from `allow_unencrypted_api` so the
integration-test harness's naive `api:` string replacement doesn't
clobber it).
- Annotate `store_yaml_chunk_buf` with the
`cppcoreguidelines-avoid-non-const-global-variables` suppression that
matches other intentional API-side globals.
- Update unit tests to exercise the new `DiscoveredYamlFiles` shape plus a
symlink-secrets case.
2026-05-15 10:21:00 -07:00
J. Nick Koston
3d77e3f5dd
[store_yaml] Address review: capability bit, dump suppression, paths, unit tests
...
- Advertise `has_store_yaml` in DeviceInfoResponse so recovery tooling can
detect support without timing out against firmware built without
USE_STORE_YAML.
- Suppress GetYamlResponse from the proto dump path. Every chunk would
otherwise log embedded configuration (including opted-in secrets) on
builds with HAS_PROTO_MESSAGE_DUMP, and bloat logs during recovery.
- Preserve the include graph for files outside the project root: use
`os.path.relpath` instead of just the basename so e.g. two
`../common.yaml` siblings don't collide on recovery.
- Keep `track_yaml_loads` open across `validate_config` so files loaded
by remote packages and substitution-resolved includes are captured.
- Add focused unit tests for `_gather_files` (redaction, secrets.yml,
opt-in, dedupe, external-path handling, missing sources) and
`_pack_envelope` (round-trip, UTF-8 paths, overlong-path guard).
- Make the test_bundle assertion case-insensitive.
2026-05-15 10:20:45 -07:00