Skip to content

Conversation

@haefele
Copy link
Owner

@haefele haefele commented Jan 17, 2026

No description provided.

Extract shared test fixtures and mocks from RemoteViewer.IntegrationTests into a new RemoteViewer.TestFixtures project. Update namespaces and using directives accordingly. Add RemoteViewer.TestFixtures.csproj with necessary dependencies and project references. Update test projects to reference the new shared fixture project, improving reusability and maintainability.
Introduce ClientSendGrain to queue and coalesce screen frames per viewer, ensuring only the latest frame is delivered after explicit client ack. Update client/server protocol to support frame acknowledgments. Add integration tests for coalescing logic. Improve logging and refactor message delivery for reliability and backpressure.
@haefele haefele force-pushed the dah/frame_dropping branch from c091ef4 to 63ad51b Compare January 17, 2026 13:06
haefele and others added 2 commits January 17, 2026 21:59
Add connectionId parameter to AckFrame to support per-connection frame
tracking, allowing multiple viewer connections to have independent frame
buffers.

Fix synchronization issue in FrameSendState where Interlocked.Exchange
was used on nullable structs (QueuedMessage?) which doesn't work correctly
in .NET. Replaced with proper lock-based approach that atomically manages
both _inFlight and _pendingFrame state.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@haefele haefele force-pushed the dah/frame_dropping branch from 2d6721b to 18733c3 Compare January 18, 2026 10:28
@haefele haefele merged commit 3e83856 into main Jan 18, 2026
2 checks passed
@haefele haefele deleted the dah/frame_dropping branch January 18, 2026 12:00
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