J. Nick Koston
e050d58875
Merge remote-tracking branch 'origin/dev' into ota-deflate
...
# Conflicts:
# esphome/components/esphome/ota/ota_esphome.cpp
2026-09-08 23:27:14 +02:00
J. Nick Koston
6c5ab89d5f
[esphome][core] Give a lost OTA chunk ack time to be retransmitted ( #19041 )
2026-09-09 09:08:16 +12:00
J. Nick Koston
8f511a365a
[noise] Bump noise-c to 0.1.26 and libsodium to 1.10021.8 ( #19030 )
2026-09-09 09:07:06 +12:00
J. Nick Koston
8e9e6bbdd7
Trim comments
2026-09-08 13:55:58 +02:00
J. Nick Koston
773050d7c9
Simplify pass: one error channel in the inflate loop, whole-window flushes where acks go out on receipt, shared log helpers, one backend alias, leaner tests
2026-09-08 13:48:58 +02:00
J. Nick Koston
49f9eaacb1
Honour a deflate offer over gzip on the client and record how the test vectors are made
2026-09-08 13:28:12 +02:00
J. Nick Koston
d1665c423d
Ack chunks after the flash write on the inflate path and harden the decoder
...
Chunk acks again mean the block is in flash on both paths: the read callback
writes and acks everything decoded so far before it waits for more input.
The decoder rejects a negative distance symbol, initialises its whole state,
and the flush feeds the watchdog once per window. The static_assert on the
backend skips the static analysis build, which sets every define at once.
2026-09-08 10:54:18 +02:00
J. Nick Koston
db55c1d43f
Trim the inflate glue and tie the deflate gate to the backend
...
Measured on ESP32: the decoder is 1472 B at -Os and cannot shrink without
dropping dynamic Huffman; the glue loses its extra log sites and strings,
the flash-write log is shared, and the single-call helpers inline on the
platforms without the decoder so the ESP8266 and RP2040 images do not grow.
supports_compression() is constexpr so the deflate build asserts that its
backend cannot store gzip.
2026-09-08 10:27:20 +02:00
J. Nick Koston
deb63ea092
[esphome.ota] Compress OTA uploads with deflate on platforms without gzip support
...
ESP32, RP2040, LibreTiny and host could not receive a compressed image;
only the ESP8266 can, because its bootloader inflates a gzip file at reboot.
This inflates a raw deflate stream on the fly through a 4 KB ring window that
also serves as the output buffer, so the device never holds the whole image.
The CLI offers a new client feature bit; a device whose backend has no gzip
support and has the inflater compiled answers with a new server bit once the
session memory is in hand, then the CLI sends a 4 KB window deflate stream and
the MD5 of the inflated image. On allocation failure the device declines the
bit and the upload stays uncompressed. Old CLIs and old devices never set the
bits, so both directions stay compatible; the ESP8266 keeps its gzip path and
the CLI prefers gzip when a device offers both.
The decoder is uzlib's tinflate.c (zlib licence) trimmed to raw deflate.
2026-09-08 09:59:04 +02:00
J. Nick Koston
53075e4139
[core] Skip PlatformIO's private-package authorization probe ( #18823 )
2026-09-08 16:42:30 +12: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
8966567be0
[core] Show the other downloader's progress while a prefetch job waits on its lock ( #18983 )
2026-09-07 10:28:31 +12:00
J. Nick Koston
688af60cbf
[noise] Bump noise-c to 0.1.24 and libsodium to 1.10021.6 ( #18989 )
2026-09-07 10:12:52 +12:00
J. Nick Koston
833dd0e812
[ota] Offer encryption with the api key so enabling it works over OTA ( #18979 )
2026-09-06 23:59:40 +02: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 and Jesse Hills
3f68930001
[ota] Add Noise encryption to the OTA platform ( #18489 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-09-02 08:11:57 +12:00
J. Nick Koston
d6758377d1
[core] Clone git libraries in parallel in the library prefetch ( #18836 )
2026-09-01 14:25:58 +12:00
J. Nick Koston
0f982f03b2
[core] Prefetch tool-scons by PlatformIO's core spec ( #18831 )
2026-09-01 11:55:53 +12:00
J. Nick Koston
ad69718ecc
[core] Configure the platform again after prefetching its packages ( #18830 )
2026-08-31 13:01:13 -05:00
J. Nick Koston
2f1d3f8299
[core] Deduplicate the host program path lookup ( #18897 )
2026-08-30 17:34:16 -05: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
J. Nick Koston
3fea080ed8
[core] Hash downloaded file paths at the default data dir location ( #18824 )
2026-08-28 21:08:15 -05:00
Clyde Stubbs
c9848d8fa6
[light] Fix gamma table dead zone collapsing to 0 ( #18845 )
2026-08-29 08:37:20 +10:00
J. Nick Koston
0dce7f4845
[esp8266] Add the native library backend ( #18558 )
2026-08-28 13:50:52 -05:00
J. Nick Koston
4333870590
[core] Use uv for the ESP-IDF Python environment when available ( #18838 )
2026-08-28 13:43:48 -05:00
J. Nick Koston
cc41fd0beb
[core] Make rmtree tolerate missing paths and concurrent directory changes ( #18846 )
2026-08-28 13:42:42 -05:00
J. Nick Koston
b99e7f5ae2
[core] Install prefetched PlatformIO packages with parallel extraction ( #18775 )
2026-08-27 03:02:02 +00:00
J. Nick Koston
2104096f02
[core] Prefetch PlatformIO packages in parallel ( #18769 )
2026-08-27 14:42:30 +12:00
J. Nick Koston
9baff76520
[api] Treat homeassistant.event variables as lambdas ( #18759 )
2026-08-26 16:29:14 +12:00
J. Nick Koston
9e4c52989c
[esp8266] Add the native framework and toolchain installer ( #18557 )
2026-08-25 20:24:47 -05:00
J. Nick Koston
7ff56c62f9
[core] Add shared registry, ninja, and cache infrastructure for native toolchains ( #18570 )
2026-08-26 13:23:16 +12:00
J. Nick Koston
370e8fffed
[core] Add the arduino toolchain seam and validate --toolchain on every platform ( #18556 )
2026-08-26 11:16:02 +12: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
J. Nick Koston
688e833413
[core] Consolidate HTTP download paths ( #18742 )
2026-08-25 12:38:20 -05:00
J. Nick Koston and pre-commit-ci-lite[bot]
19b434f99c
[espidf] Cache the discovered component list to skip the discovery configure ( #18752 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-08-25 12:36:57 -05:00
J. Nick Koston
b3d9aa2d84
[core] Log which source change triggered a rebuild ( #18552 )
2026-08-24 18:46:43 -05:00
J. Nick Koston
19866c60ee
[core] Parallelize registry and tool downloads ( #18662 )
2026-08-24 15:59:00 -05:00
J. Nick Koston
3f0ec0b157
[espidf] Always reconfigure after component discovery ( #18730 )
2026-08-25 08:56:59 +12: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
J. Nick Koston
5f6a910e2d
[core] Harden the shared library converter ( #18685 )
2026-08-23 22:24:12 -05:00
J. Nick Koston
9974ad97fa
[core] Extract the shared idedata and size-summary helpers into build_helpers ( #18661 )
2026-08-23 21:59:19 -05:00
J. Nick Koston
4510f10491
[core] Treat a malformed build_info.json as stale instead of crashing ( #18669 )
2026-08-24 11:13:57 +12:00
J. Nick Koston
0ecc7045fa
[core] Parse the common on/off spellings in boolean env vars ( #18667 )
2026-08-24 11:13:34 +12:00
J. Nick Koston
e6c49e2bd9
[core] Retry transient network errors when downloading external files ( #18538 )
2026-08-24 08:25:39 +12:00
J. Nick Koston
4efd308345
[tests] Fix flaky pty log probe test on macOS ( #18681 )
2026-08-23 11:26:55 -05:00
J. Nick Koston
cf31c08a5c
[core] Skip copying entity automation and filter sources when unused ( #18602 )
2026-08-23 09:05:04 -05:00
J. Nick Koston
33484108a9
[core] Replace a damaged existing file in write_file_if_changed ( #18665 )
2026-08-23 09:04:24 -05:00