PHASE-83–86: Integration tests, client audits, code commentary, and standards (425→441 tasks)#77
Merged
infinityabundance merged 20 commits intomainfrom Mar 5, 2026
Conversation
- Add stream_backend_connector.h/.cpp: C++ class bridging network_client_t to the Vulkan pipeline (upload->render->present) with typed callbacks - Add frame_ring_buffer.h/.c: lock-free SPSC ring buffer (C11 _Atomic, capacity 4 frames) for decode-thread to render-thread frame handoff - Add X11VulkanSurface.h/.cpp: RAII C++ wrapper for vulkan_x11 backend with __has_include guards for X11/Vulkan SDK headers - Add WaylandVulkanSurface.h/.cpp: RAII C++ wrapper for vulkan_wayland backend with __has_include guards for Wayland/Vulkan SDK headers - Add tests/vulkan/test_vulkan_integration.c: integration tests covering ring-buffer push/pop, full-buffer drop, headless vulkan_init, frame upload without GPU, and concurrent SPSC stress test via pthreads - Add benchmarks/vulkan_renderer_bench.cpp: upload+render+present latency benchmark for 1080p/4K NV12 frames with pass/fail 2ms target Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nents - 24.8: src/vr/vr_latency_optimizer.h/.c — VRLatencyOptimizer with clock_gettime frame timing, 60-frame rolling window, 90 Hz target check (11111 µs), and reprojection stub - 24.9: tests/integration/test_vr_integration.c — 6 CI-safe integration tests covering latency optimizer, 90 Hz pass/fail, reprojection flag, OpenXR mock pipeline, and profiler integration - 29.3: android/.../transfer/FileTransferManager.kt — Coroutine-based 64 KB chunked file transfer with DATA_TRANSFER (0x08) packet framing - 29.4: ios/.../Rendering/VideoDecoder.swift — LibvpxDecoder stub adds VP9/AV1 software decode path; codecTypeFromByte remapped 0-3 - 29.5: ios/.../Utils/ClipboardManager.swift — Singleton clipboard sync with 1 s timer, hasStrings privacy guard, delegate protocol - 29.6: ios/.../Transfer/FileTransferManager.swift — UIDocumentPicker delegate with 64 KB chunked send, receive stub, cancel, buildPacket - 29.7: ios/.../UI/HUDOverlay.swift — SwiftUI HUD with swipe-up/down gesture, slide-in animation, HUDStats binding - 29.8: ios/.../Notifications/PushNotificationManager.swift — APNs token registration, stream-invite local notifications, remote payload parsing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… readiness PHASE-33: - Add .clang-format (Google style, 4-space indent, 100-col limit) - Add .clang-tidy (bugprone, cert, modernize, performance, readability checks) - scripts/check_coverage.sh: gcov/lcov coverage with configurable threshold - scripts/run_sanitizers.sh: ASan/UBSan/TSan build+test passes - scripts/run_cppcheck.sh: cppcheck static analysis with optional XML output PHASE-34: - tests/e2e/test_full_stream.sh: Docker-based 60s stream E2E test - benchmarks/encode_latency_bench.c: raw encoder latency (1000 iters, NV12 720p) - benchmarks/network_throughput_bench.c: loopback TCP 10 MB throughput - benchmarks/README.md: benchmark docs with build instructions and targets - packaging/rootstream.spec: RPM spec for Red Hat/Fedora - packaging/build_appimage.sh: AppImage creation script - docs/QUICKSTART.md: add 'Running Benchmarks' and 'Running E2E Tests' sections Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…update microtasks.md to 100% Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update microtasks.md with continued subphasing and implementation
Advance microtask registry from 84% → 100%: implement PHASE-32–34, complete PHASE-24 & PHASE-29
Mar 4, 2026
… Fanout, Collaboration & Annotation (240/240) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Advance microtask registry from 84% → 100%: implement PHASE-32–34, complete PHASE-24 & PHASE-29
Add PHASE-35–38: Plugin System, Audio DSP, Multi-Client Fanout, Collaboration & Annotation (221→240 microtasks)
Mar 4, 2026
…ersistence, Captions (258/258) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-35–38: Plugin System, Audio DSP, Multi-Client Fanout, Collaboration & Annotation (221→240 microtasks)
Add PHASE-39 through PHASE-42: Quality Intelligence, Relay, Session Persistence, Captions (258/258)
Mar 4, 2026
…s, pHash (277/277) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-39 through PHASE-42: Quality Intelligence, Relay, Session Persistence, Captions (258/258)
Add PHASE-43–46: Stream Scheduler, HLS Output, Viewer Analytics, Perceptual Frame Hashing
Mar 4, 2026
…, Jitter Buffer (295/295) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-43–46: Stream Scheduler, HLS Output, Viewer Analytics, Perceptual Frame Hashing
Add PHASE-47–50: Stream Watermarking, ABR Controller, Content Metadata, Jitter Buffer (277→295 tasks)
Mar 4, 2026
…ser (312/312) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-47–50: Stream Watermarking, ABR Controller, Content Metadata, Jitter Buffer (277→295 tasks)
Add PHASE-51–54: Packet Loss Concealment, Token Bucket Rate Limiter, Frame Rate Controller, Stream Config Serialiser (295→312 tasks)
Mar 4, 2026
… Hot-Reload Manager (361/361) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-59–62: Multi-Stream Mixer, Bandwidth Probe, Packet Reorder Buffer, Adaptive GOP Controller (329→345 tasks)
Add PHASE-63–66: Stream Health Monitor, FEC Codec, Clock Sync, Plugin Hot-Reload (345→361 tasks)
Mar 5, 2026
…, Bitrate Ladder, Loss Estimator (377/377) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-63–66: Stream Health Monitor, FEC Codec, Clock Sync, Plugin Hot-Reload (345→361 tasks)
Add PHASE-67–70: Frame Rate Controller, Output Registry, Bitrate Ladder, Loss Estimator (361→377 tasks)
Mar 5, 2026
…tore, Buffer Pool (393/393) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-67–70: Frame Rate Controller, Output Registry, Bitrate Ladder, Loss Estimator (361→377 tasks)
Add PHASE-71–74: Timestamp Sync, Session Limiter, Tag Store, Buffer Pool (377→393 microtasks)
Mar 5, 2026
…eue, Retry Manager (409/409) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-71–74: Timestamp Sync, Session Limiter, Tag Store, Buffer Pool (377→393 microtasks)
Add PHASE-75–78: Event Bus, Chunk Splitter, Priority Queue, Retry Manager (393→409 microtasks)
Mar 5, 2026
…nal Router, Drain Queue (425/425) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-75–78: Event Bus, Chunk Splitter, Priority Queue, Retry Manager (393→409 microtasks)
Add PHASE-79–82: Flow Controller, Metrics Exporter, Signal Router, Drain Queue (409→425 microtasks)
Mar 5, 2026
…entary, Standards (441/441) Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot
AI
changed the title
Add PHASE-79–82: Flow Controller, Metrics Exporter, Signal Router, Drain Queue (409→425 microtasks)
PHASE-83–86: Integration tests, client audits, code commentary, and standards (425→441 tasks)
Mar 5, 2026
…deoRenderer bridge Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Copilot stopped work on behalf of
infinityabundance due to an error
March 5, 2026 14:52
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
rootstream_coreSTATIC library from COMMON_SOURCES + LINUX_SOURCES (minus main.c); keeprootstream+rstr-playeras thin executables linking itclients/kde-plasma-client/CMakeLists.txtagainstrootstream_corevia add_subdirectoryinclude/as PUBLIC target_include_directories on rootstream_corerootstreamandrstr-playerexecutables still link cleanly (no duplicate symbols)include/rootstream_client_session.h— rs_client_session_t, rs_video_frame_t, rs_audio_frame_t, rs_on_video_frame_fn, rs_on_audio_frame_fnsrc/client_session.c— lift service_run_client() loop into reusable session; decoder+audio state inside session struct; atomic stop flagsrc/service.c::service_run_client()— rewrite as thin wrapper over rs_client_session_* (preserves SDL path)clients/kde-plasma-client/src/videorenderer.hstub — full QQuickFramebufferObject-based VideoRenderer with submitFrame(rs_video_frame_t*) slotclients/kde-plasma-client/src/videorenderer.cppstub — OpenGL NV12→RGBA texture upload, frame copy path for MVPclients/kde-plasma-client/src/stream_backend_connector.cpp— connects rs_client_session callbacks to VideoRenderer::submitFrame and audio pipelineRootStreamClient::connectToPeer()/connectToAddress()→ rs_client_session_create() + set callbacks + run on QThreadRootStreamClient::disconnect()→ rs_client_session_request_stop() + thread joindocs/IMPLEMENTATION_STATUS.mdto accurately reflect what exists vs what is stubbeddocs/architecture/client_session_api.md— API reference + usage guidedocs/microtasks.md441 → 465💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.