From 7130971dfecc71fab340d41a4aeca5d3994c344d Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 10 Oct 2026 20:49:16 +0000 Subject: [PATCH 1/3] Bump Starscream to stop compressing WebSocket control frames Starscream set the permessage-deflate compressed bit on control frames, including the pong answering the server's heartbeat ping. aiohttp 3.14.4 (Home Assistant Core 2026.10) rejects those per RFC 7692, dropping the connection with "Received frame with non-zero reserved bits" roughly every 56 seconds. Refs #6011 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017NccCmJppSCweVhhGQn8Hk --- HomeAssistant.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 2 +- Package.resolved | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/HomeAssistant.xcodeproj/project.pbxproj b/HomeAssistant.xcodeproj/project.pbxproj index ba2be1f16e..bc88934a8a 100644 --- a/HomeAssistant.xcodeproj/project.pbxproj +++ b/HomeAssistant.xcodeproj/project.pbxproj @@ -6276,7 +6276,7 @@ repositoryURL = "https://github.com/bgoncal/starscream"; requirement = { kind = revision; - revision = aaaf609d07eb487b2fccbe77f6267cf0843e2b19; + revision = 9f793f7396d0def800c18be36769deb6d1313238; }; }; 42886D292FFE839A004EB33B /* XCRemoteSwiftPackageReference "PromiseKit" */ = { diff --git a/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 44f2f2cdb9..326bc6cb46 100644 --- a/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -240,7 +240,7 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/bgoncal/starscream", "state" : { - "revision" : "aaaf609d07eb487b2fccbe77f6267cf0843e2b19" + "revision" : "9f793f7396d0def800c18be36769deb6d1313238" } }, { diff --git a/Package.resolved b/Package.resolved index 47433d165a..66f78fa7f5 100644 --- a/Package.resolved +++ b/Package.resolved @@ -213,7 +213,7 @@ "package": "starscream", "repositoryURL": "https://github.com/bgoncal/starscream", "state": { - "revision": "aaaf609d07eb487b2fccbe77f6267cf0843e2b19" + "revision": "9f793f7396d0def800c18be36769deb6d1313238" } }, { From 6cf1bb7bf42b0e40c1a6542401039af34f9e7dea Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 10 Oct 2026 21:07:39 +0000 Subject: [PATCH 2/3] Bump HAKit to 0.4.19 HAKit 0.4.19 requires Starscream 4.0.10, the release carrying the control-frame compression fix this PR already pins. Refs #6011 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017NccCmJppSCweVhhGQn8Hk --- HomeAssistant.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 4 ++-- Package.resolved | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/HomeAssistant.xcodeproj/project.pbxproj b/HomeAssistant.xcodeproj/project.pbxproj index bc88934a8a..40149b9090 100644 --- a/HomeAssistant.xcodeproj/project.pbxproj +++ b/HomeAssistant.xcodeproj/project.pbxproj @@ -6292,7 +6292,7 @@ repositoryURL = "https://github.com/home-assistant/HAKit.git"; requirement = { kind = exactVersion; - version = 0.4.18; + version = 0.4.19; }; }; 42991E5F2FF4474500C2C76B /* XCRemoteSwiftPackageReference "sdk-iOS" */ = { diff --git a/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 326bc6cb46..db30de2d01 100644 --- a/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/HomeAssistant.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -132,8 +132,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/home-assistant/HAKit.git", "state" : { - "revision" : "02777d0b7ce4b635ca7dd46bcd74a032eb79dd60", - "version" : "0.4.18" + "revision" : "0535d4aabd0a50e2c18cdcaa2f4423ff057a546a", + "version" : "0.4.19" } }, { diff --git a/Package.resolved b/Package.resolved index 66f78fa7f5..d8d68c9943 100644 --- a/Package.resolved +++ b/Package.resolved @@ -117,8 +117,8 @@ "package": "hakit", "repositoryURL": "https://github.com/home-assistant/HAKit.git", "state": { - "revision": "02777d0b7ce4b635ca7dd46bcd74a032eb79dd60", - "version": "0.4.18" + "revision": "0535d4aabd0a50e2c18cdcaa2f4423ff057a546a", + "version": "0.4.19" } }, { From a9bc471108e004bc16d86981630663cfb25c6aca Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 10 Oct 2026 21:10:54 +0000 Subject: [PATCH 3/3] Bump HAKit to 0.4.19 in local package manifests HANetworking and PromiseKitDynamic pin HAKit exactly to keep a single instance in Xcode's package graph, so they must match the app's 0.4.19. Refs #6011 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017NccCmJppSCweVhhGQn8Hk --- Sources/HANetworking/Package.swift | 2 +- Sources/PromiseKitDynamic/Package.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/HANetworking/Package.swift b/Sources/HANetworking/Package.swift index 01a439147b..14839d9e1f 100644 --- a/Sources/HANetworking/Package.swift +++ b/Sources/HANetworking/Package.swift @@ -34,7 +34,7 @@ let package = Package( // (a second copy of a static product would crash at runtime — see PromiseKitDynamic). .package(url: "https://github.com/Alamofire/Alamofire.git", exact: "5.12.0"), .package(url: "https://github.com/tristanhimmelman/ObjectMapper.git", exact: "4.4.3"), - .package(url: "https://github.com/home-assistant/HAKit.git", exact: "0.4.18"), + .package(url: "https://github.com/home-assistant/HAKit.git", exact: "0.4.19"), .package(url: "https://github.com/groue/GRDB.swift.git", exact: "7.8.0"), .package(url: "https://github.com/kishikawakatsumi/KeychainAccess.git", exact: "4.2.2"), .package(path: "../HAModels"), diff --git a/Sources/PromiseKitDynamic/Package.swift b/Sources/PromiseKitDynamic/Package.swift index df5561c1e2..08eae5c045 100644 --- a/Sources/PromiseKitDynamic/Package.swift +++ b/Sources/PromiseKitDynamic/Package.swift @@ -34,7 +34,7 @@ public let package = Package( // reintroducing the duplicate-metadata crash. So this dynamic framework also // subsumes HAKit+PromiseKit: everyone links THIS instead, giving a single // shared copy of PromiseKit. - .package(url: "https://github.com/home-assistant/HAKit.git", exact: "0.4.18"), + .package(url: "https://github.com/home-assistant/HAKit.git", exact: "0.4.19"), ], targets: [ .target(