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

Alan-Jowett / sonde / 24681856345
82%

Build:
DEFAULT BRANCH: main
Ran 20 Apr 2026 05:56PM 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 05:53PM UTC coverage: 80.807%. Remained the same
24681856345

push

github

web-flow
fix(pair): ensure LESC Numeric Comparison on Android by calling createBond() before connect latch (#765)

* 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 ... (continued)

24453 of 30261 relevant lines covered (80.81%)

203.59 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24681856345.1 20 Apr 2026 05:56PM UTC 113
80.81
GitHub Action Run
Source Files on build 24681856345
  • Tree
  • List 113
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24681856345
  • f2f6774a on github
  • Prev Build on main (#24656046305)
  • Next Build on main (#24681865963)
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