Skip to content

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 03:46
· 188 commits to main since this release
4387b75

[0.20.0] - 2026-08-07

Features

  • Opt-in Headless JS wake so Android can restore the mesh after a process kill (#310) (bindings) (6d74aaf)
  • Publish Nostr key packages for cold first contact (#289) (transport) (137715b)
  • Add support for poll content type (core) (a31ab23)

Bug Fixes

  • Ship the iOS binary as an XCFramework and enable iOS autolinking (#312) (bindings) (1805c6f)
  • Give each peer its own init key on the key-package push path (#309) (mls) (0cf14fb)
  • Retry BLE advertising after a retriable terminal failure (#305) (bindings) (9caa8f5)
  • Hold one-shot events until the app registers a listener (#303) (bindings) (4d1c010)
  • Gate iOS emits on a live React instance and report hand-over (#302) (bindings) (2b6dec2)
  • Restate internet_session_superseded from the latch on iOS (#301) (bindings) (9e77edd)
  • Redeliver one-shot bridge events held while JS had no listener (#295) (bindings) (18f558d)
  • Stop MeshForegroundService on a sticky restart with no mesh host (#294) (bindings) (a568f56)
  • Null-guard BluetoothDevice.connectGatt return in connectToDevice (#280) (bindings) (5f886d4)
  • Recover BLE scanning after the adapter comes back on (#293) (bindings) (2788727)
  • Catch IllegalStateException from BluetoothLeScanner scan sites (#279) (bindings) (c4b497e)
  • Run mesh teardown to completion and clear the stop slot by identity (#290) (bindings) (3ca1050)
  • Promote MeshForegroundService to foreground in onCreate + add Stop action (#278) (bindings) (e6ef957)
  • Seal Nostr frames into NIP-59 gift wraps (#288) (transport) (b272352)
  • Bound Nostr replay with a persisted since watermark (#287) (transport) (c39f7eb)
  • Bound Nostr replay and enforce the event size cap (#286) (transport) (cd2584a)
  • Tolerate unknown content types in JSON decode (#285) (core) (9284c5a)

Refactoring

  • Delete the caller-less native getMetrics surface (#304) (bindings) (7e9fd25)
  • Drop onServiceRestarted and record why a headless rebuild is refused (#297) (bindings) (4ed24f3)

Documentation

  • State the real threat model for the desync re-key on every public surface (#311)(24cf227)
  • Name the NSA recipient in the export notice(a9d01c0)

Miscellaneous