J. Nick Koston
3a4f67def8
[core] Fix delay on failed component being dropped; DRY the is_failed check
...
The is_failed() skip exists in two execution paths: the heap loop in call()
and should_skip_item_() (defer queue / delay:0). The previous commit only
exempted SELF_POINTER items from the heap-path check, so on multi-threaded
platforms a delay:0 continuation whose host component had failed would still
be silently dropped.
Extract a single is_item_failed_() helper (with the SELF_POINTER exemption)
and use it from both paths so they cannot drift again.
Add an integration test that schedules a delay from a component that marks
itself failed and asserts the continuation still fires (verified to fail
without the exemption).
2026-06-02 13:54:17 -05:00
J. Nick Koston
5b728f19c3
[core] Attribute "took a long time" blocking warning to its source
...
A blocking operation that runs inside a deferred scheduler continuation
(e.g. after a delay in a script/automation) was reported as:
<null> took a long time for an operation (83 ms), max is 30 ms
Two problems:
* The DelayAction continuation carries no component (since #16129 dropped
Component inheritance), so the warning had nothing to name and printed
"<null>". Telling the user an anonymous delay action is blocking is not
useful; naming the component that hosts the automation is.
* The threshold was hardcoded to "30 ms" but the real default is 50 ms
(WARN_IF_BLOCKING_OVER_CS) and is adaptive per component.
DelayAction now records App.get_current_component() on the scheduler item,
so the warning names the component whose automation chain hit the delay
(falling back to "a scheduled task" when there is genuinely no current
component). This propagates across chained delays because the scheduler
restores the item's component as the current component before each callback.
For SELF_POINTER items the stored component is log-attribution only: the
key (the caller's `this`) is globally unique, so matches_item_locked_
ignores the component when matching and the is_failed() skip is bypassed.
This keeps delay cancellation (restart/parallel/stop) and always-fire
semantics unchanged.
The warning now reports the real (pre-ratchet) threshold instead of the
stale "30 ms".
Adds an integration test reproducing the deferred-block path via an
interval + delay + busy lambda and asserting the warning names a component
and reports "max is 50 ms".
2026-06-02 13:29:27 -05:00
J. Nick Koston
727c74da3f
[script] Fix array-type parameters in script.execute ( #16374 )
2026-05-12 12:17:23 -05:00
J. Nick Koston
a52ca4f80a
[ota] Implement host platform OTA backend with re-exec for integration testing ( #16304 )
2026-05-11 10:51:08 -05:00
Jonathan Swoboda
696a654733
[clang-tidy] Concatenate nested namespaces (7/7: tests, platform-gated, enable check) ( #16307 )
2026-05-07 23:05:17 -04:00
Mat931
90693fb39a
[core] Fix WiFi connection in safe mode ( #16269 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-05-06 09:56:33 -05:00
J. Nick Koston
39b2b901f7
[core] Replace scheduler pool vector with unbounded intrusive freelist ( #16172 )
2026-05-05 18:26:19 -05:00
J. Nick Koston
53c4e6f386
[tests] Drop duplicate on_boot_restore_from in host_mode_climate_basic_state ( #16228 )
2026-05-03 20:12:51 -05:00
J. Nick Koston
013dee44eb
[binary_sensor] Drop Component from AutorepeatFilter, use self-keyed scheduler ( #16191 )
2026-05-03 20:05:27 -05:00
J. Nick Koston
120d1e51fb
[tests] Fix flaky host_mode_climate_basic_state integration test ( #16192 )
2026-05-03 20:04:34 -05:00
J. Nick Koston
72a75f2d3f
[cover] Fold ControlAction/CoverPublishAction fields into stateless lambdas ( #16046 )
2026-05-03 20:02:07 -05:00
J. Nick Koston
df1200629f
[tests] Fix flaky host_mode_climate_basic_state ( #16225 )
2026-05-03 19:44:11 -05:00
J. Nick Koston
3d69169141
[climate] Fold ControlAction fields into a single stateless lambda ( #16044 )
2026-04-30 19:16:16 -05:00
J. Nick Koston
c41f38e16d
[scheduler] Add self-keyed timer API for callers without a Component ( #16127 )
2026-04-29 13:24:37 -05:00
J. Nick Koston
e5b1991cf7
[fan] Add tests for fan.turn_on action field combinations ( #16125 )
2026-04-29 12:46:06 -05:00
J. Nick Koston
7fba57ce51
[valve] Add tests for valve.control action field combinations ( #16126 )
2026-04-29 12:45:30 -05:00
J. Nick Koston
5a33c50015
[light] Use constexpr template for DimRelativeAction transition_length ( #16038 )
2026-04-29 14:26:38 +12:00
J. Nick Koston
0d150dc57e
[light] Use constexpr template for ToggleAction transition_length ( #16037 )
2026-04-29 14:25:18 +12:00
Bonne Eggleston
52e8c50f45
[modbus] Split modbus_server from modbus_controller ( #15509 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-28 10:21:25 -05:00
J. Nick Koston
e4f413adad
[core] decouple main loop cadence from scheduler wake timing ( #15792 )
2026-04-21 14:48:21 +02:00
J. Nick Koston
523c6f2376
[core] coerce set_interval(0) / update_interval: 0ms to 1ms ( #15799 )
2026-04-17 02:45:50 -10:00
J. Nick Koston
e48c7165c5
[light] Avoid addressable transition stall at low gamma-corrected values ( #15726 )
2026-04-15 07:45:42 +12:00
J. Nick Koston
da9fbb8044
[core] Fix app_state_ status bits clobbered for non-looping components ( #15658 )
2026-04-14 07:50:11 -10:00
J. Nick Koston
8e02d0a20e
[fan] Store preset mode vector on Fan entity to eliminate heap allocation ( #15209 )
2026-04-09 10:25:37 +12:00
J. Nick Koston
faa05031a7
[climate] Store custom mode vectors on Climate entity to eliminate heap allocation ( #15206 )
2026-04-09 10:25:29 +12:00
J. Nick Koston
5d31f4aeba
[light] Use function-pointer fields in LightControlAction ( #15132 )
2026-04-07 12:00:17 -10:00
J. Nick Koston
674d030cbb
[core] Reschedule fired intervals directly into heap ( #15516 )
2026-04-07 07:36:55 -10:00
Bonne Eggleston
c6bb1fe141
[modbus] Add integration tests for server and server via controller ( #14845 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-03 20:24:02 +00:00
J. Nick Koston
9b97e95cf3
[binary_sensor] Add on_multi_click integration test ( #15329 )
2026-03-31 07:42:12 -10:00
J. Nick Koston
9fb5b6aa15
[light] Replace initial_state storage with flash-resident callback ( #15133 )
2026-03-24 14:03:18 -10:00
Keith Burzinski
225330413a
[uart] Rename FlushResult to UARTFlushResult with UART_FLUSH_RESULT_ prefix ( #15101 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 01:55:14 -05:00
J. Nick Koston
4d09eb2cec
[tests] Fix flaky ld24xx integration tests by disabling API batching ( #15050 )
2026-03-22 12:29:28 -10:00
J. Nick Koston
5e68282519
[light] Fix constant_brightness broken by gamma LUT refactor ( #15048 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-23 09:14:52 +13:00
Bonne Eggleston
92d5e7b18c
[tests] Fix integration helper to match entities exactly ( #14837 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-15 13:02:23 -10:00
J. Nick Koston
bd844fcd0a
[template] Fix misleading 'Text value too long to save' warning ( #14753 )
2026-03-13 07:37:44 -10:00
Kjell Braden
326769e43c
[runtime_image] fix BMP parsing ( #14762 )
2026-03-13 09:18:42 -04:00
J. Nick Koston
9dd3ec258c
[scheduler] Replace unique_ptr with raw pointers, add leak detection ( #14620 )
2026-03-10 09:11:28 -10:00
Jonathan Swoboda
c31ac662bd
[multiple] Fix crashes from malformed external input ( #14643 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-09 20:39:58 -04:00
J. Nick Koston
aef2d74e41
[ld2450] Add integration tests with mock UART ( #14611 )
2026-03-08 14:32:59 -10:00
J. Nick Koston
88536ff72b
[modbus] Fix timeout for non-hardware UARTs (e.g., USB UART) ( #14614 )
...
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com >
2026-03-08 14:31:42 -10:00
Keith Burzinski
5e842a8b20
[uart] Return flush result, expose timeout via config ( #14608 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-08 05:23:13 +00:00
J. Nick Koston
888f3d804b
[ld2420] Add integration tests with mock UART ( #14471 )
2026-03-07 13:22:50 -10:00
Bonne Eggleston
b0be02e16d
[modbus] Fix timing bugs and better adhere to spec ( #8032 )
...
Co-authored-by: brambo123 <52667932+brambo123@users.noreply.github.com >
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-05 20:54:17 +00:00
J. Nick Koston
5df4fd0a27
[tests] Fix flaky uart_mock integration tests ( #14476 )
2026-03-04 15:51:51 -10:00
J. Nick Koston
b2e8544c58
[ld2412] Add integration tests with mock UART ( #14448 )
2026-03-04 07:18:31 -10:00
Clyde Stubbs
cfde0613bb
[const][uart][usb_uart][weikai][core] Move constants to components/const ( #14430 )
2026-03-03 07:53:18 -05:00
J. Nick Koston
3615a7b90c
[core] Eliminate __udivdi3 in millis() on ESP32 and RP2040 ( #14409 )
2026-03-02 11:42:25 -10:00
Bonne Eggleston
3160457ca6
Create integration tests for modbus ( #14395 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-01 22:51:27 -10:00
J. Nick Koston
80a2acca4f
[ld2410] Add UART mock integration test for LD2410 component ( #14377 )
2026-03-01 18:19:32 -10:00
Jonathan Swoboda
0d5b7df77d
[sensor] Fix delta filter percentage mode regression ( #14302 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-02-25 19:32:02 -05:00