Repository navigation
Keep reconnect and PiP recovery bounded across transient successes - #121
Open
alantangok wants to merge 1 commit into
Open
alantangok wants to merge 1 commit into
alantangok wants to merge 1 commit into
Conversation
A brief SDK OK or display-layer rendering status currently clears the retry counter, allowing repeated failure/success cycles to restart recovery forever. Retain the three-attempt budget until five continuous healthy seconds, keep the existing retry delays and timeouts, and hold an opaque recovery overlay. Do not accept the SDK network-failure flag as successful recovery. Exercise the production poll and PiP recovery methods with fake dependencies and a controlled clock, and run these regressions in the existing build CI. The baseline fails eight behavior checks; the fix passes all 32 checks and the unsigned Release iphoneos build with Xcode 26.6. Device confirmation covers the older stable candidate. This current-main port still needs physical-device restore/PiP validation.
Contributor
Author
|
I use OpenParsec daily on both my iPhone and iPad now, after often being unable to connect with AnyDesk. My goal is to help make this open-source remote desktop client as stable and easy to use as possible, for everyday use and gaming. I'd also like to learn from the UX of AnyDesk, Microsoft Remote Desktop, RustDesk, Sunshine/Moonlight and other remote desktop and cloud gaming tools. |
Contributor
Author
|
Another idea I'd love to explore is a Parallels Coherence-style mode on iPad, where remote apps could appear as separate windows instead of showing the whole remote desktop. I'm not sure whether the Parsec SDK can support this, but it could be an interesting direction to investigate. |
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.
After a background restore, a brief
PARSEC_OKor display-layer.renderingsample clears the retry counter. If it fails again immediately, reconnect/PiP recovery can keep restarting and expose flashing frames.Require five healthy seconds before renewing the three-attempt budget. Keep the existing retry delays and connection/approval timeouts, hold an opaque overlay during reconnect, and reject SDK network failure as successful recovery. PiP retries also respect backoff and stay stopped after exhaustion.
This builds on #108 and #109, using current main with its existing renderer, input and settings code.
Validation:
python3 scripts/check_stream_recovery.py: 32 policy and production-method checks pass. The same harness produced eight behavioral failures against the original main methods. It uses fake SDK/display-layer dependencies and a controlled clock, and now runs in the existing build workflow.iphoneosbuild passes with Xcode 26.6 and the pinned SDK submodule.