Commit Graph
22036 Commits
Author SHA1 Message Date
J. Nick Koston bb13405775 Merge branch 'ld2412_batch_read' into integration 2026-02-09 09:45:51 -06:00
J. Nick Koston bfde168035 Merge branch 'ld2450_batch_read' into integration 2026-02-09 09:45:51 -06:00
J. Nick Koston d842b5411b Merge branch 'cse7766_batch_read' into integration 2026-02-09 09:45:50 -06:00
J. Nick Koston ca8617cf10 Fix early guard comment 2026-02-09 09:41:45 -06:00
J. Nick Koston 277a11f0ea Remove unnecessary early guard 2026-02-09 09:38:12 -06:00
J. Nick Koston 08cca414e7 Remove unnecessary early guard 2026-02-09 09:37:53 -06:00
J. Nick Koston 4db5835b6f Update comment explaining early guard 2026-02-09 09:32:08 -06:00
J. Nick Koston 59a2f6f538 Add comment explaining early guard 2026-02-09 09:28:51 -06:00
J. Nick Koston a9c37cae26 Add comment explaining early guard 2026-02-09 09:28:32 -06:00
J. Nick Koston 2784059a64 Keep early guard to avoid stack buffer allocation 2026-02-09 09:26:29 -06:00
J. Nick Koston 4827f53156 Keep early guard to avoid stack buffer allocation 2026-02-09 09:26:13 -06:00
J. Nick Koston dfb0c8670d Remove redundant early guard 2026-02-09 09:24:34 -06:00
J. Nick Koston 7490efedd7 Remove redundant early guard 2026-02-09 09:24:15 -06:00
J. Nick Koston 5e8f9c938e Merge branch 'scheduler_uint32t_core_filters' into integration 2026-02-09 06:45:29 -06:00
J. Nick Koston 4b92465afd [scheduler] Fix stale bitfield comments for name_type_ 2026-02-09 06:39:03 -06:00
J. Nick Koston 65c2b29678 Merge remote-tracking branch 'origin/integration' into integration 2026-02-09 06:33:05 -06:00
J. Nick Koston a6345eea08 Merge branch 'scheduler_uint32t_core_filters' into integration 2026-02-09 06:32:01 -06:00
J. Nick Koston 78ddacd766 [scheduler] Update NameType comment to mention internal numeric IDs 2026-02-09 06:26:53 -06:00
J. Nick Koston dd2c5838e1 [scheduler] Use enum class for InternalSchedulerID to avoid materialized constant
The struct + constexpr namespace approach caused the compiler to
materialize POLLING_UPDATE as a 4-byte symbol. An enum class with
uint32_t underlying type gives the same type safety but enum values
are true compile-time constants that never get materialized.
2026-02-09 06:25:55 -06:00
J. Nick Koston d9f7c26b16 Revert "[scheduler] Inline all trivial Scheduler forwarding methods"
This reverts commit d2728f2ccd.
2026-02-09 06:24:49 -06:00
J. Nick Koston d2728f2ccd [scheduler] Inline all trivial Scheduler forwarding methods
Move all set_timeout, cancel_timeout, set_interval, cancel_interval
overloads (const char*, uint32_t, std::string) from scheduler.cpp to
inline in scheduler.h. These are all trivial one-liner forwarding calls
to set_timer_common_ or cancel_item_ and benefit from inlining at
call sites rather than being separate symbols.
2026-02-09 06:16:49 -06:00
J. Nick Koston 769d4e4444 [scheduler] Inline InternalSchedulerID overloads to eliminate code size overhead
Move the 4 Scheduler InternalSchedulerID methods from .cpp to inline
in the header. They're trivial one-liners that extract .id and forward
to set_timer_common_/cancel_item_, so the compiler can fold them into
call sites instead of emitting separate function bodies.
2026-02-09 06:07:49 -06:00
J. Nick Koston 3d2b9641a4 [scheduler] Add integration test for internal vs numeric ID isolation
Verifies that NUMERIC_ID_INTERNAL and NUMERIC_ID are completely
independent matching namespaces — same uint32_t value on the same
component does not collide. Tests that cancelling one type does not
affect the other, and that string names also don't cross-match.
2026-02-09 06:05:13 -06:00
J. Nick Koston ed3acd582e [scheduler] Make core timer ID collisions impossible with type-safe internal IDs
Previously, PollingComponent used the string "update" and DelayAction
used "delay" as scheduler names. If a component subclassing
PollingComponent or using DelayAction also happened to use these same
strings for its own timers, the core timer would be silently cancelled
— a subtle bug that would be extremely hard to track down.

This introduces InternalSchedulerID, a type-safe wrapper that routes
through a new NUMERIC_ID_INTERNAL NameType. Since the scheduler
matches by (component, name_type, id, type), internal IDs can never
collide with component-level NUMERIC_ID or string-based names, even
if the underlying uint32_t values overlap.

Also migrates binary_sensor filters, MultiClickTrigger, and sensor
filters from string-based to uint32_t scheduler IDs. Each filter is
its own Component instance so IDs are scoped per-instance with no
collision risk.
2026-02-09 05:50:41 -06:00
J. Nick Koston ba2ac54932 Merge branches 'cse7766_batch_read', 'ld2410_batch_read', 'ld2412_batch_read', 'ld2420_batch_read', 'ld2450_batch_read', 'modbus_batch_read', 'nextion_batch_read', 'pylontech_batch_read', 'seeed_mr_batch_read', 'dsmr_batch_read', 'tuya_batch_read', 'dlms_meter_batch_read', 'pipsolar_batch_read', 'rd03d_batch_read', 'rf_bridge_batch_read' and 'dfplayer_batch_read' into integration 2026-02-09 04:35:39 -06:00
J. Nick Koston a0f736b7aa Future-proof available() check to handle negative return values 2026-02-09 04:35:11 -06:00
J. Nick Koston 21f270677b Future-proof available() check to handle negative return values 2026-02-09 04:34:49 -06:00
J. Nick Koston d6e692e302 Future-proof available() check to handle negative return values 2026-02-09 04:34:32 -06:00
J. Nick Koston 991ce396a9 Future-proof available() check to handle negative return values 2026-02-09 04:34:14 -06:00
J. Nick Koston 68dfb844bd Future-proof available() check to handle negative return values 2026-02-09 04:32:14 -06:00
J. Nick Koston 9742880bf7 Add comment explaining available() <= 0 check 2026-02-09 04:31:16 -06:00
J. Nick Koston 13f9726534 Add comment explaining available() <= 0 check 2026-02-09 04:30:59 -06:00
J. Nick Koston dd07e25a8f Future-proof available() check to handle negative return values 2026-02-09 04:30:15 -06:00
J. Nick Koston a875a2fb9b Future-proof available() check to handle negative return values 2026-02-09 04:29:37 -06:00
tronikos fb93283720 [water_heater] Add state masking to distinguish explicit commands from no-change (#13879) 2026-02-09 03:52:49 -06:00
J. Nick Koston bed01da345 [api] Guard varint parsing against overlong encodings (#13870) 2026-02-09 03:45:40 -06:00
J. Nick Koston 422f413680 [lps22] Replace set_retry with set_interval to avoid heap allocation (#13841) 2026-02-09 03:26:44 -06:00
J. Nick Koston c3c0c40524 [mqtt] Return friendly_name_() by const reference to avoid string copies (#13810) 2026-02-09 03:26:29 -06:00
J. Nick Koston 46f8302d8f [mqtt] Use stack buffer for discovery topic to avoid heap allocation (#13812) 2026-02-09 03:26:15 -06:00
J. Nick Koston e24528c842 [analyze-memory] Attribute CSWTCH symbols from SDK archives (#13850) 2026-02-09 03:25:59 -06:00
J. Nick Koston 5370687001 [wizard] Use secrets module for fallback AP password generation (#13864) 2026-02-09 03:25:41 -06:00
J. Nick Koston 6ee185c58a [dashboard] Use resolve/relative_to for download path validation (#13867) 2026-02-09 03:25:23 -06:00
J. Nick Koston eb6a6f8d0d [web_server_idf] Remove unused host() method (#13869) 2026-02-09 03:25:05 -06:00
J. Nick Koston 140ec0639c [api] Elide empty message construction in protobuf dispatch (#13871) 2026-02-09 03:24:45 -06:00
Clyde Stubbs 756f1c6b7e [lvgl] Fix crash with unconfigured top_layer (#13846) 2026-02-08 21:53:43 -05:00
J. Nick Koston 6469863aea Merge remote-tracking branch 'origin/libs_analyze_memory' into integration 2026-02-08 15:04:43 -06:00
J. Nick Koston 8f032d5213 wip 2026-02-08 15:04:33 -06:00
J. Nick Koston 4efaaedb05 Merge remote-tracking branch 'origin/libs_analyze_memory' into integration 2026-02-08 15:01:18 -06:00
J. Nick Koston 12c369cb09 wip 2026-02-08 15:01:01 -06:00
J. Nick Koston e56d1a6ee9 Merge remote-tracking branch 'origin/libs_analyze_memory' into integration 2026-02-08 14:57:18 -06:00