Branding: update bot.molt bundle IDs + launchd labels

This commit is contained in:
Shadow
2026-01-27 14:46:27 -06:00
parent 1d37815443
commit f7a0b0934d
108 changed files with 11111 additions and 112 deletions

View File

@@ -104,7 +104,7 @@ final class GatewayDiscoveryModel {
}
self.browsers[domain] = browser
browser.start(queue: DispatchQueue(label: "com.clawdbot.ios.gateway-discovery.\(domain)"))
browser.start(queue: DispatchQueue(label: "bot.molt.ios.gateway-discovery.\(domain)"))
}
}

View File

@@ -1,9 +1,11 @@
import Foundation
enum GatewaySettingsStore {
private static let gatewayService = "com.clawdbot.gateway"
private static let gatewayService = "bot.molt.gateway"
private static let legacyGatewayService = "com.clawdbot.gateway"
private static let legacyBridgeService = "com.clawdbot.bridge"
private static let nodeService = "com.clawdbot.node"
private static let nodeService = "bot.molt.node"
private static let legacyNodeService = "com.clawdbot.node"
private static let instanceIdDefaultsKey = "node.instanceId"
private static let preferredGatewayStableIDDefaultsKey = "gateway.preferredStableID"
@@ -33,8 +35,22 @@ enum GatewaySettingsStore {
}
static func loadStableInstanceID() -> String? {
KeychainStore.loadString(service: self.nodeService, account: self.instanceIdAccount)?
.trimmingCharacters(in: .whitespacesAndNewlines)
if let value = KeychainStore.loadString(service: self.nodeService, account: self.instanceIdAccount)?
.trimmingCharacters(in: .whitespacesAndNewlines),
!value.isEmpty
{
return value
}
if let legacy = KeychainStore.loadString(service: self.legacyNodeService, account: self.instanceIdAccount)?
.trimmingCharacters(in: .whitespacesAndNewlines),
!legacy.isEmpty
{
_ = KeychainStore.saveString(legacy, service: self.nodeService, account: self.instanceIdAccount)
return legacy
}
return nil
}
static func saveStableInstanceID(_ instanceId: String) {
@@ -42,8 +58,29 @@ enum GatewaySettingsStore {
}
static func loadPreferredGatewayStableID() -> String? {
KeychainStore.loadString(service: self.gatewayService, account: self.preferredGatewayStableIDAccount)?
.trimmingCharacters(in: .whitespacesAndNewlines)
if let value = KeychainStore.loadString(
service: self.gatewayService,
account: self.preferredGatewayStableIDAccount
)?.trimmingCharacters(in: .whitespacesAndNewlines),
!value.isEmpty
{
return value
}
if let legacy = KeychainStore.loadString(
service: self.legacyGatewayService,
account: self.preferredGatewayStableIDAccount
)?.trimmingCharacters(in: .whitespacesAndNewlines),
!legacy.isEmpty
{
_ = KeychainStore.saveString(
legacy,
service: self.gatewayService,
account: self.preferredGatewayStableIDAccount)
return legacy
}
return nil
}
static func savePreferredGatewayStableID(_ stableID: String) {
@@ -54,8 +91,29 @@ enum GatewaySettingsStore {
}
static func loadLastDiscoveredGatewayStableID() -> String? {
KeychainStore.loadString(service: self.gatewayService, account: self.lastDiscoveredGatewayStableIDAccount)?
.trimmingCharacters(in: .whitespacesAndNewlines)
if let value = KeychainStore.loadString(
service: self.gatewayService,
account: self.lastDiscoveredGatewayStableIDAccount
)?.trimmingCharacters(in: .whitespacesAndNewlines),
!value.isEmpty
{
return value
}
if let legacy = KeychainStore.loadString(
service: self.legacyGatewayService,
account: self.lastDiscoveredGatewayStableIDAccount
)?.trimmingCharacters(in: .whitespacesAndNewlines),
!legacy.isEmpty
{
_ = KeychainStore.saveString(
legacy,
service: self.gatewayService,
account: self.lastDiscoveredGatewayStableIDAccount)
return legacy
}
return nil
}
static func saveLastDiscoveredGatewayStableID(_ stableID: String) {

View File

@@ -55,7 +55,7 @@ final class ScreenRecordService: @unchecked Sendable {
outPath: outPath)
let state = CaptureState()
let recordQueue = DispatchQueue(label: "com.clawdbot.screenrecord")
let recordQueue = DispatchQueue(label: "bot.molt.screenrecord")
try await self.startCapture(state: state, config: config, recordQueue: recordQueue)
try await Task.sleep(nanoseconds: UInt64(config.durationMs) * 1_000_000)

View File

@@ -48,7 +48,7 @@ final class TalkModeManager: NSObject {
private var chatSubscribedSessionKeys = Set<String>()
private let logger = Logger(subsystem: "com.clawdbot", category: "TalkMode")
private let logger = Logger(subsystem: "bot.molt", category: "TalkMode")
func attachGateway(_ gateway: GatewayNodeSession) {
self.gateway = gateway

View File

@@ -7,8 +7,8 @@ private struct KeychainEntry: Hashable {
let account: String
}
private let gatewayService = "com.clawdbot.gateway"
private let nodeService = "com.clawdbot.node"
private let gatewayService = "bot.molt.gateway"
private let nodeService = "bot.molt.node"
private let instanceIdEntry = KeychainEntry(service: nodeService, account: "instanceId")
private let preferredGatewayEntry = KeychainEntry(service: gatewayService, account: "preferredStableID")
private let lastGatewayEntry = KeychainEntry(service: gatewayService, account: "lastDiscoveredStableID")

View File

@@ -4,7 +4,7 @@ import Testing
@Suite struct KeychainStoreTests {
@Test func saveLoadUpdateDeleteRoundTrip() {
let service = "com.clawdbot.tests.\(UUID().uuidString)"
let service = "bot.molt.tests.\(UUID().uuidString)"
let account = "value"
#expect(KeychainStore.delete(service: service, account: account))

View File

@@ -1,4 +1,4 @@
app_identifier("com.clawdbot.ios")
app_identifier("bot.molt.ios")
# Auth is expected via App Store Connect API key.
# Provide either:

View File

@@ -1,6 +1,6 @@
name: Moltbot
options:
bundleIdPrefix: com.clawdbot
bundleIdPrefix: bot.molt
deploymentTarget:
iOS: "18.0"
xcodeVersion: "16.0"
@@ -71,8 +71,8 @@ targets:
CODE_SIGN_IDENTITY: "Apple Development"
CODE_SIGN_STYLE: Manual
DEVELOPMENT_TEAM: Y5PE65HELJ
PRODUCT_BUNDLE_IDENTIFIER: com.clawdbot.ios
PROVISIONING_PROFILE_SPECIFIER: "com.clawdbot.ios Development"
PRODUCT_BUNDLE_IDENTIFIER: bot.molt.ios
PROVISIONING_PROFILE_SPECIFIER: "bot.molt.ios Development"
SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete
ENABLE_APPINTENTS_METADATA: NO
@@ -121,7 +121,7 @@ targets:
- sdk: AppIntents.framework
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.clawdbot.ios.tests
PRODUCT_BUNDLE_IDENTIFIER: bot.molt.ios.tests
SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Moltbot.app/Moltbot"