Skip to content

fix(desktop): recover stale control even while video progresses - #100

Merged
rldyourmnd merged 1 commit into
mainfrom
fix/desktop-control-liveness-20261005
Oct 5, 2026
Merged

rldyourmnd merged 1 commit into
mainfrom
fix/desktop-control-liveness-20261005

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

A native desktop could keep receiving pictures while control replies stopped progressing, so the video-only watchdog left input apparently connected for long periods. Managed and direct native paths now track independent control progress with at most 16 exact outstanding heartbeat tuples and checked session-local sequence numbers. Matched monotonic send time is the evidence: late, duplicate, unknown and retired echoes cannot make old control current.

An ordinary eight-second control-progress budget ends only the owning desktop attempt, with existing no-replay behavior and managed-peer/unrelated-stream retention. Clipboard retains its existing 30-second absolute allowance and exact ID/size completion; repeated starts cannot extend that unconfirmed grace indefinitely. Wire, route/controller defaults, bitrate and server lifecycle are unchanged. Reopening and OS scheduling are not hard real-time guarantees.

Validation: 27 native CLI library tests passed, including a real framed pipe with continuously fresh video and no echoes that fails control at eight seconds, preserves one input without replay and drops held media; a sixty-second matched-echo pipe keeps its session. Exact tuple/order/retirement/exhaustion and clipboard grace regressions pass. An initial EOF-versus-completed-task race in the new fixture was corrected explicitly. Expanded strict workspace clippy and fmt pass. Both-platform full CI and installed acceptance are tracked separately; no complete runtime stability claim. Architecture/native contract, primary-source research and receipt updated.

@rldyourmnd
rldyourmnd merged commit 733c10c into main Oct 5, 2026
18 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