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 Koston and Copilot
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 Kent and Jonathan 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 Koston and Copilot
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