J. Nick Koston
87dc5014a8
Size the distance tree to its alphabet
2026-09-08 13:43:50 +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
cd4e07f2d0
Report every inflate failure from one site and build the fixed trees through the tree builder
2026-09-08 13:14:15 +02:00
J. Nick Koston
7e1216fe01
Note that the deflate offer is binding on both sides
2026-09-08 13:09:49 +02:00
J. Nick Koston
8027a37d61
Do not mark the ack sender inline, the header wrappers use it from every unit
2026-09-08 13:00:30 +02:00
J. Nick Koston
76e1df2c03
Ack chunks on receipt where the socket stack has its own task
...
With raw lwIP in the main loop the radio is deaf while a sector is written,
so the ESP8266 and RP2040 keep the client quiet until the block is in flash;
with BSD or lwIP sockets the next block can arrive while this one is written.
2026-09-08 12:54:30 +02:00
J. Nick Koston
66a0485a5c
Merge branch 'dev' into ota-deflate
2026-09-08 12:24:06 +02:00
J. Nick Koston
3a83323c75
Express the constant expression requirement without a redundant literal
2026-09-08 11:31:41 +02:00
J. Nick Koston
817fcb7881
Require the backend compression capability to be a constant expression in the contract
2026-09-08 11:27:40 +02:00
J. Nick Koston
08c7e3e9aa
Unit test the decoder under the sanitizers with generated vectors and corrupted streams
2026-09-08 11:23:16 +02:00
J. Nick Koston
5b5b5e3cc1
Reject a negative literal symbol, stop on eof in stored blocks, compile the decoder on LibreTiny in CI
2026-09-08 11:20:05 +02:00
J. Nick Koston
eefddf85f1
Call the constexpr backend capability through the type
2026-09-08 11:09:29 +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
27a8768986
Use clang-tidy style names in the decoder header and name the wire constants
2026-09-08 10:16:11 +02:00
J. Nick Koston
a0398d120c
[ota] Let the RP2040 stage a gzip image and inflate it at reboot
...
The Arduino Pico OTA stub already detects a gzip firmware.bin on LittleFS,
reads the inflated length from the trailer and inflates it into the app
region at reboot, so the RP2040 takes the ESP8266 path and no longer needs
the on-the-fly decoder.
2026-09-08 10:11:21 +02:00
John and pre-commit-ci-lite[bot]
f191d5e0c3
[atm90e32] Verify offset calibration writes ( #18701 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-09-08 20:02:49 +12:00
Jesse Hills
227ca90aad
[core] Restore the shared git hooks after post-checkout runs script/setup ( #19036 )
2026-09-08 20:00:08 +12:00
Jesse Hills
1700a40b7c
[core] Restore the shared git hooks after post-checkout runs script/setup ( #19036 )
2026-09-08 19:59:55 +12: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
raykholo
28588310e7
[anova] Re-assert temperature unit on every poll cycle ( #17141 )
2026-09-08 18:57:33 +12:00
10a9baff74
[rf_bridge] Fix bucket sniffing with Portisch firmware ( #17683 )
...
Co-authored-by: Bryan Li <bryanli@Bryans-MacBook-Pro.local >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-09-08 18:36:42 +12:00
Gytis
a23f7bb569
[lvgl] Add missing label dependency to qrcode, keyboard and tabview ( #18387 )
2026-09-08 18:31:30 +12:00
J. Nick Koston
53075e4139
[core] Skip PlatformIO's private-package authorization probe ( #18823 )
2026-09-08 16:42:30 +12:00
Jonathan Swoboda
5722ccba37
[tuya] Build without a network component ( #18948 )
2026-09-08 16:36:04 +12:00
Jesse Hills
94e5c3839d
[udp] Use cv.invalid for relocated packet_transport options ( #19032 )
2026-09-08 16:17:22 +12:00
Davide D M
574762f078
[debug] Check reboot source pref on ESP_RST_WDT and guard against empty source ( #17537 )
2026-09-08 13:59:05 +12:00
Pieter Viljoen and Jesse Hills
d34ffaf392
[ble_client] Report Established from nodes that never read services ( #17920 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-09-08 01:57:50 +00:00
Samuel Sieb and Samuel Sieb
e6aa575f2e
[dallas_temp] filter 85 temp from sensor reset ( #17877 )
...
Co-authored-by: Samuel Sieb <samuel@sieb.net >
2026-09-08 13:27:49 +12:00
AndreKR
639ce609bf
[logger] Fix garbled stack traces ( #17939 )
2026-09-08 13:13:51 +12:00
Ryan Ronnander
62eafc477d
[mqtt] Restore brightness flag in light discovery ( #18950 )
2026-09-08 13:09:02 +12:00
mipa87 and Claude
56c3361b9a
[audio] Do not treat MP3_STREAM_INFO_CHANGED as a fatal decoder error ( #19028 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-09-08 12:13:03 +12:00
50ca381198
[i2s_audio] Keep a start request that arrives while the speaker task stops ( #19027 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-09-08 12:10:55 +12:00
dependabot[bot]
89a56298c2
Bump prek from 0.5.1 to 0.5.2 ( #19021 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-08 00:00:28 +00:00
390742cf9b
Bump ruff from 0.16.5 to 0.16.6 ( #19022 )
...
Co-authored-by: esphome[bot] <115708604+esphome[bot]@users.noreply.github.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-07 23:47:46 +00:00
Jesse Hills and pre-commit-ci-lite[bot]
5e37872da2
[ci] Sync pre-commit revs and prek version from requirements files ( #19026 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-09-08 10:32:18 +12:00
Jesse Hills
d34d3994e1
Merge branch 'beta' into dev
2026-09-07 12:50:44 +12:00
Jesse Hills
9a877a067c
Merge pull request #19007 from esphome/bump-2026.9.0b2
...
2026.9.0b2
2026.9.0b2
2026-09-07 12:50:25 +12:00
Jesse Hills
9ba4477ada
Bump version to 2026.9.0b2
2026-09-07 10:46:22 +12:00
Jesse Hills
8434dc5474
[esp32_hosted] Add ESP-NOW-over-hosted shim for the ESP32-P4 ( #17712 )
2026-09-07 10:46:21 +12:00
J. Nick Koston
e0e85db822
[core] Show the other downloader's progress while a prefetch job waits on its lock ( #18983 )
2026-09-07 10:46:21 +12:00
J. Nick Koston
5d2ddc658c
[mdns] Guard LEAmDNS main loop calls against lwIP re-entrancy on ESP8266 ( #18990 )
2026-09-07 10:46:21 +12:00
J. Nick Koston
c1aa41f276
[noise] Bump noise-c to 0.1.24 and libsodium to 1.10021.6 ( #18989 )
2026-09-07 10:46:21 +12:00
esphome[bot]
96b1a03ea4
Bump bundled esphome-device-builder to 1.14.4 ( #19006 )
2026-09-07 10:46:21 +12:00
J. Nick Koston
95ab3fb4f2
[ota] Offer encryption with the api key so enabling it works over OTA ( #18979 )
2026-09-07 10:46:21 +12:00
Ricardo Sanz
18220e0b39
[climate][template] New template climate component ( #14455 )
2026-09-07 10:46:21 +12:00
esphome[bot]
011497d6ee
Bump bundled esphome-device-builder to 1.14.3 ( #18996 )
2026-09-07 10:46:20 +12:00
esphome[bot]
7089dae3b6
Bump bundled esphome-device-builder to 1.14.2 ( #18988 )
2026-09-07 10:46:20 +12:00
esphome[bot]
745eb30109
Bump bundled esphome-device-builder to 1.14.1 ( #18981 )
2026-09-07 10:46:20 +12:00
Keith Burzinski
e36445fa5f
[usb_uart] Keep the comm interface number valid when its claim fails ( #18968 )
2026-09-07 10:46:20 +12:00