fix(desktop): coalesce reference recovery and expose slow frame reads - #71
Merged
Merged
Conversation
rldyourmnd
marked this pull request as ready for review
October 1, 2026 21:24
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.
Repeated successors of the same missing H.264 reference could request another large recovery picture while the first repair was still in transit. The receiver now coalesces that episode until a key arrives, an actual reader fails or the existing key-reader deadline allows retry. Failed control admission never arms the hold; later gaps and decode failures retain recovery.
Slow successful frame reads now report header/body timing and metadata. Scoped native input timing records dispatch/queue timing and event class without codes, coordinates or contents, allowing measurements to use the viewer's local action origin.
Validation: the real-stream regression failed on old behavior by queuing a second recovery, then passed on both Iroh and Noq. Units cover bounded retry, reset and a full control queue. Strict workspace/all-target/all-feature lint passed on macOS and Linux. Focused all-feature suites passed 216 tests on macOS and 219 on Linux (nine explicit display-dependent ignores). Both optimized builds were installed with executable digests, backups and original identities retained. Planned remote restart recovered the same viewer in 1,283 ms. Visible local-event-origin timing and sustained native follow-up are continuing.
The installed predecessor's ten-minute native observation retained Full HD and received 8964 frames/343 input ACKs with zero reconnects, but its 5433 ms maximum decoded-image age failed continuity acceptance. Three visible target transitions were independently confirmed; automation-origin timing remains unqualified. This PR does not close native latency, quality or sustained stability gates. Evidence boundary: docs/reports/rds-reference-recovery-20261002.md.