Skip to content

Fix transient hardware control recovery - #45

Merged
olujicz merged 1 commit into
mainfrom
fix/hardware-recovery
Jul 24, 2026
Merged

Fix transient hardware control recovery#45
olujicz merged 1 commit into
mainfrom
fix/hardware-recovery

Conversation

@olujicz

@olujicz olujicz commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Automatically re-probe DDC capabilities after repeated write failures using a 1s/5s/30s backoff, restoring hardware controls when a transient failure clears.
  • Preserve the current built-in display brightness when a live DisplayServices read fails during reconfiguration.
  • Suppress built-in backlight writes for failed-read refresh cycles so persisted or default brightness cannot be pushed back to the panel.
  • Add regression coverage for both recovery paths.

Root cause

Runtime DDC write failures permanently removed the affected VCP capability from the cached display state, with no recovery path short of toggling hardware control or reconnecting. Separately, a transient built-in brightness read failure selected persisted/default state and the subsequent refresh reapplied that fallback to the physical backlight.

Validation

  • Full direct-distribution test suite (just test)
  • App Store scheme build (just build-appstore)
  • SwiftFormat check (just format-check)
  • SwiftLint on all changed files
  • Commit-hook sensitive-data scan

@olujicz
olujicz marked this pull request as ready for review July 24, 2026 14:39
@olujicz
olujicz merged commit ea7a290 into main Jul 24, 2026
7 checks passed
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