惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
月光博客
月光博客
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
人人都是产品经理
人人都是产品经理
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
The Cloudflare Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
Last Week in AI
Last Week in AI

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
fix: migrate ios identifiers to openclawfoundation · open...
joshavant · 2026-06-16 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -4,11 +4,11 @@

44

OPENCLAW_CODE_SIGN_STYLE = Automatic

55

OPENCLAW_DEVELOPMENT_TEAM = YOUR_TEAM_ID

66
7-

OPENCLAW_APP_BUNDLE_ID = ai.openclaw.client

8-

OPENCLAW_SHARE_BUNDLE_ID = ai.openclaw.client.share

9-

OPENCLAW_ACTIVITY_WIDGET_BUNDLE_ID = ai.openclaw.client.activitywidget

10-

OPENCLAW_WATCH_APP_BUNDLE_ID = ai.openclaw.client.watchkitapp

11-

OPENCLAW_WATCH_EXTENSION_BUNDLE_ID = ai.openclaw.client.watchkitapp.extension

7+

OPENCLAW_APP_BUNDLE_ID = ai.openclawfoundation.app

8+

OPENCLAW_SHARE_BUNDLE_ID = ai.openclawfoundation.app.share

9+

OPENCLAW_ACTIVITY_WIDGET_BUNDLE_ID = ai.openclawfoundation.app.activitywidget

10+

OPENCLAW_WATCH_APP_BUNDLE_ID = ai.openclawfoundation.app.watchkitapp

11+

OPENCLAW_WATCH_EXTENSION_BUNDLE_ID = ai.openclawfoundation.app.watchkitapp.extension

1212
1313

// Leave empty with automatic signing.

1414

OPENCLAW_APP_PROFILE =

Original file line numberDiff line numberDiff line change

@@ -61,7 +61,7 @@ Prereqs:

6161

Release behavior:

6262
6363

- Local development uses the canonical `ai.openclawfoundation.app*` bundle IDs when the OpenClaw team is available, and unique `ai.openclawfoundation.app.test.*` bundle IDs only for non-canonical fallback teams.

64-

- Beta release uses canonical `ai.openclaw.client*` bundle IDs through a temporary generated xcconfig in `apps/ios/build/BetaRelease.xcconfig`.

64+

- Beta release uses canonical `ai.openclawfoundation.app*` bundle IDs through a temporary generated xcconfig in `apps/ios/build/BetaRelease.xcconfig`.

6565

- Beta release also switches the app to `OpenClawPushTransport=relay`, `OpenClawPushDistribution=official`, and `OpenClawPushAPNsEnvironment=production`.

6666

- The beta flow does not modify `apps/ios/.local-signing.xcconfig` or `apps/ios/LocalSigning.xcconfig`.

6767

- `apps/ios/version.json` is the pinned iOS release version source.

@@ -319,7 +319,7 @@ Automatic wake/reconnect hardening:

319319

5. If network path is unclear:

320320

- switch to manual host/port + TLS in Gateway Advanced settings

321321

6. In Xcode console, filter for subsystem/category signals:

322-

- `ai.openclaw.ios`

322+

- `ai.openclawfoundation.app`

323323

- `GatewayDiag`

324324

- `APNs registration failed`

325325

7. Validate background expectations:

Original file line numberDiff line numberDiff line change

@@ -5,7 +5,7 @@ import OpenClawProtocol

55

import OSLog

66
77

struct IOSGatewayChatTransport: OpenClawChatTransport {

8-

static let logger = Logger(subsystem: "ai.openclaw", category: "ios.chat.transport")

8+

static let logger = Logger(subsystem: "ai.openclawfoundation.app", category: "ios.chat.transport")

99

static let defaultChatSendTimeoutMs = 30000

1010

private let gateway: GatewayNodeSession

1111
Original file line numberDiff line numberDiff line change

@@ -2,9 +2,9 @@ import Foundation

22

import os

33
44

enum GatewaySettingsStore {

5-

private static let gatewayService = "ai.openclaw.gateway"

6-

private static let nodeService = "ai.openclaw.node"

7-

private static let talkService = "ai.openclaw.talk"

5+

private static let gatewayService = "ai.openclawfoundation.app.gateway"

6+

private static let nodeService = "ai.openclawfoundation.app.node"

7+

private static let talkService = "ai.openclawfoundation.app.talk"

88
99

private static let instanceIdDefaultsKey = "node.instanceId"

1010

private static let preferredGatewayStableIDDefaultsKey = "gateway.preferredStableID"

@@ -444,7 +444,7 @@ enum GatewaySettingsStore {

444444
445445

enum GatewayDiagnostics {

446446

private static let logger = Logger(subsystem: "ai.openclawfoundation.app", category: "GatewayDiag")

447-

private static let queue = DispatchQueue(label: "ai.openclaw.gateway.diagnostics")

447+

private static let queue = DispatchQueue(label: "ai.openclawfoundation.app.gateway.diagnostics")

448448

private static let maxLogBytes: Int64 = 512 * 1024

449449

private static let keepLogBytes: Int64 = 256 * 1024

450450

private static let logSizeCheckEveryWrites = 50

Original file line numberDiff line numberDiff line change

@@ -13,7 +13,7 @@ private struct StoredPushRelayRegistrationState: Codable {

1313

}

1414
1515

enum PushRelayRegistrationStore {

16-

private static let service = "ai.openclaw.pushrelay"

16+

private static let service = "ai.openclawfoundation.app.pushrelay"

1717

private static let registrationStateAccount = "registration-state"

1818

private static let appAttestKeyIDAccount = "app-attest-key-id"

1919

private static let appAttestedKeyIDAccount = "app-attested-key-id"

Original file line numberDiff line numberDiff line change

@@ -56,7 +56,7 @@ final class ScreenRecordService: @unchecked Sendable {

5656

outPath: outPath)

5757
5858

let state = CaptureState()

59-

let recordQueue = DispatchQueue(label: "ai.openclaw.screenrecord")

59+

let recordQueue = DispatchQueue(label: "ai.openclawfoundation.app.screenrecord")

6060
6161

try await self.startCapture(state: state, config: config, recordQueue: recordQueue)

6262

try await Task.sleep(nanoseconds: UInt64(config.durationMs) * 1_000_000)

Original file line numberDiff line numberDiff line change

@@ -26,7 +26,7 @@ private func sendReachableWatchMessage(_ payload: [String: Any], with session: W

2626

}

2727
2828

final class WatchConnectivityTransport: NSObject, @unchecked Sendable {

29-

private nonisolated static let logger = Logger(subsystem: "ai.openclaw", category: "watch.messaging")

29+

private nonisolated static let logger = Logger(subsystem: "ai.openclawfoundation.app", category: "watch.messaging")

3030
3131

private let session: WCSession?

3232

private let callbacksLock = NSLock()

Original file line numberDiff line numberDiff line change

@@ -121,7 +121,7 @@ final class RealtimeTalkRelaySession {

121121

private let gateway: GatewayNodeSession

122122

private let options: Options

123123

private let pcmPlayer: PCMStreamingAudioPlaying

124-

private let logger = Logger(subsystem: "ai.openclaw", category: "RealtimeTalkRelay")

124+

private let logger = Logger(subsystem: "ai.openclawfoundation.app", category: "RealtimeTalkRelay")

125125

private let onStatus: (String) -> Void

126126

private let onIssue: (TalkRuntimeIssue) -> Void

127127

private let onSpeakingChanged: (Bool) -> Void

Original file line numberDiff line numberDiff line change

@@ -170,7 +170,7 @@ final class TalkModeManager: NSObject {

170170

private var incrementalSpeechPrefetch: IncrementalSpeechPrefetchState?

171171

private var incrementalSpeechPrefetchMonitorTask: Task<Void, Never>?

172172
173-

private let logger = Logger(subsystem: "ai.openclaw", category: "TalkMode")

173+

private let logger = Logger(subsystem: "ai.openclawfoundation.app", category: "TalkMode")

174174
175175

private static func nowSeconds() -> TimeInterval {

176176

ProcessInfo.processInfo.systemUptime

Original file line numberDiff line numberDiff line change

@@ -17,7 +17,7 @@ protocol TalkRealtimeWebRTCSessionDelegate: AnyObject {

1717
1818

@MainActor

1919

final class TalkRealtimeWebRTCSession: NSObject {

20-

private static let logger = Logger(subsystem: "ai.openclaw", category: "TalkRealtimeWebRTC")

20+

private static let logger = Logger(subsystem: "ai.openclawfoundation.app", category: "TalkRealtimeWebRTC")

2121

private static let consultToolName = "openclaw_agent_consult"

2222

private static let controlToolName = "openclaw_agent_control"

2323

private static let defaultOfferURL = "https://api.openai.com/v1/realtime/calls"