Commit Graph
3443 Commits
Author SHA1 Message Date
J. Nick Koston 7f440a06c2 [espidf] Only heal a corrupt index, let an I/O read error retry
Corruption reads fine but fails to parse; a plain read error says
nothing about the content, so it aborts the publish instead of
replacing an index whose versions other builds rely on.
2026-09-30 18:11:36 +02:00
J. Nick Koston f727c4e4bb [espidf] Heal an index whose versions field has the wrong shape 2026-09-30 18:03:23 +02:00
J. Nick Koston 0b178443d8 [espidf] Trim comments and docstrings to repo standard 2026-09-30 18:02:11 +02:00
J. Nick Koston 59bdcdbed4 [espidf] Publish indexes with one atomic write and share the index error tuple
The in-memory merge is written with the atomic write_file helper, so a
failed write keeps the live index by construction; the bool return, the
.merged sibling and its cleanup all go away, and a missing or unreadable
live index collapses into one branch. A shared error tuple also stops a
non-dict index entry from escaping the best effort handler, and the
reconfigure failure test now stubs the hint printer instead of resolving
a real IDF install.
2026-09-30 17:53:21 +02:00
J. Nick Koston eae283a843 [espidf] Keep the live index when a merge write fails
A first sync stays silent, an unreadable live index is replaced with a
warning to heal it, and a failed merge write skips promoting that index
so its listed versions survive; the synced version then shows uncovered
and a later run retries.
2026-09-30 17:41:39 +02:00
J. Nick Koston 4320eab456 [espidf] Cover the non-string manifest version and restore the ccache test header 2026-09-30 14:49:52 +02:00
J. Nick Koston 9948cbad59 [espidf] Treat a non-UTF-8 lock or manifest as unreadable 2026-09-30 14:42:21 +02:00
J. Nick Koston d33c98b5e0 [espidf] Mirror shorthand pins, require checksums files, decode sync output as UTF-8
The YAML shorthand keeps its == operator, so those exact pins now join
the manifest pass; coverage requires the checksums file the index names,
since the manager downloads it with no registry fallback; sync output is
decoded as UTF-8 with replacement so a stray byte cannot escape the best
effort handler; a skipped index merge is logged.
2026-09-30 14:37:34 +02:00
J. Nick Koston e166983ad2 [espidf] Merge the index through a sibling file and surface staging cleanup errors
A merged-index write that fails partway can no longer promote a
truncated file; the shared rmtree helper replaces the silent
ignore_errors delete, so stale staged files abort the sync instead of
being promoted.
2026-09-30 14:29:17 +02:00
J. Nick Koston 1091641008 Keep yaml off the upload fast path and let the toolchain own the mirror policy
A top level yaml import taxed every upload subprocess; it now loads
inside the one function that parses YAML, and the lazy import test
watches for it. The mirror env moves next to its sync gate behind one
_esphome_manages_idf predicate, so the two sides cannot diverge.
Promote renames go through the shared retry helper for Windows sharing
violations, ServiceDep prints its own spec, and the module docstring
records the registry sync fan out tradeoff. Duplicate and stale tests
cleaned up.
2026-09-30 14:14:25 +02:00
J. Nick Koston f149c6d14a Promote archives before indexes, recheck coverage, split lock errors
A concurrent configure can no longer see an index entry whose archive
has not landed; a clean sync that still leaves a dependency uncovered
now warns and trips the retry guard instead of resyncing every run;
mixed case manifest keys are lowercased to match the registry's paths;
lock contention stays a quiet skip while any other lock error warns
and counts as a failed attempt.
2026-09-30 14:02:06 +02:00
J. Nick Koston 3880be5e81 Cover the unreadable lock, typed version and corrupt index branches 2026-09-30 13:58:20 +02:00
J. Nick Koston fe1491fd26 [espidf] Stage the sync and promote files into the mirror with renames
The manager writes its files in place, so syncing into the live mirror
could expose a truncated index to a process configuring at the same
time; renames are atomic, and the staged index is merged with the
mirror's existing versions before promotion.
2026-09-30 13:43:50 +02:00
J. Nick Koston 6b0ba542a8 [espidf] Fold the shared parse skeleton and narrow the sync's locked region
Both parsers now share one dependency iterator; the lock acquire has a
single except since filelock's Timeout is an OSError; the subprocess try
covers only the run itself; run_compile syncs only on the up-to-date
branch, since the reconfigure branches sync inside run_reconfigure; the
sync takes the lock and manifest paths explicitly so toolchain spells
them the same way has_outdated_files does.
2026-09-30 13:30:17 +02:00
J. Nick Koston d843ce691c [espidf] Mirror from the manifest before the first solve and reuse filelock
The manifest is written before the first configure and carries exact pins,
so syncing from it lets a fresh solve install from the mirror instead of
downloading every archive twice. The sync moves into run_reconfigure so
every configure path is covered, and the hand-rolled lock file becomes the
filelock pattern the repo already uses, which the OS releases on a crash.
2026-09-30 13:24:37 +02:00
J. Nick Koston 67b55dd9cd [espidf] Mirror registry components locally so configures skip the registry 2026-09-30 13:11:10 +02:00
Panda 6c43247395 [core] Ignore empty CLI address cache entries (#19924) 2026-09-30 12:41:52 +02:00
J. Nick Koston 9208804707 [json] Fix format truncation warnings in the arena tests (#19938) 2026-09-30 09:10:20 +00:00
J. Nick Koston 199cc08270 [midea] Fix a format warning in the esp32 test config (#19946) 2026-09-30 05:00:04 -04:00
J. Nick Koston e7f2159f0e [api] Fix format warnings in the api test config (#19936) 2026-09-30 04:56:37 -04:00
Clyde StubbsandClaude Opus 5.5 5baad05926 [lvgl] Use contextvars to improve lvgl scheduling (#19242)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 04:54:38 -04:00
cd0a0f3fca [zigbee] Add cluster: device_class to expose ESP32 sensors via measurement clusters instead of Analog/Binary Input (#17388)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-09-29 21:48:08 -04:00
Jesse Hills ac1190094a [ethernet] Add KSZ8851SNL SPI ethernet support (#19883) 2026-09-30 13:48:10 +13:00
J. Nick Koston ed88002c37 [core] Extract native toolchain package archives in parallel (#18840) 2026-09-30 02:23:05 +02:00
J. Nick Koston 7187acec04 [core] Add a line based yaml editor and use it for rename (#19410) 2026-09-30 11:15:14 +13:00
J. Nick Koston 25ddc94d5d [web_server_idf] Build state documents in a stack arena so a state event does no heap allocation (#19383) 2026-09-30 11:10:40 +13:00
J. Nick Koston 5502f620d4 [web_server_idf] Send events straight from the caller's buffers instead of a std::string (#19376) 2026-09-30 11:10:40 +13:00
guillempagesandJ. Nick Koston 99c7f9e625 [runtime_image] Improve format logs (#19903)
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-09-29 23:28:28 +02:00
Clyde Stubbs 35d41adf86 [lvgl] Animation updates and debug borders option (#19420) 2026-09-30 07:20:13 +10:00
Keith BurzinskiandClaude Fable 5.1 662c7db222 [nfc] Pass tags to triggers by reference and keep the listener list in static storage (#19902)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-29 15:00:23 -05:00
J. Nick Koston 46be513a39 [core] Create the PlatformIO HTTP cache dir before the first registry lookup (#19906) 2026-09-29 19:34:38 +00:00
J. Nick Koston b8ba8aa1a8 [espidf] Run cmake and ninja directly instead of through idf.py (#19871) 2026-09-29 19:55:22 +02:00
J. Nick Koston 55a7340d06 [esp8266] Make the native arduino toolchain the default (#19886) 2026-09-29 18:52:28 +02:00
J. Nick Koston b22f2e6b4c [core] Leave the precompiled header off on Windows for a GCC with bug 14940 (#19875) 2026-09-29 18:51:12 +02:00
J. Nick Koston a7e0afeb46 [esp8266] Use our own Arduino core builds for the native toolchain (#19876) 2026-09-29 18:38:51 +02:00
J. Nick Koston 5be41dec15 [esp8266] Use our own compiler builds for the native toolchain (#19849) 2026-09-29 18:31:24 +02:00
J. Nick Koston 5fdb73aceb [libretiny] Load the precompiled header on Apple Silicon Macs (#19857) 2026-09-29 18:26:40 +02:00
n-IA-haneandn-IA-hane 627832f7ba [speaker_source] Account for playback callbacks during speaker writes (#19499)
Co-authored-by: n-IA-hane <n-IA-hane@users.noreply.github.com>
2026-09-29 10:36:37 -04:00
Christopher PruijsenandJonathan Swoboda 757a1c42f9 [dfrobot_sen0395] Fix output_latency treating milliseconds as seconds (#19873)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-09-29 09:03:19 -04:00
54a9238425 [epaper_spi] reTerminal Sticky: Four-level grayscale for SSD1677 panels, and a full-refresh action (#19213)
Co-authored-by: Pierre <pierre@mysweethome.ch>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
2026-09-29 19:38:01 +10:00
J. Nick Koston 21c9604918 [network] Keep lwip off the PSRAM tier when Ethernet is configured (#19367) 2026-09-29 01:56:17 -05:00
Clyde Stubbs 2d6a7dae54 [mipi_rgb] Fix SWRESET delay for st7701s (#17646) 2026-09-29 09:40:39 +10:00
J. Nick Koston 30dc453dc1 [ethernet] Move received frames to PSRAM on SPI ethernet chips (#19377) 2026-09-29 10:30:51 +13:00
Clyde Stubbs 13c27429a4 [split_buffer] Allow direct access to buffer chunks (#19819) 2026-09-29 06:30:29 +10:00
J. Nick Koston fc803fcc6d [libretiny] Enable the PlatformIO precompiled header on Linux hosts (#19827) 2026-09-28 18:06:53 +00:00
J. Nick Koston 45189ef445 [nrf52] Precompile the core headers on the sdk-nrf build (#19826) 2026-09-28 19:49:54 +02:00
J. Nick Koston d31ffd4ca3 [esp32] Enable the precompiled header on the PlatformIO toolchain (#19825) 2026-09-28 19:41:59 +02:00
J. Nick Koston 4ec8fae5df [rp2] Enable the PlatformIO precompiled header (#19824) 2026-09-28 19:26:51 +02:00
J. Nick Koston c52ce65d1c [esp8266] Precompile the prefix header on PlatformIO builds (#19823) 2026-09-28 19:19:46 +02:00
esphome[bot] 1f08ea68e6 [ci] Refresh integration test durations (#19847) 2026-09-28 17:12:41 +00:00