Skip to content

Bump Starscream to 4.0.10 and release 0.4.19 - #127

Merged
bgoncal merged 2 commits into
mainfrom
bump-starscream-4.0.10
Oct 10, 2026
Merged

bgoncal merged 2 commits into
mainfrom
bump-starscream-4.0.10

Conversation

@bgoncal

@bgoncal bgoncal commented Oct 10, 2026

Copy link
Copy Markdown
Member

Summary

Fixes WebSocket connections dropping roughly every 56 seconds against Home Assistant Core 2026.10 with Received frame with non-zero reserved bits (close code 1002). Reported in home-assistant/iOS#6011.

Starscream ran every outgoing frame through the permessage-deflate compressor, so control frames went out with RSV1 set, including the empty pong it sends back for the server's 55 s heartbeat ping. RFC 7692 §6.1 forbids the compressed bit on control frames, and aiohttp 3.14.4 (bumped in home-assistant/core#184382) now enforces it; 3.14.3 tolerated it.

Starscream 4.0.10 (bgoncal/Starscream@9f793f7) only compresses text and binary frames.

Changes

watchOS (compression disabled) and mTLS (URLSessionWebSocketTask) connections were not affected.

🤖 Generated with Claude Code

https://claude.ai/code/session_017NccCmJppSCweVhhGQn8Hk


Generated by Claude Code

Starscream 4.0.10 stops setting the permessage-deflate compressed bit
on control frames. aiohttp 3.14.4 (Home Assistant Core 2026.10) rejects
such frames per RFC 7692, so the pong answering every server heartbeat
ping dropped the connection roughly every 56 seconds.

Refs home-assistant/iOS#6011

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017NccCmJppSCweVhhGQn8Hk
Copilot AI balanced review requested due to automatic review settings October 10, 2026 21:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The CocoaPods example still pins an older Starscream branch that lacks the advertised fix.

1 open finding
What changed in this PR

Updates Starscream to fix WebSocket heartbeat disconnects and prepares HAKit 0.4.19 for release.

Changes:

  • Bumps Starscream to 4.0.10.
  • Updates release metadata and changelog.
  • Updates CocoaPods installation guidance.
File Description
Package.swift Raises the Starscream minimum version.
Package.resolved Resolves Starscream 4.0.10.
HAKit.podspec Sets release version 0.4.19.
CHANGELOG.md Documents the WebSocket fix.
README.md Updates CocoaPods installation instructions.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread README.md Outdated
@codecov

codecov Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.83%. Comparing base (4fe7a27) to head (5e61435).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #127   +/-   ##
=======================================
  Coverage   99.83%   99.83%           
=======================================
  Files          53       53           
  Lines        1824     1824           
=======================================
  Hits         1821     1821           
  Misses          3        3           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

The README pointed CocoaPods users at the ha-URLSession-fix branch,
which predates both 4.0.9 and the control-frame compression fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017NccCmJppSCweVhhGQn8Hk
@bgoncal
bgoncal merged commit 0535d4a into main Oct 10, 2026
5 checks passed
@bgoncal
bgoncal deleted the bump-starscream-4.0.10 branch October 10, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants