@mentra/bluetooth-sdk 3.2.1-beta.372 → 3.2.1-beta.379

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,9 +3,9 @@ package com.mentra.bluetoothsdk
3
3
  /** Generated by release CI. Do not edit in a release checkout. */
4
4
  internal object GeneratedReleaseMetadata {
5
5
  const val FAMILY_BASE_VERSION: String = "3.2.1"
6
- const val RELEASE_IDENTITY: String = "3.2.1-beta.372"
7
- const val RELEASE_SET_ID: String = "mentra-3.2.1-beta.372"
8
- const val SOURCE_COMMIT: String = "c0001dd42f18f38600edc7244bb0f2d69b2ccd3a"
9
- const val OTA_MANIFEST_URL: String = "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.372.json"
10
- const val OTA_MANIFEST_SHA256: String = "c251c3160cb60b7eaf235787a70e3e3fa72c58ed55d1e8fb992250dee66b6417"
6
+ const val RELEASE_IDENTITY: String = "3.2.1-beta.379"
7
+ const val RELEASE_SET_ID: String = "mentra-3.2.1-beta.379"
8
+ const val SOURCE_COMMIT: String = "3d35477b17a4a1995f822f9e525d5c6ba5ce929b"
9
+ const val OTA_MANIFEST_URL: String = "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.379.json"
10
+ const val OTA_MANIFEST_SHA256: String = "37b4e16c76be498e2c2dfa7d4f48207732c868aa47aadc40319509ac9e706644"
11
11
  }
@@ -6163,7 +6163,8 @@ class MentraLive : SGCManager() {
6163
6163
  val json = JSONObject()
6164
6164
  json.put("type", "request_version")
6165
6165
  requestId?.let { json.put("request_id", it) }
6166
- sendJson(json, false)
6166
+ // Wake ASG so the version request and its response can finish after idle.
6167
+ sendJson(json, true)
6167
6168
  Bridge.log("LIVE: 📱 Requesting version info from glasses")
6168
6169
  } catch (e: JSONException) {
6169
6170
  Log.e(TAG, "📱 Error creating request_version command", e)
@@ -1,10 +1,10 @@
1
1
  export const BLUETOOTH_SDK_RELEASE_METADATA = Object.freeze({
2
2
  "schemaVersion": 1,
3
3
  "familyBaseVersion": "3.2.1",
4
- "releaseIdentity": "3.2.1-beta.372",
5
- "releaseSetId": "mentra-3.2.1-beta.372",
6
- "sourceCommit": "c0001dd42f18f38600edc7244bb0f2d69b2ccd3a",
7
- "otaManifestUrl": "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.372.json",
8
- "otaManifestSha256": "c251c3160cb60b7eaf235787a70e3e3fa72c58ed55d1e8fb992250dee66b6417"
4
+ "releaseIdentity": "3.2.1-beta.379",
5
+ "releaseSetId": "mentra-3.2.1-beta.379",
6
+ "sourceCommit": "3d35477b17a4a1995f822f9e525d5c6ba5ce929b",
7
+ "otaManifestUrl": "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.379.json",
8
+ "otaManifestSha256": "37b4e16c76be498e2c2dfa7d4f48207732c868aa47aadc40319509ac9e706644"
9
9
  });
10
10
  //# sourceMappingURL=releaseMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,8BAA8B,GAA0C,MAAM,CAAC,MAAM,CAAC;IACjG,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,gBAAgB;IACnC,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,kIAAkI;IACpJ,mBAAmB,EAAE,kEAAkE;CACxF,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface BluetoothSdkReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const BLUETOOTH_SDK_RELEASE_METADATA: Readonly<BluetoothSdkReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"3.2.1\",\n \"releaseIdentity\": \"3.2.1-beta.372\",\n \"releaseSetId\": \"mentra-3.2.1-beta.372\",\n \"sourceCommit\": \"c0001dd42f18f38600edc7244bb0f2d69b2ccd3a\",\n \"otaManifestUrl\": \"https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.372.json\",\n \"otaManifestSha256\": \"c251c3160cb60b7eaf235787a70e3e3fa72c58ed55d1e8fb992250dee66b6417\"\n})\n"]}
1
+ {"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,8BAA8B,GAA0C,MAAM,CAAC,MAAM,CAAC;IACjG,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,gBAAgB;IACnC,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,kIAAkI;IACpJ,mBAAmB,EAAE,kEAAkE;CACxF,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface BluetoothSdkReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const BLUETOOTH_SDK_RELEASE_METADATA: Readonly<BluetoothSdkReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"3.2.1\",\n \"releaseIdentity\": \"3.2.1-beta.379\",\n \"releaseSetId\": \"mentra-3.2.1-beta.379\",\n \"sourceCommit\": \"3d35477b17a4a1995f822f9e525d5c6ba5ce929b\",\n \"otaManifestUrl\": \"https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.379.json\",\n \"otaManifestSha256\": \"37b4e16c76be498e2c2dfa7d4f48207732c868aa47aadc40319509ac9e706644\"\n})\n"]}
@@ -16,7 +16,7 @@ enum BluetoothSdkDefaults {
16
16
  /// silently disable it on every pair the app touches.
17
17
  static let autoPowerOffEnabled = false
18
18
  private static let infoSdkVersionKey = "MentraBluetoothSdkVersion"
19
- private static let swiftPackageSdkVersion = "3.2.1-beta.372"
19
+ private static let swiftPackageSdkVersion = "3.2.1-beta.379"
20
20
  private static let swiftPackageSdkVersionPlaceholder = "__MENTRA" + "_BLUETOOTH_SDK_VERSION__"
21
21
 
22
22
  private static func normalizedSdkVersion(_ value: String?) -> String? {
@@ -3,9 +3,9 @@ import Foundation
3
3
  /// Generated by release CI. Do not edit in a release checkout.
4
4
  enum GeneratedReleaseMetadata {
5
5
  static let familyBaseVersion = "3.2.1"
6
- static let releaseIdentity = "3.2.1-beta.372"
7
- static let releaseSetId = "mentra-3.2.1-beta.372"
8
- static let sourceCommit = "c0001dd42f18f38600edc7244bb0f2d69b2ccd3a"
9
- static let otaManifestUrl = "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.372.json"
10
- static let otaManifestSha256 = "c251c3160cb60b7eaf235787a70e3e3fa72c58ed55d1e8fb992250dee66b6417"
6
+ static let releaseIdentity = "3.2.1-beta.379"
7
+ static let releaseSetId = "mentra-3.2.1-beta.379"
8
+ static let sourceCommit = "3d35477b17a4a1995f822f9e525d5c6ba5ce929b"
9
+ static let otaManifestUrl = "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.379.json"
10
+ static let otaManifestSha256 = "37b4e16c76be498e2c2dfa7d4f48207732c868aa47aadc40319509ac9e706644"
11
11
  }
@@ -5286,7 +5286,8 @@ class MentraLive: NSObject, SGCManager {
5286
5286
  if let requestId {
5287
5287
  json["request_id"] = requestId
5288
5288
  }
5289
- sendJson(json)
5289
+ // Wake ASG so the version request and its response can finish after idle.
5290
+ sendJson(json, wakeUp: true)
5290
5291
  }
5291
5292
 
5292
5293
  private func sendCoreTokenToAsgClient() {
@@ -0,0 +1,53 @@
1
+ @testable import MentraBluetoothSDK
2
+ import XCTest
3
+
4
+ @MainActor
5
+ private final class VersionInfoCommandTransport: MentraLive {
6
+ var requestId: String?
7
+
8
+ override func sendJson(_ jsonOriginal: [String: Any], wakeUp: Bool, requireAck: Bool) {
9
+ XCTAssertEqual(jsonOriginal["type"] as? String, "request_version")
10
+ XCTAssertTrue(wakeUp, "An idle ASG must wake to finish its version response")
11
+ XCTAssertTrue(requireAck)
12
+ do {
13
+ let bytes = try JSONSerialization.data(withJSONObject: jsonOriginal)
14
+ let command = try XCTUnwrap(JSONSerialization.jsonObject(with: bytes) as? [String: Any])
15
+ let id = try XCTUnwrap(command["request_id"] as? String)
16
+ requestId = id
17
+ let common: [String: Any] = ["request_id": id, "sid": "asg-1", "chunkCount": 2]
18
+ for chunk: [String: Any] in [
19
+ ["type": "version_info_1", "chunkIndex": 1, "final": false,
20
+ "build_number": "303000008", "app_version": "3.3.0"],
21
+ ["type": "version_info_3", "chunkIndex": 2, "final": true,
22
+ "bes_fw_version": "26.9.23.0", "mtk_fw_version": "MentraLive_20260921.0"],
23
+ ] {
24
+ let response = common.merging(chunk) { _, value in value }
25
+ try processReceivedData(JSONSerialization.data(withJSONObject: response))
26
+ }
27
+ } catch {
28
+ XCTFail("Could not replay version request: \(error)")
29
+ }
30
+ }
31
+ }
32
+
33
+ @MainActor
34
+ final class VersionInfoCommandTests: XCTestCase {
35
+ func testPublicVersionRequestWakesGlassesAndCombinesBothResponseChunks() async throws {
36
+ let previous = DeviceManager.shared.sgc
37
+ let transport = VersionInfoCommandTransport()
38
+ DeviceManager.shared.sgc = transport
39
+ let sdk = MentraBluetoothSDK()
40
+ defer {
41
+ sdk.invalidate()
42
+ DeviceManager.shared.sgc = previous
43
+ }
44
+
45
+ let result = try await sdk.requestVersionInfo()
46
+
47
+ XCTAssertNotNil(transport.requestId)
48
+ XCTAssertEqual(result.buildNumber, "303000008")
49
+ XCTAssertEqual(result.appVersion, "3.3.0")
50
+ XCTAssertEqual(result.besFirmwareVersion, "26.9.23.0")
51
+ XCTAssertEqual(result.mtkFirmwareVersion, "MentraLive_20260921.0")
52
+ }
53
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mentra/bluetooth-sdk",
3
- "version": "3.2.1-beta.372",
3
+ "version": "3.2.1-beta.379",
4
4
  "description": "SDK for communicating with smart glasses",
5
5
  "main": "build/index.js",
6
6
  "react-native": "src/index.ts",
@@ -114,7 +114,7 @@
114
114
  "registry": "https://registry.npmjs.org/"
115
115
  },
116
116
  "dependencies": {
117
- "@mentra/cloud-protocol": "3.2.1-beta.372"
117
+ "@mentra/cloud-protocol": "3.2.1-beta.379"
118
118
  },
119
119
  "devDependencies": {
120
120
  "@types/node": "^25.9.3",
@@ -12,9 +12,9 @@ export interface BluetoothSdkReleaseMetadata {
12
12
  export const BLUETOOTH_SDK_RELEASE_METADATA: Readonly<BluetoothSdkReleaseMetadata> = Object.freeze({
13
13
  "schemaVersion": 1,
14
14
  "familyBaseVersion": "3.2.1",
15
- "releaseIdentity": "3.2.1-beta.372",
16
- "releaseSetId": "mentra-3.2.1-beta.372",
17
- "sourceCommit": "c0001dd42f18f38600edc7244bb0f2d69b2ccd3a",
18
- "otaManifestUrl": "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.372.json",
19
- "otaManifestSha256": "c251c3160cb60b7eaf235787a70e3e3fa72c58ed55d1e8fb992250dee66b6417"
15
+ "releaseIdentity": "3.2.1-beta.379",
16
+ "releaseSetId": "mentra-3.2.1-beta.379",
17
+ "sourceCommit": "3d35477b17a4a1995f822f9e525d5c6ba5ce929b",
18
+ "otaManifestUrl": "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-beta.379.json",
19
+ "otaManifestSha256": "37b4e16c76be498e2c2dfa7d4f48207732c868aa47aadc40319509ac9e706644"
20
20
  })