• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / sonde / 24690448068
82%

Build:
DEFAULT BRANCH: main
Ran 20 Apr 2026 09:10PM UTC
Jobs 1
Files 113
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Apr 2026 09:07PM UTC coverage: 80.809% (+0.002%) from 80.807%
24690448068

push

github

web-flow
fix(pair): skip enforce_lesc for node connections (ND-0904) (#766)

* fix(pair): call createBond() before GATT connect latch to ensure LESC Numeric Comparison on Android

The modem calls `ble_gap_security_initiate()` immediately in its
`on_connect` callback, sending a BLE Security Request to Android.
The previous code called `createBond()` only after waiting for the
GATT connection to complete. By that point the Security Request had
already arrived, and Android — not yet in bonding mode — handled the
incoming SMP as a background pairing, advertising NoInputNoOutput IO
capabilities. This forced Just Works (PAIRING_VARIANT_CONSENT) instead
of LESC Numeric Comparison, causing `enforce_lesc()` to reject the
connection (PT-0904).

Fix: move `createBond()` to immediately after `connectGatt()` returns,
before waiting for the connect latch. `connectGatt()` is asynchronous —
the LE link is not yet established when it returns — so `createBond()`
races ahead of the modem's Security Request. Android enters bonding mode
with KeyboardDisplay IO capabilities before the Security Request arrives,
ensuring LESC Numeric Comparison is negotiated.

Windows was unaffected because `BtleplugTransport::pairing_method()`
returns `None`, which `enforce_lesc()` treats as OS-enforced LESC,
bypassing the check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(pair): preserve lastError when setting up bonding to avoid masking GATT connection errors

When createBond() is called in step 2 (now before waiting for the GATT
connection latch), the onConnectionStateChange() callback may race ahead
and set lastError with a GATT status code. Resetting lastError = null in
the bonding setup block would lose this error, causing step 3 to report
the generic 'connection failed' instead of the actual GATT status.

Fix: do not reset lastError in the bonding setup block. The error will
only be cleared later at step 5, after the GATT connection has completed
successfully.... (continued)

5 of 5 new or added lines in 2 files covered. (100.0%)

24456 of 30264 relevant lines covered (80.81%)

203.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24690448068.1 20 Apr 2026 09:10PM UTC 113
80.81
GitHub Action Run
Source Files on build 24690448068
  • Tree
  • List 113
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24690448068
  • a06a19d2 on github
  • Prev Build on main (#24681856345)
  • Next Build on main (#24690456362)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc