Repository navigation
Conversation
3 tasks done
3 tasks done
Owner
|
I'm closing this one, but the switch is coming in another shape, in #218. It sits on the display row itself where the chevron is, behind a setting that's off by default, and it uses the existing disconnect and reconnect unchanged. A switch inside the expanded card still leaves the control one click deep, and that was the complaint in #103. I'm leaving out the configuration gate and the late-completion handling. They change a large part of the disconnect path, which I'm keeping frozen until I have field data, and they weren't run on hardware. Reading them is how I found a real race, though: two disconnects close together could both pass the last-screen guard. #218 closes it by running connection changes one at a time. |
3 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Replace the one-way Disconnect Display action with a native Display Connection switch at the same position in the display detail. Held-disconnected displays use an off-state switch to reconnect. The display header continues to expand its settings.
The controls reuse physical-disconnect and input-aware reconnect services, show failures and pending progress, and protect the last viewable physical screen. They remain hidden on Intel and Crisp virtual displays. A shared transaction gate stays held until the blocking configuration really finishes, even after the UI timeout; queued requests pin their UUID, recheck safety after DDC drains, and retain late-completion recovery state.
The physical-configuration safeguards are shared with the related batch-controls PR, #209. Both feature branches are independently buildable; after either merges, the other can be rebased to remove the shared backend portions.
How tested
8570f4cc4ab9d19984c447dabbd379ef0b4212f5passed localmake check: full strict SwiftLint, unit tests, x86_64 typecheck and all 274 extracted localization keys../scripts/release.sh v0.0.0-ciuniversal DMG build passed with Xcode 27.0 (27A266a) / SDK 27.0.Checklist
./scripts/release.sh v0.0.0-ci, exact source above)Crisp/Resources/Localizable.xcstringsNative SwiftUI fixtures, not live-monitor screenshots: