fix(ios): enforce main-actor device status APIs

This commit is contained in:
Peter Steinberger
2026-03-02 04:36:42 +00:00
parent cb484f44e9
commit 7073f63610
3 changed files with 4 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ import Darwin
/// Shared device and platform info for Settings, gateway node payloads, and device status.
enum DeviceInfoHelper {
/// e.g. "iOS 18.0.0" or "iPadOS 18.0.0" by interface idiom. Use for gateway/device payloads.
@MainActor
static func platformString() -> String {
let v = ProcessInfo.processInfo.operatingSystemVersion
let name = switch UIDevice.current.userInterfaceIdiom {
@@ -26,6 +27,7 @@ enum DeviceInfoHelper {
}
/// Device family for display: "iPad", "iPhone", or "iOS".
@MainActor
static func deviceFamily() -> String {
switch UIDevice.current.userInterfaceIdiom {
case .pad:

View File

@@ -2,6 +2,7 @@ import Foundation
import OpenClawKit
import UIKit
@MainActor
final class DeviceStatusService: DeviceStatusServicing {
private let networkStatus: NetworkStatusService

View File

@@ -39,6 +39,7 @@ protocol LocationServicing: Sendable {
func stopMonitoringSignificantLocationChanges()
}
@MainActor
protocol DeviceStatusServicing: Sendable {
func status() async throws -> OpenClawDeviceStatusPayload
func info() -> OpenClawDeviceInfoPayload