Skip to content

PHASE-83–86: Integration tests, client audits, code commentary, and standards (425→441 tasks)#77

Merged
infinityabundance merged 20 commits intomainfrom
copilot/continue-subphasing-microtasks
Mar 5, 2026
Merged

PHASE-83–86: Integration tests, client audits, code commentary, and standards (425→441 tasks)#77
infinityabundance merged 20 commits intomainfrom
copilot/continue-subphasing-microtasks

Conversation

Copy link
Contributor

Copilot AI commented Mar 4, 2026

  • PHASE-83–86 complete (441/441)
  • PHASE-93: rootstream_core Linkable Library (0/4)
    • 93.1 Refactor root CMakeLists.txt — extract rootstream_core STATIC library from COMMON_SOURCES + LINUX_SOURCES (minus main.c); keep rootstream + rstr-player as thin executables linking it
    • 93.2 Link clients/kde-plasma-client/CMakeLists.txt against rootstream_core via add_subdirectory
    • 93.3 Expose include/ as PUBLIC target_include_directories on rootstream_core
    • 93.4 Verify rootstream and rstr-player executables still link cleanly (no duplicate symbols)
  • PHASE-94: Client Session Callback API (0/4)
    • 94.1 Create 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_fn
    • 94.2 Create src/client_session.c — lift service_run_client() loop into reusable session; decoder+audio state inside session struct; atomic stop flag
    • 94.3 Refactor src/service.c::service_run_client() — rewrite as thin wrapper over rs_client_session_* (preserves SDL path)
    • 94.4 Add client_session.c to rootstream_core SOURCES in CMakeLists.txt
  • PHASE-95: KDE VideoRenderer — Real Implementation (0/4)
    • 95.1 Replace clients/kde-plasma-client/src/videorenderer.h stub — full QQuickFramebufferObject-based VideoRenderer with submitFrame(rs_video_frame_t*) slot
    • 95.2 Replace clients/kde-plasma-client/src/videorenderer.cpp stub — OpenGL NV12→RGBA texture upload, frame copy path for MVP
    • 95.3 Create clients/kde-plasma-client/src/stream_backend_connector.cpp — connects rs_client_session callbacks to VideoRenderer::submitFrame and audio pipeline
    • 95.4 Add new sources to KDE CMakeLists.txt SOURCES list
  • PHASE-96: KDE Client End-to-End Connection (0/3)
    • 96.1 Wire RootStreamClient::connectToPeer() / connectToAddress() → rs_client_session_create() + set callbacks + run on QThread
    • 96.2 Wire RootStreamClient::disconnect() → rs_client_session_request_stop() + thread join
    • 96.3 Wire video callback → VideoRenderer, audio callback → existing audio player pipeline
  • PHASE-97: Documentation Updates (0/3)
    • 97.1 Update docs/IMPLEMENTATION_STATUS.md to accurately reflect what exists vs what is stubbed
    • 97.2 Create docs/architecture/client_session_api.md — API reference + usage guide
    • 97.3 Update docs/microtasks.md 441 → 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.

Copilot AI and others added 4 commits March 4, 2026 15:59
- 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
Copilot AI and others added 2 commits March 5, 2026 14:26
…deoRenderer bridge

Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com>
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