Skip to content

fix(ios-mirror): release a held gesture when a panel's frame queue overflows - #65

Merged
lauridskern merged 2 commits into
mainfrom
cindara/release-gesture-on-overflow
Oct 29, 2026
Merged

lauridskern merged 2 commits into
mainfrom
cindara/release-gesture-on-overflow

Conversation

@lauridskern

@lauridskern lauridskern commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

A panel that falls behind while touching a physical iPhone now releases its held touch when its video queue overflows. Other panels can then send input.

The hub queues the release on the existing input queue without blocking video. A touch that finishes after subscriber invalidation still records its pointer, so the queued release can lift it. Other subscribers keep their generation and gestures.

Regression tests cover overflow during a held or in-flight touch and preserve a healthy panel's gesture. The mirror hub, RPC, and Android startup diagnostics suites pass all 23 tests.

Review also found the shared CI privacy test could mistake timing digits for a forwarded port number. It now checks every startup message against the strict schema, with a fixed clock that reproduces the numeric collision. Unknown fields and raw content still fail validation.

Telemetry coverage is preserved: overflow release failures use the existing error capture, and drop counts retain their existing measurement. No production telemetry changed.

…erflows

A panel whose video queue overflowed got a new generation but kept the
shared iPhone pointer, so the touch stayed down and other panels were
blocked as busy. The hub now queues a release on overflow, and a touch
that lands after its panel was invalidated still records the pointer so
the queued release lifts it.
@lauridskern
lauridskern marked this pull request as ready for review October 29, 2026 14:59
@lauridskern
lauridskern merged commit 5bca9bf into main Oct 29, 2026
12 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