Files
openclaw/apps/shared/OpenClawKit/Sources/OpenClawKit/GatewayChannelSupport.swift
Peter Steinberger a0354e5243 fix(onboarding): make fresh AI setup reliable and transparent (#103962)
* fix(onboarding): harden inference setup

* fix(mac): preserve setup request cancellation

* test(crestodian): align setup audit expectation

* test(crestodian): cover approval persistence warning

* fix(crestodian): preserve setup credentials and success

* chore(pr): leave changelog to release flow

* fix(onboarding): repair native CI gates
2026-07-10 23:44:53 +01:00

46 lines
1.1 KiB
Swift

import Foundation
/// Bridges task cancellation into the request continuation without racing send.
final class GatewayRequestCancellationGate: @unchecked Sendable {
private let lock = NSLock()
private var cancelled = false
var isCancelled: Bool {
self.lock.lock()
defer { self.lock.unlock() }
return self.cancelled
}
func cancel() {
self.lock.lock()
self.cancelled = true
self.lock.unlock()
}
}
extension GatewayChannelActor {
enum ConnectChallengeError: Error {
case timeout
}
static let defaultOperatorConnectScopes: [String] = [
"operator.admin",
"operator.read",
"operator.write",
"operator.approvals",
"operator.pairing",
]
struct SelectedConnectAuth {
let authToken: String?
let authBootstrapToken: String?
let authDeviceToken: String?
let authPassword: String?
let signatureToken: String?
let storedToken: String?
let storedScopes: [String]?
let authSource: GatewayAuthSource
let suppressedDeviceTokenRetry: Bool
}
}