fix: cancel pending automatic VNC retry on manual reconnect

TE
6d ago
+81-4

A user who manually reconnects a Cloud desktop while an automatic retry is pending can have the new connection replaced when the old retry wakes. Manual reconnect now cancels that pending task before opening the new connection. Stop and close use the same cancellation helper.

Reviewer finding: “RemoteVNCSession manual reconnect does not cancel pending automatic retry; delayed retry later calls connect and replaces healthy user connection.” This is an inherited base issue, split from the geometry audit PR where it was discovered.

The regression schedules a retry, manually reconnects through a scripted RFB handshake, waits for streaming, then checks that the retry deadline does not open another transport or replace the connected client. The script keeps reads suspended until close; cleanup closes the session. The existing retry task remains bounded and cancellable. No visual or layout changes.

Validation: static prepush gate passes. Exact-head native suite 94ff60082a3b395ae66a758b is queued for 08920fc6843a4e7e310a08a2de22bfafaff027eb; its regression requires a successful streaming connection to survive the stale retry deadline.

No capture: this changes reconnect task cancellation only, with no visual or layout change; the regression verifies connection identity and streaming state.

Independent review: review-26697 (Codex gpt-6-astra high) returned SHIP at 08920fc6843a4e7e310a08a2de22bfafaff027eb, with no actionable findings.

Check reconciliation: the Rust plan failure is inherited from base 17dfb9d3 (missing chief-kernel manifest entry, fixed on NEXT by 356c37556dd); this PR changes neither Rust path. Crash-class rules, release-notary, and aggregate Guard status are reported base reds.

HOLD: exact-head native suite 94ff60082a3b395ae66a758b must pass.

Agent session: agent session