From 22a098ecff501e753e0192e1550e249e26832767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl?= Date: Tue, 22 Sep 2026 18:46:09 +0200 Subject: [PATCH] Build the fork with Xcode 27 Xcode 27 ships Swift 6.4, which rejects two things 26.09.1 still contains. The upstream fix for the app itself is cherry-picked as the commit before this one; these two are what it does not cover. Compound's colour overrides now take a KeyPath & Sendable, so the HealthChat brand arrays have to carry the same constraint. NotificationContentBuilder is main-actor isolated, so its test suite has to build the type from an async init. The lines match upstream's own fix, which only exists inside the larger AccountProvider change (#6103) and so cannot be cherry-picked on its own. --- .../Sources/AppHooks/HealthChat/HealthChatCompoundHook.swift | 4 ++-- UnitTests/Sources/NotificationContentBuilderTests.swift | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ElementX/Sources/AppHooks/HealthChat/HealthChatCompoundHook.swift b/ElementX/Sources/AppHooks/HealthChat/HealthChatCompoundHook.swift index fac80258e..154eda0fc 100644 --- a/ElementX/Sources/AppHooks/HealthChat/HealthChatCompoundHook.swift +++ b/ElementX/Sources/AppHooks/HealthChat/HealthChatCompoundHook.swift @@ -30,7 +30,7 @@ struct HealthChatCompoundHook: CompoundHookProtocol { \.borderInteractivePrimary, \.textBadgeAccent ] - let solidUIColorTokens: [KeyPath] = [ + let solidUIColorTokens: [KeyPath & Sendable] = [ \.bgActionPrimaryRest, \.bgAccentRest, \.iconAccentPrimary, @@ -69,7 +69,7 @@ struct HealthChatCompoundHook: CompoundHookProtocol { \.bgBadgeAccent, \.borderAccentSubtle ] - let tintUIColorTokens: [KeyPath] = [ + let tintUIColorTokens: [KeyPath & Sendable] = [ \.bgAccentSelected, \.bgBadgeAccent, \.borderAccentSubtle diff --git a/UnitTests/Sources/NotificationContentBuilderTests.swift b/UnitTests/Sources/NotificationContentBuilderTests.swift index 59ed63986..d7278a459 100644 --- a/UnitTests/Sources/NotificationContentBuilderTests.swift +++ b/UnitTests/Sources/NotificationContentBuilderTests.swift @@ -23,6 +23,7 @@ nonisolated struct NotificationContentBuilderTests { style: .plain) mediaProvider = MediaProviderMock(.init()) notificationContentBuilder = await NotificationContentBuilder(messageEventStringBuilder: stringBuilder, + notificationSoundName: UNNotificationSoundName("message.caf"), userSession: NSEUserSessionMock(.init())) } @@ -225,7 +226,6 @@ nonisolated struct NotificationContentBuilderTests { mutating func liveLocationStartNotification() async { let event = TimelineEventSDKMock() event.eventIdReturnValue = UUID().uuidString - event.timestampReturnValue = 0 event.contentReturnValue = .state(content: .beaconInfo) let notificationItem = NotificationItemProxyMock(.init(event: .timeline(event: event), @@ -253,7 +253,6 @@ nonisolated struct NotificationContentBuilderTests { mutating func otherStateEventNotification() async { let event = TimelineEventSDKMock() event.eventIdReturnValue = UUID().uuidString - event.timestampReturnValue = 0 event.contentReturnValue = .state(content: .roomName) let notificationItem = NotificationItemProxyMock(.init(event: .timeline(event: event),