Commit Graph
13871 Commits
Author SHA1 Message Date
J. Nick Koston 21ca02dd3d [api] Peel first iteration of write_protobuf_messages for single-message fast path
The single-message case (via write_protobuf_packet) is the most common
path. Peeling the first loop iteration and outlining the multi-message
batch path avoids the ~300-byte StaticVector<iovec> stack allocation
on the hot path.

Plaintext write_protobuf_messages:
- Stack frame: 352 → 64 bytes
- Code size: 246 → 127 bytes

Noise write_protobuf_messages:
- Extracted encrypt_noise_message_ helper for reuse
- Same peeling pattern with outlined batch path
2026-03-21 09:38:35 -10:00
J. Nick Koston 44e1a86819 [benchmark] Use TCP loopback sockets and correct message type
Use real TCP sockets instead of AF_UNIX socketpair so TCP_NODELAY
succeeds during init() and the benchmark exercises the full write
path. Replace hardcoded message type 38 with SensorStateResponse::MESSAGE_TYPE.
2026-03-21 09:02:17 -10:00
J. Nick Koston 135c599561 [benchmark] Pre-init APIBuffer to 1460 bytes in plaintext frame benchmarks
Avoid benchmarking heap allocation by pre-reserving the buffer
to typical TCP MSS size and reusing it across iterations, matching
real-world usage where the buffer persists across writes.
2026-03-21 08:48:15 -10:00
J. Nick Koston b9679f6caf Merge branch 'dev' into benchmark/plaintext-frame-v2 2026-03-21 08:09:51 -10:00
dependabot[bot] 8dd69207ea Bump aioesphomeapi from 44.6.2 to 44.7.0 (#15052)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-21 10:24:56 +00:00
J. Nick Koston d203a46ef8 [api] Enable HAVE_WEAK_SYMBOLS and HAVE_INLINE_ASM for libsodium (#15038) 2026-03-21 04:17:37 +00:00
J. Nick Koston 1920d8a887 [benchmark] Add noise encryption benchmarks (#15037) 2026-03-20 17:35:17 -10:00
J. Nick Koston 4bf84b6c61 [benchmark] Enable codegen for api dependency chain (socket, network, mdns) 2026-03-20 16:21:31 -10:00
J. Nick Koston cf7b63da60 [benchmark] Add both USE_API_PLAINTEXT and USE_API_NOISE defines 2026-03-20 16:07:30 -10:00
J. Nick Koston bc2654379b [benchmark] Fix api init: use build flag instead of enable_codegen 2026-03-20 16:05:25 -10:00
J. Nick Koston 328ef819e6 [benchmark] Fix plaintext frame benchmark build: enable api codegen 2026-03-20 16:02:44 -10:00
J. Nick Koston 9bd5d91e61 [benchmark] Add plaintext API frame write benchmarks 2026-03-20 15:53:58 -10:00
J. Nick Koston 95dea59382 [core] Use SplitMix32 PRNG for random_uint32() (#14984) 2026-03-20 15:25:54 -10:00
J. Nick Koston f3cddcee21 [core] Store parent pointers as members to enable inline Callback storage (#14923) 2026-03-20 15:25:40 -10:00
J. Nick KostonandCopilot 21e384cafd [esp32] Disable PicolibC Newlib compatibility shim on IDF 6.0+ (#15008)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-20 15:10:18 -10:00
J. Nick Koston 32db055b98 [number] Clean up NumberCall::perform() increment/decrement logic (#15000) 2026-03-20 15:09:28 -10:00
J. Nick Koston 2c87260046 [core] Optimize Component::is_ready() with bitmask check (#15005) 2026-03-20 15:09:13 -10:00
J. Nick Koston 51ccad8461 [preferences] Shorten TAG strings across all platforms (#15004) 2026-03-20 15:09:01 -10:00
J. Nick Koston 7f500c4b6e [modbus] Fix size_t format warning in clear_rx_buffer_ (#15002) 2026-03-20 15:08:46 -10:00
J. Nick Koston 564d155cb6 [wifi] Use LOG_STR_LITERAL for scan complete log on ESP8266 (#15001) 2026-03-20 15:08:33 -10:00
J. Nick Koston edf5542559 [analyze-memory] Attribute extern C symbols to components via source file mapping (#15006) 2026-03-20 15:05:17 -10:00
J. Nick Koston 51335e8830 [ledc] Fix deprecated intr_type warning on ESP-IDF 6.0+ (#15009) 2026-03-20 15:01:30 -10:00
J. Nick Koston 391ffe34f8 [rp2040] Fix get_mac_address_raw to use ethernet MAC when WiFi unavailable (#15033) 2026-03-20 15:01:11 -10:00
J. Nick Koston 12ead0408a [gpio] Use constexpr uint32_t timer ID for interlock timeout (#15010) 2026-03-20 15:00:56 -10:00
Daniel KentandJonathan Swoboda 2d39cc2540 [spa06_i2c] Add SPA06-003 Temperature and Pressure Sensor - I2C support (Part 2 of 3) (#14522)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-21 00:38:04 +00:00
J. Nick Koston a9a8f4cb3b [time] Fix timezone_offset() and recalc_timestamp_local() always returning UTC (#14996) 2026-03-20 13:58:14 -10:00
J. Nick Koston 8fa2e75afa [core] Add copy() method to StringRef for std::string compatibility (#15028) 2026-03-20 13:58:02 -10:00
J. Nick KostonandCopilot 0b01f9fc42 [web_server] Increase httpd task stack size to prevent stack overflow (#14997)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-20 13:57:51 -10:00
Jonathan Swoboda ed8c062d9f [esp32_touch] Fix initial state never published when sensor untouched (#15032) 2026-03-20 19:53:02 -04:00
J. Nick Koston 5e516e78e4 [wifi] Fix ESP8266 power_save_mode mapping (LIGHT/HIGH were swapped) (#15029) 2026-03-20 12:13:49 -10:00
J. Nick Koston 896b6ec8c9 [api] Increase noise handshake timeout to 60s for slow WiFi environments (#15022) 2026-03-20 17:06:23 -05:00
dependabot[bot] 9e7cdaf475 Bump aioesphomeapi from 44.6.1 to 44.6.2 (#15027)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 11:10:40 -10:00
dependabot[bot] a3fd1d5d00 Bump github/codeql-action from 4.33.0 to 4.34.1 (#15023)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 10:41:45 -10:00
dependabot[bot] 7257bed1e9 Bump CodSpeedHQ/action from 4.11.1 to 4.12.1 (#15024)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 10:41:20 -10:00
Javier Peletier 5a9977cf5c [lvgl] Fix arc indicator widget not registered in widget_map (#14986) 2026-03-21 07:35:41 +11:00
Keith Roehrenbeck 12b3aec567 [ld2450] Fix zone target counts including untracked ghost targets (#15026) 2026-03-20 10:11:57 -10:00
J. Nick Koston d59c006ff9 [uart] Fix UART0 default pin IOMUX loopback on ESP32 (#14978) 2026-03-19 20:56:51 -10:00
J. Nick Koston 02ada93ea5 [wifi] Reject WiFi config on RP2040/RP2350 boards without CYW43 chip (#14990) 2026-03-19 18:40:33 -10:00
6e87f8eb4e [template] alarm_control_panel collapse SensorDataStore and bypassed_sensor_indicies into SensorInfo (#14852)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-20 02:06:58 +00:00
Clyde Stubbs 7df550f2a9 Ensure lvgl libs available when editing for host (#14987) 2026-03-20 01:52:52 +00:00
Clyde Stubbs b02f0e3c5f [sdl] Fix get_width()/height() when rotation used (#14950) 2026-03-20 12:39:10 +11:00
J. Nick Koston 151f71e033 [ci] Add libretiny and zephyr to memory impact platform filter (#14985) 2026-03-19 14:12:15 -10:00
J. Nick Koston 7ac001e994 [mhz19] Fix unused function warning for detection_range_to_log_string (#14981) 2026-03-19 14:12:03 -10:00
J. Nick Koston de177d2445 [logger] Fix ESP8266 crash with VERY_VERBOSE log level (#14980) 2026-03-19 14:11:49 -10:00
J. Nick Koston a9cb7143dc [core] Inline calculate_looping_components_ into header (#14944) 2026-03-19 14:11:17 -10:00
J. Nick Koston 902258b56e [preferences] Compile out loop() when flash_write_interval is non-zero (#14943) 2026-03-19 14:11:06 -10:00
dependabot[bot] c2a96ea293 Bump ruff from 0.15.6 to 0.15.7 (#14977)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-19 10:54:53 -10:00
J. Nick Koston 37a3c3ab3a [core] Replace std::bind with placeholders to lambdas (#14962) 2026-03-19 08:50:38 -10:00
J. Nick Koston a8ed781f3e [time] Fix lookup of top-level IANA timezone keys like UTC and GMT (#14952) 2026-03-19 08:44:35 -10:00
J. Nick Koston 63f0d054b7 [core] Replace std::bind with lambda in DelayAction (#14968) 2026-03-19 08:44:16 -10:00