Skip to content

fix: allow Receiver display sleep during active sessions - #182

Draft
Betafer wants to merge 1 commit into
swellweb:maint-3.5from
Betafer:codex/fix-active-session-display-sleep-v3.5
Draft

fix: allow Receiver display sleep during active sessions#182
Betafer wants to merge 1 commit into
swellweb:maint-3.5from
Betafer:codex/fix-active-session-display-sleep-v3.5

Conversation

@Betafer

@Betafer Betafer commented Aug 21, 2026

Copy link
Copy Markdown

Summary

  • allow the Receiver panel to follow the normal macOS display-sleep timer during an active session
  • keep the Sender's virtual capture display awake independently so the stream remains healthy
  • carry the existing “prevent display sleep” preference in backward-compatible heartbeat fields
  • wake the Receiver panel for local Receiver input or recent mouse/keyboard activity on the Sender
  • default new installations to normal display sleep, while preserving an explicit always-on option

Why

SDL fullscreen inhibition and the Sender's capture activity previously kept the iMac panel awake indefinitely. Simply removing the assertion is unsafe because the virtual display can stop producing frames. Separating the physical Receiver panel policy from the Sender capture policy lets the panel sleep without tearing down the session.

Compatibility

The new heartbeat fields are optional. Older heartbeats still decode, and an older Receiver ignores the additional JSON fields.

Validation

  • all 112 TBDisplaySender Xcode tests pass, including heartbeat compatibility coverage
  • Receiver parser tests: 67 checks passed
  • Receiver input queue tests: 562 checks passed
  • Receiver profile tests: 13 checks passed
  • full Receiver build completed with the new IOKit power-management path
  • all five localization files pass JSON validation
  • verified on Mac mini M4 -> 2017 Intel iMac: the panel sleeps without dropping the stream and wakes from input on either Mac

This PR is limited to active-session display power policy and its wire-compatible activity signal.

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.

1 participant