J. Nick Koston
084ff9d6e3
Restore the discovery/MTU overlap and latch streamer abort causes
...
The split serialized service discovery behind the MTU exchange: the
backend reported connected only at CFG_MTU_EVT and the wrapper started
discovery on that report, costing one ATT round trip per uncached
connection. The backend now pre-starts the search at OPEN_EVT (it knows
the connection type) and completes the consumer's discover_services()
from it: SEARCH_CMPL latches silently until requested, the flush after
the connected report delivers in the same event drain, and a refused
pre-start falls back to the serialized path. Net RAM cost is zero (the
flags pack into one bitfield byte plus a status byte, replacing the two
existing bools).
Also from review: SEARCH_CMPL no longer clobbers a teardown in progress
with ESTABLISHED, the five streamer abort sites latch pending_error_ so
HA sees the real Bluedroid status instead of a generic HCI reason, and a
completed re-discovery frees a materialized service table before the
counts its offsets derive from move.
2026-08-09 09:52:58 -05:00
J. Nick Koston
4a9e5f5da9
Require the proxy in the wrapper's compile gate
...
The hub wrapper serves the proxy's API surface, but its gate keyed on the
backend define alone while the backend guarded its own proxy pieces on
USE_BLUETOOTH_PROXY. Narrow BLUETOOTH_CONNECTION_HAS_GATT to require both
so a future backend-only consumer build agrees with the backend's guards.
No change to any build this PR can produce (only the proxy emits
USE_BLE_GATT_CLIENT here).
2026-08-09 09:44:23 -05:00
J. Nick Koston
26c000c417
Collapse shim-era indirection left by the merge of the two halves
...
- Fold the one-line event-handler forwarders, the state accessor renames,
and the report helper into direct calls; drop the dead forward
declaration and the tracker_client() accessor (the backend is the
tracker client)
- Hoist DEFAULT_ATT_MTU next to the other shared GATT constants and use
it in all three engines
- Emit BLUETOOTH_PROXY_MAX_CONNECTIONS once, in _connections_to_code
- Drop the unused esp_gatt_common_api.h include and DOMAIN constant
- Comment accuracy: stale shim/esp32-parity wording, registry roles,
request_gatt_client() caller
2026-08-09 09:36:17 -05:00
J. Nick Koston
22af86a65b
Tighten new comments to repo style
2026-08-09 09:19:32 -05:00
J. Nick Koston
6957e2ef15
Type gattc_if_ at its real width instead of shrinking the timer
2026-08-09 09:17:38 -05:00
J. Nick Koston
f7b1e9ae65
Shrink the disconnect timestamp to a tick so the backend packs to 48 bytes
2026-08-09 09:04:31 -05:00
J. Nick Koston
54c50c07c5
Merge remote-tracking branch 'origin/dev' into esp32-gatt-backend
...
# Conflicts:
# esphome/components/bluetooth_proxy/bluetooth_proxy.cpp
# esphome/components/bluetooth_proxy/bluetooth_proxy.h
# esphome/core/defines.h
2026-08-09 08:59:12 -05:00
J. Nick Koston
e9f428983e
[ble_device_base] Bind BLEHub to the build's tracker at compile time ( #18181 )
2026-08-09 08:57:31 -05:00
J. Nick Koston
93124f1f1f
Align two comments with the code they describe
2026-08-09 08:55:49 -05:00
J. Nick Koston
12fb1b0697
Name the MTU default and bound the descriptor walk sensibly
2026-08-09 04:20:39 -05:00
J. Nick Koston
be818a5bf2
Apply review polish: bounded walk, real statuses, guarded settles
2026-08-09 03:44:10 -05:00
J. Nick Koston
612033062f
Apply combined review: wire MTU parity, abort teardown parity, closure ownership
2026-08-09 03:08:47 -05:00
J. Nick Koston
833a835e0f
Combine the flip into the backend PR and put the table define in the esp32 arm
2026-08-09 02:27:53 -05:00
J. Nick Koston
f2261d6632
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-09 02:16:17 -05:00
J. Nick Koston
d224a82e38
Fold the tracker shim into the backend and pass the MTU through
2026-08-09 02:16:14 -05:00
J. Nick Koston
ceabfeb6f4
Include the header that declares the bond removal
2026-08-09 01:52:39 -05:00
J. Nick Koston
5e11a886f1
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-09 01:51:59 -05:00
J. Nick Koston
e771b2522a
Terminate a released stream without services-done and keep the net armed
2026-08-09 01:51:42 -05:00
J. Nick Koston
06a52f682f
Name the platform explicitly in schema builders for the dumper
2026-08-09 01:01:21 -05:00
J. Nick Koston
409ff027cc
Collapse the identical ignore branches
2026-08-09 00:59:16 -05:00
J. Nick Koston
3c7e5000a5
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-09 00:44:41 -05:00
J. Nick Koston
7af211ab54
Deliver completions through a GattClientListener interface
2026-08-09 00:44:35 -05:00
J. Nick Koston
cc81069d02
Keep the esp32 maintenance functions outside the gated surface
2026-08-09 00:28:54 -05:00
J. Nick Koston
ba567cecc3
Shared backend codegen registry and flip cleanups
2026-08-09 00:23:34 -05:00
J. Nick Koston
ee7fb83334
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
...
# Conflicts:
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.cpp
# esphome/components/bluetooth_connection/bluetooth_connection_bluedroid.h
2026-08-09 00:20:09 -05:00
J. Nick Koston
9db31db24d
Multi-consumer sink, table materializer, and review fixes for the backend
2026-08-09 00:19:39 -05:00
J. Nick Koston
ceca66c01a
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 23:53:50 -05:00
J. Nick Koston
dc97c5a161
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 23:53:48 -05:00
J. Nick Koston
97bbcf55d9
Describe the ladder arm's real safety net in the test docstring
2026-08-08 23:53:45 -05:00
J. Nick Koston
d135ac97e5
Report teardown once at CLOSE_EVT and refuse connects on a busy slot
2026-08-08 23:27:04 -05:00
J. Nick Koston
296dd19361
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 23:21:58 -05:00
J. Nick Koston
138304cfbe
Fail discovery on count errors and free idle slots at once
2026-08-08 23:21:57 -05:00
J. Nick Koston
9fef1862be
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 23:09:18 -05:00
J. Nick Koston
80758f11aa
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 23:09:16 -05:00
J. Nick Koston
9d8362738f
Use the canonical board id and the sibling test conventions
2026-08-08 23:09:13 -05:00
J. Nick Koston
b2c22b5802
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 22:45:31 -05:00
J. Nick Koston
f62009ecc9
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 22:45:29 -05:00
J. Nick Koston
c09e3e0d45
Check the alias defines through real codegen
2026-08-08 22:42:56 -05:00
J. Nick Koston
cdd7bef74a
Check the alias defines through real codegen
2026-08-08 22:40:36 -05:00
J. Nick Koston
0e1321a813
Merge branch 'esp32-gatt-backend' into esp32-proxy-flip
2026-08-08 22:38:31 -05:00
J. Nick Koston
022b612366
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 22:38:29 -05:00
J. Nick Koston
2dc9fbec5e
Pin the tracker alias three-place invariant
2026-08-08 22:38:26 -05:00
J. Nick Koston
9dafff6a61
Apply the simplify findings and fix the passive esp32 build
2026-08-08 22:32:36 -05:00
J. Nick Koston
3c7a1062c8
Flip the esp32 proxy onto the hub wrapper
2026-08-08 22:21:38 -05:00
J. Nick Koston
8164cdd018
Stream in place through a backend cut-through
2026-08-08 22:08:16 -05:00
J. Nick Koston
4ea491d46f
Bound the streaming peak to one batch window
2026-08-08 21:59:08 -05:00
J. Nick Koston
7fdb6cd2d5
Merge branch 'esp32-hub-devirtualize' into esp32-gatt-backend
2026-08-08 21:41:25 -05:00
J. Nick Koston
2d50e07e90
Fold the push-hub surface into the concept
2026-08-08 21:41:23 -05:00
J. Nick Koston
78a451a1c0
Apply the simplify findings
2026-08-08 21:39:48 -05:00
J. Nick Koston
2483621500
Bluedroid backend for the GATT client contract
2026-08-08 21:31:09 -05:00