Skip to content

Support automatic Wayland resize handoff with verified remote client retirement #2076

Description

@vincentkoc

Summary

Automatic Wayland resize-ownership handoff remains deferred pending exact remote client identity and lifecycle acknowledgement.

A fault-injected split-transport spike disproved local EOF plus successor reconnect as proof that WayVNC released its previous layout owner. This tracks the missing prerequisite, not a proposed transport-only workaround.

Related base change: #2075

Current Behavior

Crabbox input control and WayVNC layout ownership are distinct. The base PR requests resizing only for the confirmed controller, but a previous viewer can retain WayVNC layout ownership until its remote client is destroyed. The base PR's UI therefore tells users to close the previous sizing viewer, then reconnect the new controller.

Bounded Experiment

The independently reviewed spike used actual WayVNC 0.9.1 with independent SSH forwards and a fault-injected split TCP proxy. The proxy deliberately retained the old remote connection while allowing the old local transport to report EOF and the successor to complete a fresh RFB handshake.

The previous WayVNC client remained present, and the successor's resize returned status 1. Backend process identities and an unrelated observer were unchanged.

This is a counterexample to the proposed retirement proof. It is not a reproduction of an unmodified SSH failure or Crabbox's healthy/default shared-tunnel path. It does not establish that the default path has this failure.

Required Invariant

Bind the exact departing bridge generation to a WayVNC client ID scoped to the specific server process lifetime. Before allowing a successor to claim automatic layout ownership, obtain a trusted client-disconnected event or synchronous targeted-disconnect acknowledgement for that exact client.

Local EOF, completion of a fresh RFB handshake, an IP address, a client count, or differences between client lists are not sufficient identity or retirement evidence.

Acceptance Criteria

  • Establish an authenticated, exact binding between the bridge generation, remote WayVNC client, and server process identity.
  • Confirm that client's remote retirement before claiming automatic resize handoff succeeded.
  • Fence stale acknowledgements, reconnects, and server-process replacement.
  • Preserve unrelated observers and backend desktop processes; no broad disconnect or desktop restart as a handoff shortcut.
  • Prove healthy handoff through the actual default shared-transport path.
  • Keep a distinct fault-injected split-transport test that retains the old remote owner and demonstrates that no false handoff success is reported.
  • Retain visible close-and-reconnect guidance until the remote identity/lifecycle contract is implemented and verified.

No implementation PR or protocol change is proposed here until that prerequisite has a defensible design and executable proof.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P2Normal priority bug or improvement with limited blast radius.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:securityThis issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.

Fields

Priority

None yet

Start date

None yet

Target date

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions