mirror of
https://github.com/esphome/esphome.git
synced 2026-02-08 16:51:52 +00:00
Compare commits
merge into: sascha:collapse_intermediary
sascha:dev
sascha:integration
sascha:libretiny_1120
sascha:merge_read_message
sascha:collapse_intermediary
sascha:empty_messages_reduce
sascha:hardening/api-varint-guard
sascha:cleanup/remove-dead-host-method
sascha:web_server_idf_heap
sascha:hardening/dashboard-path-resolve
sascha:hardening/dashboard-username-timing
sascha:hardening/web-server-constant-time-compare
sascha:hardening/dashboard-base64-error
sascha:hardening/ota-secure-cnonce
sascha:hardening/wizard-secure-psk
sascha:hlk_fm22x_eliminate_heap_alloc
sascha:voice-assistant-timer-vector
sascha:web_server_idf_namespace
sascha:modbus_send_stack_buffer
sascha:e131_remove_vector_alloc
sascha:cswitch_sdk
sascha:beta_premerge
sascha:deprecate_set_retry
sascha:ms8607_remove_set_retry
sascha:esp32_hosted_remove_set_retry
sascha:speaker_media_player_remove_set_retry
sascha:lps22_remove_set_retry
sascha:scheduler-inplace-cleanup
sascha:logger_thread_name_cleanup
sascha:ld2420_batch_read
sascha:dfplayer_batch_read
sascha:rf_bridge_batch_read
sascha:rd03d_batch_read
sascha:pipsolar_batch_read
sascha:dlms_meter_batch_read
sascha:dsmr_batch_read
sascha:tuya_batch_read
sascha:seeed_mr_batch_read
sascha:nextion_batch_read
sascha:pylontech_batch_read
sascha:modbus_batch_read
sascha:ld2410_batch_read
sascha:ld2412_batch_read
sascha:ld2450_batch_read
sascha:cse7766_batch_read
sascha:ssd1306-progmem-tables
sascha:i2c-arduino-cswtch
sascha:debug_progmem
sascha:mqtt-custom-topic-no-alloc
sascha:mqtt-discovery-topic-no-alloc
sascha:mqtt-friendly-name-const-ref
sascha:mqtt-on-log-no-heap
sascha:rtttl_progmem
sascha:bmp_progmem
sascha:sprinkler_progmem
sascha:uart_partity
sascha:http_request_reduce_alloc
sascha:esphome_build_server
sascha:no_new_to_string
sascha:beta
sascha:release
sascha:idf_avoids_some_alloc_strings
sascha:web_server_64_bit_time
sascha:compact_string_wifi
sascha:template_triggers
sascha:posix_tz_avoid_linking_scanf
sascha:_strtod_l
sascha:task_prio
sascha:peername_no_double_ram
sascha:posix_tz
sascha:json_web_server_stack
sascha:avoid_prefs_heap_churn
sascha:chunked_fix_again_comments
sascha:copilot/add-deprecated-component-label
sascha:rp2040_web_server
sascha:water_heater_entityBase
sascha:legacy_id
sascha:integration_compact_string_wifi
sascha:pipsolar_teleinfo
sascha:action_call_api
sascha:choose-mdns
sascha:water_heater_web_server
sascha:web_server_cap_portal_co_exist
sascha:max6956_gpio_cache_banks
sascha:text_fix_heap_churn
sascha:combine_logs
sascha:combine-logs-max31865
sascha:wh_template
sascha:combine-logs-atm90e32
sascha:no_send_object_id
sascha:wifi_scan_results_no_heap
sascha:wifi_scan_results_de_dupe
sascha:vbus
sascha:pioarduino_venv_clean_all
sascha:ha_state_no_alloc
sascha:ota_md5
sascha:wifi_less_alloc
sascha:integration_object
sascha:logger_rp2040
sascha:parition_callbacks
sascha:dependabot/pip/click-8.3.1
sascha:wifi_timeout
sascha:skip_wifi_rssi_publish_disconnected
sascha:memory_api
sascha:broken_target
sascha:scheduler_no64bit
sascha:filter-platformio-logging
sascha:fix-clean-all-windows
sascha:speed_count_255
sascha:reboot_timeout_cleanup
sascha:wifi_station_get_config_esp8266
sascha:copilot/fix-10045
sascha:scheduler_heap_churn
sascha:status_set_error_dangling_pointer
sascha:claude/esphome-action-responses-01EXP5td9nGeLpBoTe8eenre
sascha:copilot/fix-internal-gpio-attach-issues
sascha:claude/optimize-inkplate-display-01XRaLWTgEsLC7AY9zkMwoWX
sascha:copilot/fix-deprecated-pulse-counter-driver
sascha:claude/implement-ha-cards-lvgl-01P4a84LZVfkvp74VAeW6byq
sascha:lock_namespace
sascha:wifi_namespace
sascha:claude/bthome-packet-parser-013Zc5fvXF4EUg5mHfDhMegw
sascha:claude/add-axp2101-component-01J2hk1SL1x8F31eGwsNaQMF
sascha:claude/create-esphome-component-01NmXTzEgrF39phnCSe8viLm
sascha:claude/implement-feature-01XZW5wQYzHvETNshAWfKm5q
sascha:captive_portal_recovery_wrong_password
sascha:claude/implement-tcal6416-expander-0131pM94uVv4T87qFicTeKje
sascha:claude/add-bmi270-component-01FYE7M2ES2quDQrHgjZPKiA
sascha:claude/gpio-expander-interrupts-01HSsYCjopzRVuG4BJ3g3fY4
sascha:claude/implement-t-01EW4HWW8XiCCEq2m7GeJzTV
sascha:dashboard_import_url_rodata
sascha:ld2450_clear_values_when_no_target_detected
sascha:memory_api_cooldown
sascha:wifi_prio
sascha:controller_registry_callback_cleanup
sascha:api_shrink_after_initial_sync
sascha:memory_api_action_chaining_const_ref
sascha:cache_components_graph_ci_Test
sascha:climate_store_flash_thermostat
sascha:determine_jobs_comp_split_test
sascha:more_flexible_template
sascha:proto_vector_growth
sascha:ci_test_omp
sascha:memory_api_proto
sascha:wifi_ssid_password_flash
sascha:template_lambdas
sascha:memory_api_templates_lambdas
sascha:usb_memory_order_retry
sascha:qualify_millis_tests_tinygps
sascha:light-addr
sascha:select_options_fixed
sascha:select_fixed_vector
sascha:automation_initializer_list
sascha:fix_clang_tidy_split_comp_file_count_single
sascha:fix_clang_tidy_split_comp_file_count_sensor_test
sascha:fix-package-key-with-period
sascha:platformio_cache_tests
sascha:clang_tidy_small_prs_clang_tidy_test
sascha:cache_github
sascha:voice_get_config
sascha:jesserockz-2025-297
sascha:20251001-thermostat-humidity-support
sascha:mqtt_reduce_json_assign_flash
sascha:ci_impact_analysis_script
sascha:ci_impact_analysis_sensor_full
sascha:ci_impact_analysis_sensor_base
sascha:wifi_fixed_vector
sascha:idf_spi_esp32
sascha:web_server_idf_query_parser
sascha:cond_compile_responses
sascha:release-testing-mock
sascha:jesserockz-2025-423
sascha:base64_chars_flash_esp8266
sascha:web_server_8266_store_flash
sascha:ble_tx_power
sascha:jesserockz-2025-370
sascha:copilot/fix-9982
sascha:jesserockz-2025-352
sascha:revert-9439-lib_compat_mode_fix
sascha:jesserockz-2025-326
sascha:jesserockz-2025-322
sascha:copilot/fix-9603
sascha:jesserockz-2025-287
sascha:api_dispatch
sascha:modbus_heap
sascha:jesserockz-2025-250
sascha:loop_runtime_stats
sascha:jesserockz-2025-217
sascha:bluetooth_proxy_stats
sascha:add_api_stats
sascha:add-heap-tracing
sascha:jesserockz-2025-102
sascha:jesserockz-2025-064
sascha:ld2420
sascha:jesserockz-2024-578
sascha:jesserockz-2024-565
sascha:jesserockz-2023-304
sascha:jesserockz-2023-232
sascha:jesserockz-2023-284
sascha:jesserockz-2024-416
sascha:power-supply-logs
sascha:jesserockz-2024-399
sascha:jesserockz-2024-251
sascha:jesserockz-2024-248
sascha:jesserockz-2024-210
sascha:bluetooth-proxy-log-device-requests
sascha:jesserockz-2024-196
sascha:jesserockz-2024-151
sascha:jesserockz-2023-284-2
sascha:jesserockz-2023-415
sascha:jesserockz-2023-409
sascha:ina226-extra-logs
sascha:remove-unique-id
sascha:jesserockz-2023-284-v2.6
sascha:socket-client-mode
sascha:jesserockz-2022-199
sascha:jesserockz-2023-121
sascha:jesserockz-2023-110
sascha:jesserockz-2023-045
sascha:jesserockz-2022-398
sascha:jesserockz-2022-381
sascha:jesserockz-2022-321
sascha:jesserockz-2022-284
sascha:jesserockz-2022-172
sascha:jesserockz-2022-094
sascha:ble-server-controller
sascha:oral-b-brush
sascha:improv_serial/log-levels
sascha:2026.1.4
sascha:2026.1.3
sascha:2026.1.2
sascha:2026.1.1
sascha:2026.1.0
sascha:2026.1.0b4
sascha:2026.1.0b3
sascha:2025.12.7
sascha:2026.1.0b2
sascha:2026.1.0b1
sascha:2025.12.6
sascha:2025.12.5
sascha:2025.12.4
sascha:2025.12.3
sascha:2025.12.2
sascha:2025.12.1
sascha:2025.12.0
sascha:2025.12.0b5
sascha:2025.12.0b4
sascha:2025.12.0b3
sascha:2025.12.0b2
sascha:2025.12.0b1
sascha:2025.11.5
sascha:2025.11.4
sascha:2025.11.3
sascha:2025.11.2
sascha:2025.11.1
sascha:2025.11.0
sascha:2025.11.0b5
sascha:2025.11.0b4
sascha:2025.11.0b3
sascha:2025.11.0b2
sascha:2025.11.0b1
sascha:2025.10.5
sascha:2025.10.4
sascha:2025.10.3
sascha:2025.10.2
sascha:2025.10.1
sascha:2025.10.0
sascha:2025.10.0b4
sascha:2025.10.0b3
sascha:2025.10.0b2
sascha:2025.10.0b1
sascha:2025.9.3
sascha:2025.9.2
sascha:2025.9.1
sascha:2025.9.0
sascha:2025.9.0b4
sascha:2025.9.0b3
sascha:2025.9.0b2
sascha:2025.9.0b1
sascha:2025.8.4
sascha:2025.8.3
sascha:2025.8.2
sascha:2025.8.1
sascha:2025.8.0
sascha:2025.8.0b4
sascha:2025.8.0b3
sascha:2025.8.0b2
sascha:2025.8.0b1
sascha:2025.7.5
sascha:2025.7.4
sascha:2025.7.3
sascha:2025.7.2
sascha:2025.7.1
sascha:2025.7.0
sascha:2025.7.0b5
sascha:2025.7.0b4
sascha:2025.7.0b3
sascha:2025.7.0b2
sascha:2025.7.0b1
sascha:2025.6.3
sascha:2025.6.2
sascha:2025.6.1
sascha:2025.6.0
sascha:2025.6.0b3
sascha:2025.6.0b2
sascha:2025.6.0b1
sascha:2025.5.2
sascha:2025.5.1
sascha:2025.5.0
sascha:2025.5.0b6
sascha:2025.5.0b5
sascha:2025.5.0b4
sascha:2025.5.0b3
sascha:2025.5.0b2
sascha:2025.5.0b1
sascha:2025.4.2
sascha:2025.4.1
sascha:2025.4.0
sascha:2025.4.0b3
sascha:2025.4.0b2
sascha:2025.4.0b1
sascha:2025.3.3
sascha:2025.3.2
sascha:2025.3.1
sascha:2025.3.0
sascha:2025.3.0b5
sascha:2025.3.0b4
sascha:2025.3.0b3
sascha:2025.3.0b2
sascha:2025.3.0b1
sascha:2025.2.2
sascha:2025.2.1
sascha:2025.2.0
sascha:2025.2.0b6
sascha:2025.2.0b5
sascha:2025.2.0b4
sascha:2025.2.0b3
sascha:2025.2.0b2
sascha:2025.2.0b1
sascha:2024.12.4
sascha:2024.12.3
sascha:2024.12.2
sascha:2024.12.1
sascha:2024.12.0
sascha:2024.12.0b3
sascha:2024.12.0b2
sascha:2024.12.0b1
sascha:2024.11.3
sascha:2024.11.2
sascha:2024.11.1
sascha:2024.11.0
sascha:2024.11.0b4
sascha:2024.11.0b3
sascha:2024.11.0b2
sascha:2024.11.0b1
sascha:2024.10.3
sascha:2024.10.2
sascha:2024.10.1
sascha:2024.10.0
sascha:2024.10.0b2
sascha:2024.10.0b1
sascha:2024.9.2
sascha:2024.9.1
sascha:2024.9.0
sascha:2024.9.0b4
sascha:2024.9.0b3
sascha:2024.9.0b2
sascha:2024.9.0b1
sascha:2024.8.3
sascha:2024.8.2
sascha:2024.8.1
sascha:2024.8.0
sascha:2024.8.0b4
sascha:2024.8.0b3
sascha:2024.8.0b2
sascha:2024.8.0b1
sascha:2024.7.3
sascha:2024.7.2
sascha:2024.7.1
sascha:2024.7.0
sascha:2024.7.0b4
sascha:2024.7.0b3
sascha:2024.7.0b2
sascha:2024.7.0b1
sascha:2024.6.6
sascha:2024.6.5
sascha:2024.6.4
sascha:2024.6.3
sascha:2024.6.2
sascha:2024.6.1
sascha:2024.6.0
sascha:2024.6.0b5
sascha:2024.6.0b4
sascha:2024.6.0b3
sascha:2024.6.0b2
sascha:2024.6.0b1
sascha:2024.5.5
sascha:2024.5.4
sascha:2024.5.3
sascha:2024.5.2
sascha:2024.5.1
sascha:2024.5.0
sascha:2024.5.0b6
sascha:2024.5.0b5
sascha:2024.5.0b4
sascha:2024.5.0b3
sascha:2024.5.0b2
sascha:2024.5.0b1
sascha:2024.4.2
sascha:2024.4.1
sascha:2024.4.0
sascha:2024.4.0b3
sascha:2024.4.0b2
sascha:2024.4.0b1
sascha:2024.3.2
sascha:2024.3.1
sascha:2024.3.0
sascha:2024.3.0b5
sascha:2024.3.0b4
sascha:2024.3.0b3
sascha:2024.3.0b2
sascha:2024.3.0b1
sascha:2024.2.2
sascha:2024.2.1
sascha:2024.2.0
sascha:2024.2.0b3
sascha:2024.2.0b2
sascha:2024.2.0b1
sascha:2023.12.9
sascha:2023.12.8
sascha:2023.12.7
sascha:2023.12.6
sascha:2023.12.5
sascha:2023.12.4
sascha:2023.12.3
sascha:2023.12.2
sascha:2023.12.1
sascha:2023.12.0
sascha:2023.12.0b6
sascha:2023.12.0b5
sascha:2023.12.0b4
sascha:2023.12.0b3
sascha:2023.12.0b2
sascha:2023.12.0b1
sascha:2023.11.6
sascha:2023.11.5
sascha:2023.11.4
sascha:2023.11.3
sascha:2023.11.2
sascha:2023.11.1
sascha:2023.11.0
sascha:2023.11.0b7
sascha:2023.11.0b6
sascha:2023.11.0b5
sascha:2023.11.0b4
sascha:2023.11.0b3
sascha:2023.11.0b2
sascha:2023.11.0b1
sascha:2023.10.6
sascha:2023.10.5
sascha:2023.10.4
sascha:2023.10.3
sascha:2023.10.2
sascha:2023.10.1
sascha:2023.10.0
sascha:2023.10.0b4
sascha:2023.10.0b3
sascha:2023.10.0b2
sascha:2023.10.0b1
sascha:2023.9.3
sascha:2023.9.2
sascha:2023.9.1
sascha:2023.9.0
sascha:2023.9.0b4
sascha:2023.9.0b3
sascha:2023.9.0b2
sascha:2023.9.0b1
sascha:2023.8.3
sascha:2023.8.2
sascha:2023.8.1
sascha:2023.8.0
sascha:2023.8.0b4
sascha:2023.8.0b3
sascha:2023.8.0b2
sascha:2023.8.0b1
sascha:2023.7.1
sascha:2023.7.0
sascha:2023.7.0b3
sascha:2023.7.0b2
sascha:2023.7.0b1
sascha:2023.6.5
sascha:2023.6.4
sascha:2023.6.3
sascha:2023.6.2
sascha:2023.6.1
sascha:2023.6.0
sascha:2023.6.0b7
sascha:2023.6.0b6
sascha:2023.6.0b5
sascha:2023.6.0b4
sascha:2023.6.0b3
sascha:2023.6.0b2
sascha:2023.6.0b1
sascha:2023.5.5
sascha:2023.5.4
sascha:2023.5.3
sascha:2023.5.2
sascha:2023.5.1
sascha:2023.5.0
sascha:2023.5.0b5
sascha:2023.5.0b4
sascha:2023.5.0b3
sascha:2023.5.0b2
sascha:2023.5.0b1
sascha:2023.4.4
sascha:2023.4.3
sascha:2023.4.2
sascha:2023.4.1
sascha:2023.4.0
sascha:2023.4.0b4
sascha:2023.4.0b3
sascha:2023.4.0b2
sascha:2023.4.0b1
sascha:2023.3.2
sascha:2023.3.1
sascha:2023.3.0
sascha:2023.3.0b6
sascha:2023.3.0b5
sascha:2023.3.0b4
sascha:2023.3.0b3
sascha:2023.3.0b2
sascha:2023.3.0b1
sascha:2023.2.4
sascha:2023.2.3
sascha:2023.2.2
sascha:2023.2.1
sascha:2023.2.0
sascha:2023.2.0b5
sascha:2023.2.0b4
sascha:2023.2.0b3
sascha:2023.2.0b2
sascha:2023.2.0b1
sascha:2022.12.8
sascha:2022.12.7
sascha:2022.12.6
sascha:2022.12.5
sascha:2022.12.4
sascha:2022.12.3
sascha:2022.12.2
sascha:2022.12.1
sascha:2022.12.0
sascha:2022.12.0b6
sascha:2022.12.0b5
sascha:2022.12.0b4
sascha:2022.12.0b3
sascha:2022.12.0b2
sascha:2022.12.0b1
sascha:2022.11.5
sascha:2022.11.4
sascha:2022.11.3
sascha:2022.11.2
sascha:2022.11.1
sascha:2022.11.0
sascha:2022.11.0b6
sascha:2022.11.0b5
sascha:2022.11.0b4
sascha:2022.11.0b3
sascha:2022.11.0b2
sascha:2022.11.0b1
sascha:2022.10.2
sascha:2022.10.1
sascha:2022.10.0
sascha:2022.10.0b2
sascha:2022.10.0b1
sascha:2022.9.4
sascha:2022.9.3
sascha:2022.9.2
sascha:2022.9.1
sascha:2022.9.0
sascha:2022.9.0b5
sascha:2022.9.0b4
sascha:2022.9.0b3
sascha:2022.9.0b2
sascha:2022.9.0b1
sascha:2022.8.3
sascha:2022.8.2
sascha:2022.8.1
sascha:2022.8.0
sascha:2022.8.0b3
sascha:2022.8.0b2
sascha:2022.8.0b1
sascha:2022.6.3
sascha:2022.6.2
sascha:2022.6.1
sascha:2022.6.0
sascha:2022.6.0b4
sascha:2022.6.0b3
sascha:2022.6.0b2
sascha:2022.6.0b1
sascha:2022.5.1
sascha:2022.5.0
sascha:2022.5.0b4
sascha:2022.5.0b3
sascha:2022.5.0b2
sascha:2022.5.0b1
sascha:2022.4.0
sascha:2022.4.0b4
sascha:2022.4.0b3
sascha:2022.4.0b2
sascha:2022.4.0b1
sascha:2022.3.2
sascha:2022.3.1
sascha:2022.3.0
sascha:2022.3.0b2
sascha:2022.3.0b1
sascha:2022.2.6
sascha:2022.2.5
sascha:2022.2.4
sascha:2022.2.3
sascha:2022.2.2
sascha:2022.2.1
sascha:2022.2.0
sascha:2022.2.0b3
sascha:2022.2.0b2
sascha:2022.2.0b1
sascha:2022.1.4
sascha:2022.1.3
sascha:2022.1.2
sascha:2022.1.1
sascha:2022.1.0
sascha:2022.1.0b4
sascha:2022.1.0b3
sascha:2022.1.0b2
sascha:2022.1.0b1
sascha:2021.12.3
sascha:2021.12.2
sascha:2021.12.1
sascha:2021.12.0
sascha:2021.12.0b6
sascha:2021.12.0b5
sascha:2021.12.0b4
sascha:2021.12.0b3
sascha:2021.12.0b2
sascha:2021.12.0b1
sascha:2021.11.4
sascha:2021.11.3
sascha:2021.11.2
sascha:2021.11.1
sascha:2021.11.0
sascha:2021.11.0b9
sascha:2021.11.0b8
sascha:2021.11.0b7
sascha:2021.11.0b6
sascha:2021.11.0b5
sascha:2021.11.0b4
sascha:2021.11.0b3
sascha:2021.11.0b2
sascha:2021.11.0b1
sascha:2021.10.3
sascha:2021.10.2
sascha:2021.10.1
sascha:2021.10.0
sascha:2021.10.0b11
sascha:2021.10.0b10
sascha:2021.10.0b9
sascha:2021.10.0b8
sascha:2021.10.0b7
sascha:2021.10.0b6
sascha:2021.10.0b5
sascha:2021.10.0b4
sascha:2021.10.0b3
sascha:2021.10.0b2
sascha:2021.10.0b1
sascha:2021.9.3
sascha:2021.9.2
sascha:2021.9.1
sascha:2021.9.0
sascha:2021.9.0b5
sascha:2021.9.0b4
sascha:2021.9.0b3
sascha:2021.9.0b2
sascha:2021.9.0b1
sascha:2021.8.2
sascha:2021.8.1
sascha:2021.8.0
sascha:v1.21.0b3
sascha:v1.21.0b2
sascha:v1.21.0b1
sascha:v1.20.4
sascha:v1.20.3
sascha:v1.20.2
sascha:v1.20.1
sascha:v1.20.0
sascha:v1.20.0b6
sascha:v1.20.0b5
sascha:v1.20.0b4
sascha:v1.20.0b3
sascha:v1.20.0b2
sascha:v1.20.0b1
sascha:v1.19.4
sascha:v1.19.3
sascha:v1.19.2
sascha:v1.19.1
sascha:v1.19.0
sascha:v1.19.0b7
sascha:v1.19.0b6
sascha:v1.19.0b5
sascha:v1.19.0b4
sascha:v1.19.0b3
sascha:v1.19.0b2
sascha:v1.19.0b1
sascha:v1.18.0
sascha:v1.18.0b4
sascha:v1.18.0b3
sascha:v1.18.0b2
sascha:v1.18.0b1
sascha:v1.17.2
sascha:v1.17.1
sascha:v1.17.0
sascha:v1.17.0b1
sascha:v1.16.2
sascha:v1.16.1
sascha:v1.16.0
sascha:v1.16.0b8
sascha:v1.16.0b7
sascha:v1.16.0b6
sascha:v1.16.0b5
sascha:v1.16.0b4
sascha:v1.16.0b3
sascha:v1.16.0b2
sascha:v1.16.0b1
sascha:v1.15.3
sascha:v1.15.2
sascha:v1.15.1
sascha:v1.15.0
sascha:v1.15.0b4
sascha:v1.15.0b3
sascha:v1.15.0b2
sascha:v1.15.0b1
sascha:v1.14.5
sascha:v1.14.4
sascha:v1.14.3
sascha:v1.14.2
sascha:v1.14.1
sascha:v1.14.0
sascha:v1.14.0b5
sascha:v1.14.0b4
sascha:v1.14.0b3
sascha:v1.14.0b2
sascha:v1.14.0b1
sascha:v1.13.6
sascha:v1.13.5
sascha:v1.13.4
sascha:v1.13.3
sascha:v1.13.2
sascha:v1.13.1
sascha:v1.13.0
sascha:v1.13.0b7
sascha:v1.13.0b6
sascha:v1.13.0b5
sascha:v1.13.0b4
sascha:v1.13.0b3
sascha:v1.13.0b2
sascha:v1.13.0b1
sascha:v1.12.2
sascha:v1.12.1
sascha:v1.12.0
sascha:v1.12.0b4
sascha:v1.12.0b3
sascha:v1.12.0b2
sascha:v1.12.0b1
sascha:v1.11.2
sascha:v1.11.1
sascha:v1.11.0
sascha:v1.11.0b3
sascha:v1.11.0b2
sascha:v1.11.0b1
sascha:v1.10.1
sascha:v1.10.0
sascha:v1.10.0b2
sascha:v1.10.0b1
sascha:v1.9.3
sascha:v1.9.2
sascha:v1.9.1
sascha:v1.9.0
sascha:v1.9.0b6
sascha:v1.9.0b5
sascha:v1.9.0b4
sascha:v1.9.0b3
sascha:v1.9.0b2
sascha:v1.9.0b1
sascha:v1.8.2
sascha:v1.8.1
sascha:v1.8.0
sascha:v1.7.0
sascha:v1.6.2
sascha:v1.6.1
sascha:v1.6.0
sascha:v1.5.3
sascha:v1.5.2
sascha:v1.5.1
sascha:v1.5.0
sascha:v1.4.0
sascha:v1.3.0
sascha:v1.2.2
sascha:v1.2.1
sascha:v1.1
...
pull from: sascha:scheduler-inplace-cleanup
sascha:integration
sascha:libretiny_1120
sascha:merge_read_message
sascha:collapse_intermediary
sascha:empty_messages_reduce
sascha:hardening/api-varint-guard
sascha:dev
sascha:cleanup/remove-dead-host-method
sascha:web_server_idf_heap
sascha:hardening/dashboard-path-resolve
sascha:hardening/dashboard-username-timing
sascha:hardening/web-server-constant-time-compare
sascha:hardening/dashboard-base64-error
sascha:hardening/ota-secure-cnonce
sascha:hardening/wizard-secure-psk
sascha:hlk_fm22x_eliminate_heap_alloc
sascha:voice-assistant-timer-vector
sascha:web_server_idf_namespace
sascha:modbus_send_stack_buffer
sascha:e131_remove_vector_alloc
sascha:cswitch_sdk
sascha:beta_premerge
sascha:deprecate_set_retry
sascha:ms8607_remove_set_retry
sascha:esp32_hosted_remove_set_retry
sascha:speaker_media_player_remove_set_retry
sascha:lps22_remove_set_retry
sascha:scheduler-inplace-cleanup
sascha:logger_thread_name_cleanup
sascha:ld2420_batch_read
sascha:dfplayer_batch_read
sascha:rf_bridge_batch_read
sascha:rd03d_batch_read
sascha:pipsolar_batch_read
sascha:dlms_meter_batch_read
sascha:dsmr_batch_read
sascha:tuya_batch_read
sascha:seeed_mr_batch_read
sascha:nextion_batch_read
sascha:pylontech_batch_read
sascha:modbus_batch_read
sascha:ld2410_batch_read
sascha:ld2412_batch_read
sascha:ld2450_batch_read
sascha:cse7766_batch_read
sascha:ssd1306-progmem-tables
sascha:i2c-arduino-cswtch
sascha:debug_progmem
sascha:mqtt-custom-topic-no-alloc
sascha:mqtt-discovery-topic-no-alloc
sascha:mqtt-friendly-name-const-ref
sascha:mqtt-on-log-no-heap
sascha:rtttl_progmem
sascha:bmp_progmem
sascha:sprinkler_progmem
sascha:uart_partity
sascha:http_request_reduce_alloc
sascha:esphome_build_server
sascha:no_new_to_string
sascha:beta
sascha:release
sascha:idf_avoids_some_alloc_strings
sascha:web_server_64_bit_time
sascha:compact_string_wifi
sascha:template_triggers
sascha:posix_tz_avoid_linking_scanf
sascha:_strtod_l
sascha:task_prio
sascha:peername_no_double_ram
sascha:posix_tz
sascha:json_web_server_stack
sascha:avoid_prefs_heap_churn
sascha:chunked_fix_again_comments
sascha:copilot/add-deprecated-component-label
sascha:rp2040_web_server
sascha:water_heater_entityBase
sascha:legacy_id
sascha:integration_compact_string_wifi
sascha:pipsolar_teleinfo
sascha:action_call_api
sascha:choose-mdns
sascha:water_heater_web_server
sascha:web_server_cap_portal_co_exist
sascha:max6956_gpio_cache_banks
sascha:text_fix_heap_churn
sascha:combine_logs
sascha:combine-logs-max31865
sascha:wh_template
sascha:combine-logs-atm90e32
sascha:no_send_object_id
sascha:wifi_scan_results_no_heap
sascha:wifi_scan_results_de_dupe
sascha:vbus
sascha:pioarduino_venv_clean_all
sascha:ha_state_no_alloc
sascha:ota_md5
sascha:wifi_less_alloc
sascha:integration_object
sascha:logger_rp2040
sascha:parition_callbacks
sascha:dependabot/pip/click-8.3.1
sascha:wifi_timeout
sascha:skip_wifi_rssi_publish_disconnected
sascha:memory_api
sascha:broken_target
sascha:scheduler_no64bit
sascha:filter-platformio-logging
sascha:fix-clean-all-windows
sascha:speed_count_255
sascha:reboot_timeout_cleanup
sascha:wifi_station_get_config_esp8266
sascha:copilot/fix-10045
sascha:scheduler_heap_churn
sascha:status_set_error_dangling_pointer
sascha:claude/esphome-action-responses-01EXP5td9nGeLpBoTe8eenre
sascha:copilot/fix-internal-gpio-attach-issues
sascha:claude/optimize-inkplate-display-01XRaLWTgEsLC7AY9zkMwoWX
sascha:copilot/fix-deprecated-pulse-counter-driver
sascha:claude/implement-ha-cards-lvgl-01P4a84LZVfkvp74VAeW6byq
sascha:lock_namespace
sascha:wifi_namespace
sascha:claude/bthome-packet-parser-013Zc5fvXF4EUg5mHfDhMegw
sascha:claude/add-axp2101-component-01J2hk1SL1x8F31eGwsNaQMF
sascha:claude/create-esphome-component-01NmXTzEgrF39phnCSe8viLm
sascha:claude/implement-feature-01XZW5wQYzHvETNshAWfKm5q
sascha:captive_portal_recovery_wrong_password
sascha:claude/implement-tcal6416-expander-0131pM94uVv4T87qFicTeKje
sascha:claude/add-bmi270-component-01FYE7M2ES2quDQrHgjZPKiA
sascha:claude/gpio-expander-interrupts-01HSsYCjopzRVuG4BJ3g3fY4
sascha:claude/implement-t-01EW4HWW8XiCCEq2m7GeJzTV
sascha:dashboard_import_url_rodata
sascha:ld2450_clear_values_when_no_target_detected
sascha:memory_api_cooldown
sascha:wifi_prio
sascha:controller_registry_callback_cleanup
sascha:api_shrink_after_initial_sync
sascha:memory_api_action_chaining_const_ref
sascha:cache_components_graph_ci_Test
sascha:climate_store_flash_thermostat
sascha:determine_jobs_comp_split_test
sascha:more_flexible_template
sascha:proto_vector_growth
sascha:ci_test_omp
sascha:memory_api_proto
sascha:wifi_ssid_password_flash
sascha:template_lambdas
sascha:memory_api_templates_lambdas
sascha:usb_memory_order_retry
sascha:qualify_millis_tests_tinygps
sascha:light-addr
sascha:select_options_fixed
sascha:select_fixed_vector
sascha:automation_initializer_list
sascha:fix_clang_tidy_split_comp_file_count_single
sascha:fix_clang_tidy_split_comp_file_count_sensor_test
sascha:fix-package-key-with-period
sascha:platformio_cache_tests
sascha:clang_tidy_small_prs_clang_tidy_test
sascha:cache_github
sascha:voice_get_config
sascha:jesserockz-2025-297
sascha:20251001-thermostat-humidity-support
sascha:mqtt_reduce_json_assign_flash
sascha:ci_impact_analysis_script
sascha:ci_impact_analysis_sensor_full
sascha:ci_impact_analysis_sensor_base
sascha:wifi_fixed_vector
sascha:idf_spi_esp32
sascha:web_server_idf_query_parser
sascha:cond_compile_responses
sascha:release-testing-mock
sascha:jesserockz-2025-423
sascha:base64_chars_flash_esp8266
sascha:web_server_8266_store_flash
sascha:ble_tx_power
sascha:jesserockz-2025-370
sascha:copilot/fix-9982
sascha:jesserockz-2025-352
sascha:revert-9439-lib_compat_mode_fix
sascha:jesserockz-2025-326
sascha:jesserockz-2025-322
sascha:copilot/fix-9603
sascha:jesserockz-2025-287
sascha:api_dispatch
sascha:modbus_heap
sascha:jesserockz-2025-250
sascha:loop_runtime_stats
sascha:jesserockz-2025-217
sascha:bluetooth_proxy_stats
sascha:add_api_stats
sascha:add-heap-tracing
sascha:jesserockz-2025-102
sascha:jesserockz-2025-064
sascha:ld2420
sascha:jesserockz-2024-578
sascha:jesserockz-2024-565
sascha:jesserockz-2023-304
sascha:jesserockz-2023-232
sascha:jesserockz-2023-284
sascha:jesserockz-2024-416
sascha:power-supply-logs
sascha:jesserockz-2024-399
sascha:jesserockz-2024-251
sascha:jesserockz-2024-248
sascha:jesserockz-2024-210
sascha:bluetooth-proxy-log-device-requests
sascha:jesserockz-2024-196
sascha:jesserockz-2024-151
sascha:jesserockz-2023-284-2
sascha:jesserockz-2023-415
sascha:jesserockz-2023-409
sascha:ina226-extra-logs
sascha:remove-unique-id
sascha:jesserockz-2023-284-v2.6
sascha:socket-client-mode
sascha:jesserockz-2022-199
sascha:jesserockz-2023-121
sascha:jesserockz-2023-110
sascha:jesserockz-2023-045
sascha:jesserockz-2022-398
sascha:jesserockz-2022-381
sascha:jesserockz-2022-321
sascha:jesserockz-2022-284
sascha:jesserockz-2022-172
sascha:jesserockz-2022-094
sascha:ble-server-controller
sascha:oral-b-brush
sascha:improv_serial/log-levels
sascha:2026.1.4
sascha:2026.1.3
sascha:2026.1.2
sascha:2026.1.1
sascha:2026.1.0
sascha:2026.1.0b4
sascha:2026.1.0b3
sascha:2025.12.7
sascha:2026.1.0b2
sascha:2026.1.0b1
sascha:2025.12.6
sascha:2025.12.5
sascha:2025.12.4
sascha:2025.12.3
sascha:2025.12.2
sascha:2025.12.1
sascha:2025.12.0
sascha:2025.12.0b5
sascha:2025.12.0b4
sascha:2025.12.0b3
sascha:2025.12.0b2
sascha:2025.12.0b1
sascha:2025.11.5
sascha:2025.11.4
sascha:2025.11.3
sascha:2025.11.2
sascha:2025.11.1
sascha:2025.11.0
sascha:2025.11.0b5
sascha:2025.11.0b4
sascha:2025.11.0b3
sascha:2025.11.0b2
sascha:2025.11.0b1
sascha:2025.10.5
sascha:2025.10.4
sascha:2025.10.3
sascha:2025.10.2
sascha:2025.10.1
sascha:2025.10.0
sascha:2025.10.0b4
sascha:2025.10.0b3
sascha:2025.10.0b2
sascha:2025.10.0b1
sascha:2025.9.3
sascha:2025.9.2
sascha:2025.9.1
sascha:2025.9.0
sascha:2025.9.0b4
sascha:2025.9.0b3
sascha:2025.9.0b2
sascha:2025.9.0b1
sascha:2025.8.4
sascha:2025.8.3
sascha:2025.8.2
sascha:2025.8.1
sascha:2025.8.0
sascha:2025.8.0b4
sascha:2025.8.0b3
sascha:2025.8.0b2
sascha:2025.8.0b1
sascha:2025.7.5
sascha:2025.7.4
sascha:2025.7.3
sascha:2025.7.2
sascha:2025.7.1
sascha:2025.7.0
sascha:2025.7.0b5
sascha:2025.7.0b4
sascha:2025.7.0b3
sascha:2025.7.0b2
sascha:2025.7.0b1
sascha:2025.6.3
sascha:2025.6.2
sascha:2025.6.1
sascha:2025.6.0
sascha:2025.6.0b3
sascha:2025.6.0b2
sascha:2025.6.0b1
sascha:2025.5.2
sascha:2025.5.1
sascha:2025.5.0
sascha:2025.5.0b6
sascha:2025.5.0b5
sascha:2025.5.0b4
sascha:2025.5.0b3
sascha:2025.5.0b2
sascha:2025.5.0b1
sascha:2025.4.2
sascha:2025.4.1
sascha:2025.4.0
sascha:2025.4.0b3
sascha:2025.4.0b2
sascha:2025.4.0b1
sascha:2025.3.3
sascha:2025.3.2
sascha:2025.3.1
sascha:2025.3.0
sascha:2025.3.0b5
sascha:2025.3.0b4
sascha:2025.3.0b3
sascha:2025.3.0b2
sascha:2025.3.0b1
sascha:2025.2.2
sascha:2025.2.1
sascha:2025.2.0
sascha:2025.2.0b6
sascha:2025.2.0b5
sascha:2025.2.0b4
sascha:2025.2.0b3
sascha:2025.2.0b2
sascha:2025.2.0b1
sascha:2024.12.4
sascha:2024.12.3
sascha:2024.12.2
sascha:2024.12.1
sascha:2024.12.0
sascha:2024.12.0b3
sascha:2024.12.0b2
sascha:2024.12.0b1
sascha:2024.11.3
sascha:2024.11.2
sascha:2024.11.1
sascha:2024.11.0
sascha:2024.11.0b4
sascha:2024.11.0b3
sascha:2024.11.0b2
sascha:2024.11.0b1
sascha:2024.10.3
sascha:2024.10.2
sascha:2024.10.1
sascha:2024.10.0
sascha:2024.10.0b2
sascha:2024.10.0b1
sascha:2024.9.2
sascha:2024.9.1
sascha:2024.9.0
sascha:2024.9.0b4
sascha:2024.9.0b3
sascha:2024.9.0b2
sascha:2024.9.0b1
sascha:2024.8.3
sascha:2024.8.2
sascha:2024.8.1
sascha:2024.8.0
sascha:2024.8.0b4
sascha:2024.8.0b3
sascha:2024.8.0b2
sascha:2024.8.0b1
sascha:2024.7.3
sascha:2024.7.2
sascha:2024.7.1
sascha:2024.7.0
sascha:2024.7.0b4
sascha:2024.7.0b3
sascha:2024.7.0b2
sascha:2024.7.0b1
sascha:2024.6.6
sascha:2024.6.5
sascha:2024.6.4
sascha:2024.6.3
sascha:2024.6.2
sascha:2024.6.1
sascha:2024.6.0
sascha:2024.6.0b5
sascha:2024.6.0b4
sascha:2024.6.0b3
sascha:2024.6.0b2
sascha:2024.6.0b1
sascha:2024.5.5
sascha:2024.5.4
sascha:2024.5.3
sascha:2024.5.2
sascha:2024.5.1
sascha:2024.5.0
sascha:2024.5.0b6
sascha:2024.5.0b5
sascha:2024.5.0b4
sascha:2024.5.0b3
sascha:2024.5.0b2
sascha:2024.5.0b1
sascha:2024.4.2
sascha:2024.4.1
sascha:2024.4.0
sascha:2024.4.0b3
sascha:2024.4.0b2
sascha:2024.4.0b1
sascha:2024.3.2
sascha:2024.3.1
sascha:2024.3.0
sascha:2024.3.0b5
sascha:2024.3.0b4
sascha:2024.3.0b3
sascha:2024.3.0b2
sascha:2024.3.0b1
sascha:2024.2.2
sascha:2024.2.1
sascha:2024.2.0
sascha:2024.2.0b3
sascha:2024.2.0b2
sascha:2024.2.0b1
sascha:2023.12.9
sascha:2023.12.8
sascha:2023.12.7
sascha:2023.12.6
sascha:2023.12.5
sascha:2023.12.4
sascha:2023.12.3
sascha:2023.12.2
sascha:2023.12.1
sascha:2023.12.0
sascha:2023.12.0b6
sascha:2023.12.0b5
sascha:2023.12.0b4
sascha:2023.12.0b3
sascha:2023.12.0b2
sascha:2023.12.0b1
sascha:2023.11.6
sascha:2023.11.5
sascha:2023.11.4
sascha:2023.11.3
sascha:2023.11.2
sascha:2023.11.1
sascha:2023.11.0
sascha:2023.11.0b7
sascha:2023.11.0b6
sascha:2023.11.0b5
sascha:2023.11.0b4
sascha:2023.11.0b3
sascha:2023.11.0b2
sascha:2023.11.0b1
sascha:2023.10.6
sascha:2023.10.5
sascha:2023.10.4
sascha:2023.10.3
sascha:2023.10.2
sascha:2023.10.1
sascha:2023.10.0
sascha:2023.10.0b4
sascha:2023.10.0b3
sascha:2023.10.0b2
sascha:2023.10.0b1
sascha:2023.9.3
sascha:2023.9.2
sascha:2023.9.1
sascha:2023.9.0
sascha:2023.9.0b4
sascha:2023.9.0b3
sascha:2023.9.0b2
sascha:2023.9.0b1
sascha:2023.8.3
sascha:2023.8.2
sascha:2023.8.1
sascha:2023.8.0
sascha:2023.8.0b4
sascha:2023.8.0b3
sascha:2023.8.0b2
sascha:2023.8.0b1
sascha:2023.7.1
sascha:2023.7.0
sascha:2023.7.0b3
sascha:2023.7.0b2
sascha:2023.7.0b1
sascha:2023.6.5
sascha:2023.6.4
sascha:2023.6.3
sascha:2023.6.2
sascha:2023.6.1
sascha:2023.6.0
sascha:2023.6.0b7
sascha:2023.6.0b6
sascha:2023.6.0b5
sascha:2023.6.0b4
sascha:2023.6.0b3
sascha:2023.6.0b2
sascha:2023.6.0b1
sascha:2023.5.5
sascha:2023.5.4
sascha:2023.5.3
sascha:2023.5.2
sascha:2023.5.1
sascha:2023.5.0
sascha:2023.5.0b5
sascha:2023.5.0b4
sascha:2023.5.0b3
sascha:2023.5.0b2
sascha:2023.5.0b1
sascha:2023.4.4
sascha:2023.4.3
sascha:2023.4.2
sascha:2023.4.1
sascha:2023.4.0
sascha:2023.4.0b4
sascha:2023.4.0b3
sascha:2023.4.0b2
sascha:2023.4.0b1
sascha:2023.3.2
sascha:2023.3.1
sascha:2023.3.0
sascha:2023.3.0b6
sascha:2023.3.0b5
sascha:2023.3.0b4
sascha:2023.3.0b3
sascha:2023.3.0b2
sascha:2023.3.0b1
sascha:2023.2.4
sascha:2023.2.3
sascha:2023.2.2
sascha:2023.2.1
sascha:2023.2.0
sascha:2023.2.0b5
sascha:2023.2.0b4
sascha:2023.2.0b3
sascha:2023.2.0b2
sascha:2023.2.0b1
sascha:2022.12.8
sascha:2022.12.7
sascha:2022.12.6
sascha:2022.12.5
sascha:2022.12.4
sascha:2022.12.3
sascha:2022.12.2
sascha:2022.12.1
sascha:2022.12.0
sascha:2022.12.0b6
sascha:2022.12.0b5
sascha:2022.12.0b4
sascha:2022.12.0b3
sascha:2022.12.0b2
sascha:2022.12.0b1
sascha:2022.11.5
sascha:2022.11.4
sascha:2022.11.3
sascha:2022.11.2
sascha:2022.11.1
sascha:2022.11.0
sascha:2022.11.0b6
sascha:2022.11.0b5
sascha:2022.11.0b4
sascha:2022.11.0b3
sascha:2022.11.0b2
sascha:2022.11.0b1
sascha:2022.10.2
sascha:2022.10.1
sascha:2022.10.0
sascha:2022.10.0b2
sascha:2022.10.0b1
sascha:2022.9.4
sascha:2022.9.3
sascha:2022.9.2
sascha:2022.9.1
sascha:2022.9.0
sascha:2022.9.0b5
sascha:2022.9.0b4
sascha:2022.9.0b3
sascha:2022.9.0b2
sascha:2022.9.0b1
sascha:2022.8.3
sascha:2022.8.2
sascha:2022.8.1
sascha:2022.8.0
sascha:2022.8.0b3
sascha:2022.8.0b2
sascha:2022.8.0b1
sascha:2022.6.3
sascha:2022.6.2
sascha:2022.6.1
sascha:2022.6.0
sascha:2022.6.0b4
sascha:2022.6.0b3
sascha:2022.6.0b2
sascha:2022.6.0b1
sascha:2022.5.1
sascha:2022.5.0
sascha:2022.5.0b4
sascha:2022.5.0b3
sascha:2022.5.0b2
sascha:2022.5.0b1
sascha:2022.4.0
sascha:2022.4.0b4
sascha:2022.4.0b3
sascha:2022.4.0b2
sascha:2022.4.0b1
sascha:2022.3.2
sascha:2022.3.1
sascha:2022.3.0
sascha:2022.3.0b2
sascha:2022.3.0b1
sascha:2022.2.6
sascha:2022.2.5
sascha:2022.2.4
sascha:2022.2.3
sascha:2022.2.2
sascha:2022.2.1
sascha:2022.2.0
sascha:2022.2.0b3
sascha:2022.2.0b2
sascha:2022.2.0b1
sascha:2022.1.4
sascha:2022.1.3
sascha:2022.1.2
sascha:2022.1.1
sascha:2022.1.0
sascha:2022.1.0b4
sascha:2022.1.0b3
sascha:2022.1.0b2
sascha:2022.1.0b1
sascha:2021.12.3
sascha:2021.12.2
sascha:2021.12.1
sascha:2021.12.0
sascha:2021.12.0b6
sascha:2021.12.0b5
sascha:2021.12.0b4
sascha:2021.12.0b3
sascha:2021.12.0b2
sascha:2021.12.0b1
sascha:2021.11.4
sascha:2021.11.3
sascha:2021.11.2
sascha:2021.11.1
sascha:2021.11.0
sascha:2021.11.0b9
sascha:2021.11.0b8
sascha:2021.11.0b7
sascha:2021.11.0b6
sascha:2021.11.0b5
sascha:2021.11.0b4
sascha:2021.11.0b3
sascha:2021.11.0b2
sascha:2021.11.0b1
sascha:2021.10.3
sascha:2021.10.2
sascha:2021.10.1
sascha:2021.10.0
sascha:2021.10.0b11
sascha:2021.10.0b10
sascha:2021.10.0b9
sascha:2021.10.0b8
sascha:2021.10.0b7
sascha:2021.10.0b6
sascha:2021.10.0b5
sascha:2021.10.0b4
sascha:2021.10.0b3
sascha:2021.10.0b2
sascha:2021.10.0b1
sascha:2021.9.3
sascha:2021.9.2
sascha:2021.9.1
sascha:2021.9.0
sascha:2021.9.0b5
sascha:2021.9.0b4
sascha:2021.9.0b3
sascha:2021.9.0b2
sascha:2021.9.0b1
sascha:2021.8.2
sascha:2021.8.1
sascha:2021.8.0
sascha:v1.21.0b3
sascha:v1.21.0b2
sascha:v1.21.0b1
sascha:v1.20.4
sascha:v1.20.3
sascha:v1.20.2
sascha:v1.20.1
sascha:v1.20.0
sascha:v1.20.0b6
sascha:v1.20.0b5
sascha:v1.20.0b4
sascha:v1.20.0b3
sascha:v1.20.0b2
sascha:v1.20.0b1
sascha:v1.19.4
sascha:v1.19.3
sascha:v1.19.2
sascha:v1.19.1
sascha:v1.19.0
sascha:v1.19.0b7
sascha:v1.19.0b6
sascha:v1.19.0b5
sascha:v1.19.0b4
sascha:v1.19.0b3
sascha:v1.19.0b2
sascha:v1.19.0b1
sascha:v1.18.0
sascha:v1.18.0b4
sascha:v1.18.0b3
sascha:v1.18.0b2
sascha:v1.18.0b1
sascha:v1.17.2
sascha:v1.17.1
sascha:v1.17.0
sascha:v1.17.0b1
sascha:v1.16.2
sascha:v1.16.1
sascha:v1.16.0
sascha:v1.16.0b8
sascha:v1.16.0b7
sascha:v1.16.0b6
sascha:v1.16.0b5
sascha:v1.16.0b4
sascha:v1.16.0b3
sascha:v1.16.0b2
sascha:v1.16.0b1
sascha:v1.15.3
sascha:v1.15.2
sascha:v1.15.1
sascha:v1.15.0
sascha:v1.15.0b4
sascha:v1.15.0b3
sascha:v1.15.0b2
sascha:v1.15.0b1
sascha:v1.14.5
sascha:v1.14.4
sascha:v1.14.3
sascha:v1.14.2
sascha:v1.14.1
sascha:v1.14.0
sascha:v1.14.0b5
sascha:v1.14.0b4
sascha:v1.14.0b3
sascha:v1.14.0b2
sascha:v1.14.0b1
sascha:v1.13.6
sascha:v1.13.5
sascha:v1.13.4
sascha:v1.13.3
sascha:v1.13.2
sascha:v1.13.1
sascha:v1.13.0
sascha:v1.13.0b7
sascha:v1.13.0b6
sascha:v1.13.0b5
sascha:v1.13.0b4
sascha:v1.13.0b3
sascha:v1.13.0b2
sascha:v1.13.0b1
sascha:v1.12.2
sascha:v1.12.1
sascha:v1.12.0
sascha:v1.12.0b4
sascha:v1.12.0b3
sascha:v1.12.0b2
sascha:v1.12.0b1
sascha:v1.11.2
sascha:v1.11.1
sascha:v1.11.0
sascha:v1.11.0b3
sascha:v1.11.0b2
sascha:v1.11.0b1
sascha:v1.10.1
sascha:v1.10.0
sascha:v1.10.0b2
sascha:v1.10.0b1
sascha:v1.9.3
sascha:v1.9.2
sascha:v1.9.1
sascha:v1.9.0
sascha:v1.9.0b6
sascha:v1.9.0b5
sascha:v1.9.0b4
sascha:v1.9.0b3
sascha:v1.9.0b2
sascha:v1.9.0b1
sascha:v1.8.2
sascha:v1.8.1
sascha:v1.8.0
sascha:v1.7.0
sascha:v1.6.2
sascha:v1.6.1
sascha:v1.6.0
sascha:v1.5.3
sascha:v1.5.2
sascha:v1.5.1
sascha:v1.5.0
sascha:v1.4.0
sascha:v1.3.0
sascha:v1.2.2
sascha:v1.2.1
sascha:v1.1
3 Commits
collapse_i
...
scheduler-
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
3c85ff4744 | try to avoid bloat | ||
|
|
0fa7050b1c | remove temp test | ||
|
|
fa1554cac0 |
[scheduler] Eliminate heap allocation in full_cleanup_removed_items_
Replace the temporary std::vector copy with in-place compaction using a read/write pointer pattern. This avoids a heap allocation+deallocation cycle during scheduler cleanup, reducing heap fragmentation on long-running ESP devices. The new approach compacts valid items forward in the existing vector, recycles removed items as they are encountered, then resizes the vector (no reallocation since size only shrinks). Same O(n) complexity, same behavior, zero allocations. |
1 changed files with 10 additions and 11 deletions
|
|
@@ -390,20 +390,19 @@ void Scheduler::full_cleanup_removed_items_() {
|
|||
// 4. No operations inside can block or take other locks, so no deadlock risk
|
||||
LockGuard guard{this->lock_};
|
||||
|
||||
std::vector<std::unique_ptr<SchedulerItem>> valid_items;
|
||||
|
||||
// Move all non-removed items to valid_items, recycle removed ones
|
||||
for (auto &item : this->items_) {
|
||||
if (!is_item_removed_(item.get())) {
|
||||
valid_items.push_back(std::move(item));
|
||||
// Compact in-place: move valid items forward, recycle removed ones
|
||||
size_t write = 0;
|
||||
for (size_t read = 0; read < this->items_.size(); ++read) {
|
||||
if (!is_item_removed_(this->items_[read].get())) {
|
||||
if (write != read) {
|
||||
this->items_[write] = std::move(this->items_[read]);
|
||||
}
|
||||
++write;
|
||||
} else {
|
||||
// Recycle removed items
|
||||
this->recycle_item_main_loop_(std::move(item));
|
||||
this->recycle_item_main_loop_(std::move(this->items_[read]));
|
||||
}
|
||||
}
|
||||
|
||||
// Replace items_ with the filtered list
|
||||
this->items_ = std::move(valid_items);
|
||||
this->items_.erase(this->items_.begin() + write, this->items_.end());
|
||||
// Rebuild the heap structure since items are no longer in heap order
|
||||
std::make_heap(this->items_.begin(), this->items_.end(), SchedulerItem::cmp);
|
||||
this->to_remove_ = 0;
|
||||
|
|
|
|||
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.