J. Nick Koston
22c77866d8
[e131] Remove unnecessary heap allocation from packet receive loop ( #13852 )
2026-02-09 06:42:26 -06:00
J. Nick Koston
790ac620ab
[web_server_idf] Use C++17 nested namespace style ( #13856 )
2026-02-09 06:42:12 -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
J. Nick Koston
4f5be934a0
[api] Skip class generation for empty SOURCE_CLIENT protobuf messages
2026-02-09 04:12:01 -06:00
J. Nick Koston
f3a0d46ee9
Revert "[api] Skip class generation for empty SOURCE_CLIENT protobuf messages"
...
This reverts commit bd23e3ffa9 .
2026-02-09 04:11:39 -06:00
J. Nick Koston
bd23e3ffa9
[api] Skip class generation for empty SOURCE_CLIENT protobuf messages
2026-02-09 04:05:23 -06:00
tronikos
2cf853d6a1
Merge branch 'dev' into template_water_heater_onoff
2026-02-09 02:04:15 -08: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
926e74db9b
Merge branch 'collapse_intermediary' into merge_read_message
2026-02-09 03:45:51 -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
acdd5e6ac4
Merge remote-tracking branch 'upstream/dev' into collapse_intermediary
2026-02-09 03:44:58 -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
tronikos
0c510ff1e7
update
2026-02-08 22:09:08 -08:00
tronikos
2d22bd4951
fix
2026-02-08 21:35:29 -08: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
J. Nick Koston
b728ebd5fb
tweaks
2026-02-08 14:56:57 -06:00
J. Nick Koston
5caa54761b
tweaks
2026-02-08 14:51:11 -06:00
J. Nick Koston
4efdfda8fb
wip
2026-02-08 14:34:37 -06:00
J. Nick Koston
6099dd3065
wip
2026-02-08 14:34:00 -06:00