diff --git a/apps/agrimesh/App.tsx b/apps/agrimesh/App.tsx
index 32d7dfe..c5b5b0e 100644
--- a/apps/agrimesh/App.tsx
+++ b/apps/agrimesh/App.tsx
@@ -49,7 +49,7 @@ function HomeLobby({ onStart }: { onStart: (setup: Setup) => void }) {
AgriMesh
{DEMO_FARM.name} — field readings hop across Bluetooth mesh to the farm office edge,
- then sync once to a mock farm system (SDK 0.27).
+ then sync once to a mock farm system (SDK 0.28).
diff --git a/apps/agrimesh/ios/Podfile.lock b/apps/agrimesh/ios/Podfile.lock
index 4576a77..6477c07 100644
--- a/apps/agrimesh/ios/Podfile.lock
+++ b/apps/agrimesh/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2303,7 +2303,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/agrimesh/package.json b/apps/agrimesh/package.json
index 5a6eb66..501dba8 100644
--- a/apps/agrimesh/package.json
+++ b/apps/agrimesh/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"@react-native-async-storage/async-storage": "^2.2.0",
"lucide-react-native": "^1.48.0",
"nativewind": "^4.2.7",
diff --git a/apps/cowrite/README.md b/apps/cowrite/README.md
index be2e2bc..c44e805 100644
--- a/apps/cowrite/README.md
+++ b/apps/cowrite/README.md
@@ -1,6 +1,6 @@
# Cowrite
-A shared document for the people in the room. Several nearby phones edit one plain-text document together, everyone sees everyone's cursor, and it all runs over Bluetooth with no internet, accounts or server. React Native app for iOS and Android, built on `@offline-protocol/mesh-sdk` 0.27 through the shared `@offline-app-examples/mesh` and `@offline-app-examples/ui` packages.
+A shared document for the people in the room. Several nearby phones edit one plain-text document together, everyone sees everyone's cursor, and it all runs over Bluetooth with no internet, accounts or server. React Native app for iOS and Android, built on `@offline-protocol/mesh-sdk` 0.28 through the shared `@offline-app-examples/mesh` and `@offline-app-examples/ui` packages.
## Run
@@ -46,7 +46,7 @@ The sibling apps [Stock Sync](../stocksync) and [Order Up](../orderup) sync by b
- **Offline merges.** Someone who walks away and keeps typing comes back with a pile of edits made against an old version. Replaying them as messages does not produce what either person meant.
- **Late joiners.** A newcomer needs the whole current document, not the stream of messages they missed, so a host has to build and send snapshots and reconcile them with edits in flight.
-Solving all of that by hand is building a CRDT. The SDK already ships one, the replicated document layer (`DataStore`, see the SDK's [`docs/data.md`](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/v0.27.0/docs/data.md)), so Cowrite uses it and only turns keystrokes into edits.
+Solving all of that by hand is building a CRDT. The SDK already ships one, the replicated document layer (`DataStore`, see the SDK's [`docs/data.md`](https://github.com/Offline-Protocol/offline-protocol-sdk/blob/v0.28.0/docs/data.md)), so Cowrite uses it and only turns keystrokes into edits.
## How Cowrite uses DataStore
diff --git a/apps/cowrite/ios/Podfile.lock b/apps/cowrite/ios/Podfile.lock
index b99ff53..78042c4 100644
--- a/apps/cowrite/ios/Podfile.lock
+++ b/apps/cowrite/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2278,7 +2278,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 25cc110921930e4293b718f2d5d325536b0ed52b
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/cowrite/package.json b/apps/cowrite/package.json
index c165aed..efe653d 100644
--- a/apps/cowrite/package.json
+++ b/apps/cowrite/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"lucide-react-native": "^1.48.0",
"nativewind": "^4.2.7",
"react": "19.2.3",
diff --git a/apps/eventfloor/App.tsx b/apps/eventfloor/App.tsx
index 0b62082..a95a4ac 100644
--- a/apps/eventfloor/App.tsx
+++ b/apps/eventfloor/App.tsx
@@ -90,7 +90,7 @@ function HomeLobby({
Event Floor
{DEMO_EVENT.name} — offline-capable staff dispatch and gate admission over Bluetooth mesh
- (SDK 0.27).
+ (SDK 0.28).
diff --git a/apps/eventfloor/README.md b/apps/eventfloor/README.md
index b5bf1f3..feada8c 100644
--- a/apps/eventfloor/README.md
+++ b/apps/eventfloor/README.md
@@ -1,6 +1,6 @@
# Event Floor
-Live-events demo app with **two flows** in one binary: **staff dispatch** when cell is saturated, and **gate admission sync** when scanners cannot reach the cloud. Everything runs over **Bluetooth mesh** (Mesh SDK 0.27) — no Wi‑Fi Direct payload, no accounts.
+Live-events demo app with **two flows** in one binary: **staff dispatch** when cell is saturated, and **gate admission sync** when scanners cannot reach the cloud. Everything runs over **Bluetooth mesh** (Mesh SDK 0.28) — no Wi‑Fi Direct payload, no accounts.
Built on `@offline-app-examples/mesh` (rooms, MLS group mode, mesh relay) and `@offline-app-examples/ui`.
diff --git a/apps/eventfloor/ios/Podfile.lock b/apps/eventfloor/ios/Podfile.lock
index 92986ba..c3db64a 100644
--- a/apps/eventfloor/ios/Podfile.lock
+++ b/apps/eventfloor/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2303,7 +2303,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/eventfloor/package.json b/apps/eventfloor/package.json
index a4a8c15..ce5b9d9 100644
--- a/apps/eventfloor/package.json
+++ b/apps/eventfloor/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"@react-native-async-storage/async-storage": "^2.2.0",
"lucide-react-native": "^1.48.0",
"nativewind": "^4.2.7",
diff --git a/apps/orderup/README.md b/apps/orderup/README.md
index 5b532c7..a953d84 100644
--- a/apps/orderup/README.md
+++ b/apps/orderup/README.md
@@ -7,7 +7,7 @@ status change live.
It shows how to build a **host-authoritative** app on
[`@offline-protocol/mesh-sdk`](https://www.npmjs.com/package/@offline-protocol/mesh-sdk)
-0.27 with plain JSON messages and a small pure reducer, with no CRDTs and no server. The
+0.28 with plain JSON messages and a small pure reducer, with no CRDTs and no server. The
Bluetooth side (discovery, joining, encryption) lives in `packages/mesh`
(`useNearbyRoom`). UI components come from `packages/ui`.
diff --git a/apps/orderup/ios/Podfile.lock b/apps/orderup/ios/Podfile.lock
index 5fc2067..be8e865 100644
--- a/apps/orderup/ios/Podfile.lock
+++ b/apps/orderup/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2278,7 +2278,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/orderup/package.json b/apps/orderup/package.json
index 89d328f..1681761 100644
--- a/apps/orderup/package.json
+++ b/apps/orderup/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"lucide-react-native": "^1.48.0",
"nativewind": "^4.2.7",
"react": "19.2.3",
diff --git a/apps/outagenet/README.md b/apps/outagenet/README.md
index 03172a9..750e800 100644
--- a/apps/outagenet/README.md
+++ b/apps/outagenet/README.md
@@ -2,7 +2,7 @@
Field coordination when towers are down. One phone runs the **command post**; others join as **field units** over **Bluetooth mesh** (no internet, no accounts). Post status updates, **hand off responsibility** with explicit accept, and **sync to a mock HQ** with visible duplicate suppression.
-Built on `@offline-app-examples/mesh` and `@offline-app-examples/ui`, Mesh SDK 0.27.
+Built on `@offline-app-examples/mesh` and `@offline-app-examples/ui`, Mesh SDK 0.28.
## What it demonstrates
diff --git a/apps/outagenet/ios/Podfile.lock b/apps/outagenet/ios/Podfile.lock
index fe24849..5a2dd3d 100644
--- a/apps/outagenet/ios/Podfile.lock
+++ b/apps/outagenet/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2303,7 +2303,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/outagenet/package.json b/apps/outagenet/package.json
index 080236e..306ab1f 100644
--- a/apps/outagenet/package.json
+++ b/apps/outagenet/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"@react-native-async-storage/async-storage": "^2.2.0",
"lucide-react-native": "^1.48.0",
"nativewind": "^4.2.7",
diff --git a/apps/stocksync/README.md b/apps/stocksync/README.md
index 18e8e4a..4353f45 100644
--- a/apps/stocksync/README.md
+++ b/apps/stocksync/README.md
@@ -6,7 +6,7 @@ One phone opens a store and the others nearby join it over Bluetooth. Everyone s
same small supermarket inventory (milk, bread, apples, eggs, bananas, cheese, cereal,
tomatoes), and tapping − or + on any phone updates the count on every phone. No internet,
accounts or servers. Built on `@offline-app-examples/mesh` (a thin room layer over
-`@offline-protocol/mesh-sdk` 0.27, see `packages/mesh/README.md`) and
+`@offline-protocol/mesh-sdk` 0.28, see `packages/mesh/README.md`) and
`@offline-app-examples/ui`.
## What it demonstrates
diff --git a/apps/stocksync/ios/Podfile.lock b/apps/stocksync/ios/Podfile.lock
index b022d9f..b601b70 100644
--- a/apps/stocksync/ios/Podfile.lock
+++ b/apps/stocksync/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2278,7 +2278,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 25cc110921930e4293b718f2d5d325536b0ed52b
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/stocksync/package.json b/apps/stocksync/package.json
index 51eda99..3efb4d6 100644
--- a/apps/stocksync/package.json
+++ b/apps/stocksync/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"lucide-react-native": "^1.48.0",
"nativewind": "^4.2.7",
"react": "19.2.3",
diff --git a/apps/tictactogether/README.md b/apps/tictactogether/README.md
index cdf65bf..48f5d17 100644
--- a/apps/tictactogether/README.md
+++ b/apps/tictactogether/README.md
@@ -1,7 +1,7 @@
# Tic Tac Together ✳
A small, colorful rivalry between two nearby phones. React Native app for iOS and Android, built on `@offline-app-examples/mesh` (a thin room layer over
-`@offline-protocol/mesh-sdk` 0.27, see `packages/mesh/README.md`) and `@offline-app-examples/ui`.
+`@offline-protocol/mesh-sdk` 0.28, see `packages/mesh/README.md`) and `@offline-app-examples/ui`.
## Run
diff --git a/apps/tictactogether/ios/Podfile.lock b/apps/tictactogether/ios/Podfile.lock
index 1264338..e318ba0 100644
--- a/apps/tictactogether/ios/Podfile.lock
+++ b/apps/tictactogether/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2303,7 +2303,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 25cc110921930e4293b718f2d5d325536b0ed52b
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/tictactogether/package.json b/apps/tictactogether/package.json
index 033895b..c9216cf 100644
--- a/apps/tictactogether/package.json
+++ b/apps/tictactogether/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"nativewind": "^4.2.7",
"react": "19.2.3",
"react-native": "0.85.2",
diff --git a/apps/yardgate/README.md b/apps/yardgate/README.md
index 4333a60..38fddac 100644
--- a/apps/yardgate/README.md
+++ b/apps/yardgate/README.md
@@ -2,7 +2,7 @@
Logistics yard check-in when there is no cellular: a **driver** discovers a **gate check-in service** over **Bluetooth mesh**, submits a seeded load / trailer ID, and the **gate officer** approves or denies on their phone. An optional **yard relay** phone carries traffic when the driver is not in direct range of the gate.
-Mesh SDK **0.27** — `MeshServices` discover + invoke only (no Proof of Location; invoke bodies are signed plaintext — no secrets). Service responses use SDK status strings **`ok`**, **`error`**, or **`not_found`** (not HTTP codes like `200`).
+Mesh SDK **0.28** — `MeshServices` discover + invoke only (no Proof of Location; invoke bodies are signed plaintext — no secrets). Service responses use SDK status strings **`ok`**, **`error`**, or **`not_found`** (not HTTP codes like `200`).
## What it demonstrates
diff --git a/apps/yardgate/ios/Podfile.lock b/apps/yardgate/ios/Podfile.lock
index 9296f46..b426b1a 100644
--- a/apps/yardgate/ios/Podfile.lock
+++ b/apps/yardgate/ios/Podfile.lock
@@ -3,7 +3,7 @@ PODS:
- hermes-engine (250829098.0.10):
- hermes-engine/Pre-built (= 250829098.0.10)
- hermes-engine/Pre-built (250829098.0.10)
- - MeshSdk (0.27.0):
+ - MeshSdk (0.28.0):
- React-Core
- RCTDeprecation (0.85.2)
- RCTRequired (0.85.2)
@@ -2278,7 +2278,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
FBLazyVector: 26fd21c75314e101f280d401e97f27d54f3f7064
hermes-engine: 3a002838bb4972a0235545718ba18f497305aa5d
- MeshSdk: dc48b6c67eb632530836c964c9f2c5b1513224dd
+ MeshSdk: d4a40ad67dd577e5b41da02576c04f9519545545
RCTDeprecation: c7a2768f905d76ca6d2cfefb26e4349eacbdfca3
RCTRequired: 5e502c3553cfbed090a991c444448da452fb752e
RCTSwiftUI: 5ce3ccbdc58b78cc4ebbaace01709ec22d58e131
diff --git a/apps/yardgate/package.json b/apps/yardgate/package.json
index 511ae0b..318f9aa 100644
--- a/apps/yardgate/package.json
+++ b/apps/yardgate/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@offline-app-examples/mesh": "workspace:*",
"@offline-app-examples/ui": "workspace:*",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"lucide-react-native": "^1.48.0",
"nativewind": "^4.2.7",
"react": "19.2.3",
diff --git a/packages/mesh/README.md b/packages/mesh/README.md
index 9314fb2..6d17d8c 100644
--- a/packages/mesh/README.md
+++ b/packages/mesh/README.md
@@ -71,7 +71,7 @@ await store.textInsert(room.groupId!, 'doc', 'body', 0, 'Hello');
- One message is at most 16 KiB of JSON; `send` throws
above it. Bluetooth moves roughly 180–500 bytes per fragment, so keep messages small.
- iOS keeps at most about 4 Bluetooth connections per device, so plan for small rooms.
-- Wi-Fi Direct is off: in SDK 0.27 the phone Wi-Fi Direct transport carries no traffic.
+- Wi-Fi Direct is off (`wifiDirect: { enabled: false }` in `src/runtime.ts`), so everything goes over Bluetooth LE.
- Discovery needs physical phones. Simulators run the UI but never find peers.
## Files
diff --git a/packages/mesh/package.json b/packages/mesh/package.json
index cc0a160..214c642 100644
--- a/packages/mesh/package.json
+++ b/packages/mesh/package.json
@@ -11,13 +11,13 @@
"test": "jest"
},
"peerDependencies": {
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"react": "*",
"react-native": "*"
},
"devDependencies": {
"@babel/core": "^7.25.2",
- "@offline-protocol/mesh-sdk": "^0.27.0",
+ "@offline-protocol/mesh-sdk": "^0.28.0",
"@react-native/babel-preset": "0.85.2",
"@react-native/typescript-config": "0.85.2",
"@jest/globals": "^29.6.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6cd3643..6a6d1f2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -220,8 +220,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@react-native-async-storage/async-storage':
specifier: ^2.2.0
version: 2.2.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))
@@ -335,8 +335,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
lucide-react-native:
specifier: ^1.48.0
version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
@@ -447,8 +447,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@react-native-async-storage/async-storage':
specifier: ^2.2.0
version: 2.2.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))
@@ -562,8 +562,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
lucide-react-native:
specifier: ^1.48.0
version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
@@ -674,8 +674,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@react-native-async-storage/async-storage':
specifier: ^2.2.0
version: 2.2.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))
@@ -789,8 +789,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
lucide-react-native:
specifier: ^1.48.0
version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
@@ -901,8 +901,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
nativewind:
specifier: ^4.2.7
version: 4.2.7(6af35d6757d3fd7944cdf994ae66f9a7)
@@ -1013,8 +1013,8 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
lucide-react-native:
specifier: ^1.48.0
version: 1.48.0(react-native-svg@15.15.5(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
@@ -1125,8 +1125,8 @@ importers:
specifier: ^29.6.3
version: 29.7.0(supports-color@8.1.1)
'@offline-protocol/mesh-sdk':
- specifier: ^0.27.0
- version: 0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ specifier: ^0.28.0
+ version: 0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@react-native/babel-preset':
specifier: 0.85.2
version: 0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1)
@@ -2036,8 +2036,8 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@offline-protocol/mesh-sdk@0.27.0':
- resolution: {integrity: sha512-yTxtiTR9H2xIZuIL4S4wyGSjEe0Ti0Pm7o6/455mDOkGyE73I02JunFKoaXELzqxJa0g7eoRPr11IbKVgGDyZg==}
+ '@offline-protocol/mesh-sdk@0.28.0':
+ resolution: {integrity: sha512-yRxj0Gj8Gv5F4TPYQEHGhIA1FTyADb8I9RpG+N8e6edbrAM8duphRCDPZ8fSjFR0vMMSvKhUSYqqOaMcdw8auw==}
peerDependencies:
react: '>=16.8.0'
react-native: '>=0.70.0'
@@ -6164,7 +6164,7 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.20.3
- '@offline-protocol/mesh-sdk@0.27.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
+ '@offline-protocol/mesh-sdk@0.28.0(react-native@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
react: 19.2.3
react-native: 0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(@react-native-community/cli@20.1.0(supports-color@8.1.1)(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.85.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.3.0)(react@19.2.3)(supports-color@8.1.1)
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 3e712d3..24155da 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,3 +1,5 @@
packages:
- "apps/*"
- - "packages/*"
\ No newline at end of file
+ - "packages/*"
+minimumReleaseAgeExclude:
+ - '@offline-protocol/mesh-sdk@0.28.0'