Skip to content

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 08:10
· 397 commits to main since this release
69073c2

[0.16.0] - 2026-07-24

Features

  • Relay group registration observability + internet readiness signal (Phase 5 blockers) (#212)(085fc17)
  • Expose groupRichReadiness over React Native (bindings) (b7adc08)
  • Expose group_rich_readiness (uniffi) (2269913)
  • Propagate rich capability through group adds and surface the gap (protocol) (d87c008)
  • Peer-attested rich capability store for group sealing (protocol) (8f75bd9)
  • Surface group rich-extras drops to the sending app (protocol) (f9e7e2c)
  • Seal rich extras into group messages and forwards (protocol) (7666641)
  • Watch parked DM recipients via the internet presence watchlist (protocol) (42689ac)
  • Add RetryQueue::enqueue_with_delay for explicit-interval scheduling (reliability) (ae67a71)
  • Media descriptor persistence + MediaResendRequired (protocol) (1744e95)
  • Surface retry scheduling and unreachable verdicts (protocol) (7eb38b4)
  • Rich params on RN sendMedia, FileReceived mirror (bindings) (5a85128)
  • Expose send_media_rich and MediaSendOptions (uniffi) (8ec896a)
  • Seal rich extras into chunk 0 of media transfers (protocol) (ebd4adc)
  • Route rich send params through both native modules (bindings) (d24eaf1)
  • Expose send_message_rich and the rich payload kill switch (uniffi) (9574bd5)
  • Seal rich message extras inside the MLS envelope (protocol) (f585069)
  • Add quoted-reply context and rich media metadata model(43879f2)

Bug Fixes

  • Cancel mesh-probe ACKs on reachability edges so parked DMs un-park (#214) (protocol) (e7ef7ba)
  • Declare 7 missing RN event types + Rust↔TS drift guard (#213) (bindings) (37f3212)
  • Omit hop-visible forward_info when the group body seals (protocol) (632fe8a)
  • Reject internal-prefix content on group sends (protocol) (e256197)
  • Make receive_message JSON actually round-trip into forward_message (uniffi) (8ba72fe)
  • Seal hint-only group sends instead of dropping the hint (protocol) (11cd72a)
  • Don't fall back to payload attribution on sealed group bodies (protocol) (81f243a)
  • Surface media metadata on receive_message, mirror group event in TS (uniffi) (ddc298c)
  • Seal forwarded media metadata inside the rich payload (protocol) (a2162f9)
  • Re-park exhausted probe ACK budgets instead of settling terminally (protocol) (9a5c9cb)
  • Park unreachable DMs instead of burning the ACK retry budget (protocol) (dd15deb)
  • Make every outbox drop terminal, not just expiry (protocol) (1ec5702)
  • Sync RN retry-config fallbacks with the Rust defaults (bindings) (15d6e7e)
  • Give the outbox a 7-day lifetime and terminal expiry (reliability) (48c6df6)
  • Gate reply ids so media replies don't fail the send (bindings) (0da2b2a)
  • Media resends must target the descriptor's recipient (protocol) (59b4ba8)
  • Keep flush merge ordered, don't resurrect aborted queues (protocol) (ada2a27)
  • Settle pending messages dropped at flush (protocol) (e13e961)
  • Keep the queued message id through flush and re-queue (protocol) (9faa45b)
  • Seal the content_type hint even without rich extras (protocol) (9ca6148)
  • Don't evict session peers' capability records in a flood (protocol) (161778f)
  • Persist peer capability sets across restarts (protocol) (ff562fe)
  • Seal content_type inside the rich payload body (protocol) (370eb1e)
  • Validate rich send input at the API boundary (protocol) (ee657c9)
  • Classify bad rich-send identifiers as InvalidArgument (uniffi) (84d2bf5)
  • Don't reset content_type when flushing pending sends (protocol) (68a9d62)
  • Enforce the cleartext boundaries the rich media model promised(8558fd6)

Performance

  • Skip unknown-member scan for plain group sends (protocol) (edd27a4)

Refactoring

  • Drop redundant prefix guard in restore_group_rich (protocol) (3b87951)
  • Dedupe the rich extras size cap into check_size (protocol) (3ec8776)
  • Fold send_message_via_transport into the rich send path (protocol) (ac38a25)

Documentation

  • Fix the three imprecisions the review turned up(399b6d9)
  • Catch up with the sealed-rich and parked-DM work(5171a5a)
  • Stop claiming events and drains that don't happen (protocol) (5bad372)
  • Correct descriptor drain claim, note repeat verdicts (protocol) (731a03f)
  • Mirror the new lifecycle events in TS, changelog (bindings) (d9bca83)
  • Document the sealed rich payload and its kill switch(1849e8a)

Testing

  • Pin kill-switch drop to empty unknown_members and zero backfill (protocol) (35ab910)
  • Pin the RN bridge retry fallbacks to the Rust defaults (reliability) (a0641fe)
  • Pin the flush-time drop half of the rich invariant (protocol) (3f8c514)

Miscellaneous

  • Release mesh-sdk v0.16.0 (#215) (bindings) (69073c2)
  • Clean lib/ before publishing (bindings) (747fd78)
  • Wire reply context and captions through the example app (bindings) (f0f6554)
  • Delete the orphaned types-uniffi.ts (bindings) (4529f98)

Build

  • Bump actions/setup-python from 5 to 7 (#185) (deps) (d177be6)
  • Bump actions/setup-node from 4 to 7 (#182) (deps) (7c2b072)
  • Bump android-actions/setup-android from 3 to 4 (#186) (deps) (381b69a)
  • Bump react-native in /bindings/react-native (#179) (deps-dev) (b881314)
  • Bump ed25519-dalek from 2.2.0 to 3.0.0 (#177) (deps) (8d86d77)
  • Bump tokio from 1.48.0 to 1.52.3 (#176) (deps) (a28ca16)
  • Bump androidx.security:security-crypto (#167) (deps) (e12ba21)
  • Update bleak requirement in /bindings/python (#172) (deps) (1d7e574)
  • Bump actions/checkout from 4 to 7 (#183) (deps) (f5384ac)
  • Bump org.json:json in /bindings/react-native/android (#208) (deps) (21988bc)