Skip to content

fix(desktop): recover stalled video and preserve native usability - #64

Merged
rldyourmnd merged 21 commits into
mainfrom
fix/desktop-control-recovery
Sep 30, 2026
Merged

rldyourmnd merged 21 commits into
mainfrom
fix/desktop-control-recovery

Conversation

@rldyourmnd

@rldyourmnd rldyourmnd commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

A native desktop could remain responsive while video stopped, and covered windows accumulated unsubmitted GPU staging allocations. Acquire a usable surface before upload, retain partially read IPC framing in one owned reader, and admit bounded media work before capture. Three owned permits cover capture/queue/write/unacknowledged work; recovery keyframes complete before successors. Live native bitrate updates retain codec references, skipped codec frames preserve sequence, admission waits do not penalize quality, and unchanged elevated RTT no longer repeatedly drives a clean path to the bitrate floor. Remove scheduled 240-frame IDRs while preserving startup, geometry and explicit resync.

Use the ordinary window level, one generated icon across the app/Dock/native window/launcher, and a native startup chooser defaulting to Full HD. Appended DesktopV3/DesktopProfile variants carry explicit height without renumbering old tags. Explicit macOS Ctrl+V transfers bounded UTF-8 text before input; X11 owns CLIPBOARD and ICCCM INCR. Reassembly separates idle and total deadlines. View-only sessions refuse publication. Existing wire tags remain stable; new profile/clipboard functionality requires coordinated installations.

Concurrent same-credential managed connects join the owning dial without canceling it when a waiter disappears. Readiness publishes after the owner reply; credential conflicts and verified name resolution remain enforced. Pinned ticket hints survive reconnects, and names freeze to the authenticated identity.

Rotating private logs and atomic live snapshots expose UI/encoded/decoded/presented age, occlusion, queues, actual GPU uploads and recovery causes. Receiver timeouts retain sequence/partial byte counts; sender health distinguishes queued and transport-acknowledged frames. Media/clipboard contents remain excluded.

Validation: regressions retain failures before priority/retry/framing/rate/IDR/dial fixes. Mac all-feature workspace passed 770 tests (2 ignored) on the manager increment; the final viewer hint increment has full CLI tests and strict clippy. Linux all-feature workspace passed 772 tests (11 ignored) using the actual pinned compiler; dedicated Xvfb separately passed native clipboard Unicode/INCR plus 6 input/display checks. Both OS CI, native artifact lanes, CodeQL and supply-chain checks are current-head evidence. Installed two-device native screen/input/text-paste and recovery observations are recorded privately. The public scoped report distinguishes intermediate failed latency/soak outcomes and remaining physical/hardware/mixed-network qualification; no milestone closure is claimed.

Comment thread crates/rds-agent/src/priority_tests.rs Fixed
@rldyourmnd rldyourmnd changed the title fix(desktop): prioritize control and preserve reconnect delays fix(desktop): preserve control latency and standard app behavior Sep 30, 2026
@rldyourmnd rldyourmnd changed the title fix(desktop): preserve control latency and standard app behavior fix(desktop): recover stalled video and preserve native usability Sep 30, 2026
@rldyourmnd
rldyourmnd merged commit 2ca2162 into main Sep 30, 2026
23 checks passed
@rldyourmnd
rldyourmnd deleted the fix/desktop-control-recovery branch September 30, 2026 21:49
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.

2 participants