Commit Graph

16742 Commits

Author SHA1 Message Date
J. Nick Koston
ef19d7bb24 Merge branch 'integration' into memory_api 2025-11-05 21:22:24 -06:00
J. Nick Koston
39b63ae87e Merge branch 'store_custom_ble_gap_name_flash' into integration 2025-11-05 21:22:17 -06:00
J. Nick Koston
70d947fab9 [esp32_ble] Store custom GAP device name in flash 2025-11-05 21:20:27 -06:00
J. Nick Koston
822eacfd77 [core] Fix wait_until and for_condition timing regression in automation chains (#11716) 2025-11-06 15:49:24 +13:00
Clyde Stubbs
ab5d8f67ae [core] Add helper functions for clamp_at_... (#10387) 2025-11-06 15:48:02 +13:00
J. Nick Koston
83f30a64ed [api] Store YAML service names in flash instead of heap (#11744) 2025-11-06 15:31:59 +13:00
J. Nick Koston
5eea7bdb44 Update AI instructions with C++ style guidelines from developers docs (#11743) 2025-11-06 14:45:48 +13:00
J. Nick Koston
bdfd88441a [ci] Skip memory impact analysis when more than 40 components changed (#11741) 2025-11-05 19:31:23 -06:00
J. Nick Koston
afe4ef17b7 Merge branch 'integration' into memory_api 2025-11-05 19:18:03 -06:00
J. Nick Koston
dc3f4007df Merge branch 'api_services_flash' into integration 2025-11-05 19:17:55 -06:00
J. Nick Koston
8fded918b7 adjust 2025-11-05 19:16:37 -06:00
J. Nick Koston
784dc358f0 Merge branch 'integration' into memory_api 2025-11-05 19:02:28 -06:00
J. Nick Koston
99f5018dd2 Merge branch 'api_services_flash' into integration 2025-11-05 19:02:17 -06:00
J. Nick Koston
ce4f9db778 adjust 2025-11-05 19:01:36 -06:00
J. Nick Koston
b3fdef3ac4 Merge branch 'integration' into memory_api 2025-11-05 18:59:08 -06:00
J. Nick Koston
d7c0ea22c4 Merge branch 'api_services_flash' into integration 2025-11-05 18:58:56 -06:00
J. Nick Koston
15c167b5ce adjust 2025-11-05 18:55:04 -06:00
J. Nick Koston
ab6cb2dee6 remove extra test 2025-11-05 18:51:38 -06:00
J. Nick Koston
bd0705cdc0 [api] Store YAML service names in flash instead of heap
Reduces memory usage for YAML-defined API services by storing service
names and argument names as pointers to string literals in flash instead
of heap-allocated std::string objects.

Implementation:
- Created UserServiceBase<Ts...> for YAML services (const char* storage)
- Created UserServiceDynamic<Ts...> for custom_api_device (std::string storage)
- Updated CustomAPIDeviceService to inherit from UserServiceDynamic
- UserServiceTrigger uses UserServiceBase (YAML-only)

Memory savings per YAML service:
- 0 args: 32 bytes (57% reduction)
- 2 args: 48 bytes (60% reduction)
- 5 args: 96 bytes (63% reduction)

Custom API device services maintain same memory footprint (no regression).

Typical ESPHome device (2-5 services): 100-240 bytes saved
High-service device (10+ services): 400-800 bytes saved
2025-11-05 18:51:17 -06:00
J. Nick Koston
4810c36141 [api] Store YAML service names in flash instead of heap
Reduces memory usage for YAML-defined API services by storing service
names and argument names as pointers to string literals in flash instead
of heap-allocated std::string objects.

Implementation:
- Created UserServiceBase<Ts...> for YAML services (const char* storage)
- Created UserServiceDynamic<Ts...> for custom_api_device (std::string storage)
- Updated CustomAPIDeviceService to inherit from UserServiceDynamic
- UserServiceTrigger uses UserServiceBase (YAML-only)

Memory savings per YAML service:
- 0 args: 32 bytes (57% reduction)
- 2 args: 48 bytes (60% reduction)
- 5 args: 96 bytes (63% reduction)

Custom API device services maintain same memory footprint (no regression).

Typical ESPHome device (2-5 services): 100-240 bytes saved
High-service device (10+ services): 400-800 bytes saved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 18:49:58 -06:00
J. Nick Koston
351262aea9 Merge branch 'integration' into memory_api 2025-11-05 18:06:09 -06:00
J. Nick Koston
89bd9d8d91 Merge branch 'ai_instructions_code_base' into integration 2025-11-05 18:06:02 -06:00
J. Nick Koston
aaee3f2899 Merge remote-tracking branch 'upstream/dev' into integration
# Conflicts:
#	esphome/components/mqtt/mqtt_binary_sensor.cpp
#	esphome/components/mqtt/mqtt_component.cpp
#	esphome/components/mqtt/mqtt_cover.cpp
#	esphome/components/mqtt/mqtt_event.cpp
#	esphome/components/mqtt/mqtt_number.cpp
#	esphome/components/mqtt/mqtt_sensor.cpp
#	esphome/components/mqtt/mqtt_text_sensor.cpp
#	esphome/components/mqtt/mqtt_valve.cpp
2025-11-05 18:05:09 -06:00
Clyde Stubbs
20b6e0d5c2 [lvgl] Allow text substitution for NaN (#11712) 2025-11-06 10:37:38 +11:00
J. Nick Koston
f8aee13a3a use actual pattern 2025-11-05 16:44:06 -06:00
J. Nick Koston
c83e5e076b cleanup 2025-11-05 16:41:26 -06:00
J. Nick Koston
e331056500 Update AI instructions with C++ style guidelines from developers documentation 2025-11-05 16:35:01 -06:00
J. Nick Koston
ce5e608863 [ci] Skip memory impact analysis for release and beta branches (#11740) 2025-11-05 14:32:45 -06:00
J. Nick Koston
aa5795c019 [tests] Fix ID collision between bl0940 and nau7802 component tests (#11739) 2025-11-05 13:17:34 -06:00
J. Nick Koston
00c0854323 [core] Deprecate get_icon(), get_device_class(), get_unit_of_measurement() and fix remaining non-MQTT usages (#11732) 2025-11-05 12:50:35 -06:00
J. Nick Koston
6d390d5b88 Merge branch 'integration' into memory_api 2025-11-05 12:36:32 -06:00
J. Nick Koston
8514fbcf71 Revert "Revert "Revert "[api] Release excess buffer capacity after initial sync"""
This reverts commit e8c7f74abd.
2025-11-05 12:36:27 -06:00
J. Nick Koston
be006ecadd [mdns] Eliminate redundant hostname copy to save heap memory (#11734) 2025-11-05 18:31:19 +00:00
J. Nick Koston
b08419fa47 [mqtt] Use StringRef to avoid string copies in discovery (#11731) 2025-11-06 07:30:45 +13:00
J. Nick Koston
0d2cdc5ce5 Merge branch 'integration' into memory_api 2025-11-05 12:25:24 -06:00
J. Nick Koston
e8c7f74abd Revert "Revert "[api] Release excess buffer capacity after initial sync""
This reverts commit 1fce2918fb.
2025-11-05 12:25:16 -06:00
J. Nick Koston
d25ff00af4 Merge branch 'integration' into memory_api 2025-11-05 12:22:24 -06:00
J. Nick Koston
1fce2918fb Revert "[api] Release excess buffer capacity after initial sync"
This reverts commit 90e4d15fd9.
2025-11-05 12:22:13 -06:00
J. Nick Koston
d36ef050a9 [template] Mark all component classes as final (#11733) 2025-11-06 07:15:50 +13:00
J. Nick Koston
6e4b99db73 Merge branch 'integration' into memory_api 2025-11-05 12:15:30 -06:00
J. Nick Koston
c9feb5cf65 Merge branch 'api_shrink_after_initial_sync' into integration 2025-11-05 12:15:24 -06:00
J. Nick Koston
90e4d15fd9 [api] Release excess buffer capacity after initial sync 2025-11-05 12:14:09 -06:00
J. Nick Koston
df53ff7afe [scheduler] Extract helper functions to improve code readability (#11730) 2025-11-06 07:13:12 +13:00
J. Nick Koston
ab128fe84a Merge branch 'integration' into memory_api 2025-11-05 11:45:35 -06:00
J. Nick Koston
6ccea58ee2 merge 2025-11-05 11:45:27 -06:00
J. Nick Koston
7f4f4033ee Merge branch 'deprecate_get_icon_get_device_class_get_unit_of_measurement' into integration 2025-11-05 11:44:58 -06:00
J. Nick Koston
2352114757 [graph] Remove unnecessary .c_str() calls when appending StringRef to std::string
StringRef has an operator+= overload that allows direct appending to std::string.
No need to call .c_str() first - this is even more efficient.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:42:52 -06:00
J. Nick Koston
cf209e3694 touch ups 2025-11-05 11:42:13 -06:00
J. Nick Koston
ee229bd8f2 Merge branch 'integration' into memory_api 2025-11-05 11:27:55 -06:00
J. Nick Koston
8c1bebb3f4 Merge remote-tracking branch 'upstream/mqtt_copies' into integration 2025-11-05 11:27:46 -06:00