Skip to content

fix(library): match Watch streams to active owner profile#139

Merged
papi-ux merged 1 commit into
masterfrom
fix/watch-stream-paused-guard
Jul 11, 2026
Merged

fix(library): match Watch streams to active owner profile#139
papi-ux merged 1 commit into
masterfrom
fix/watch-stream-paused-guard

Conversation

@papi-ux

@papi-ux papi-ux commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • hide Watch Stream for foreign-owned paused sessions that have no active owner stream
  • derive Watch launch resolution and FPS from the owner’s live capture/encoder status instead of the viewer’s synchronized display preference
  • add regression coverage for paused-session eligibility and mismatched owner/viewer stream profiles

Root cause

Nova treated any resumable foreign-owned session as watchable and built the Watch resume mode from client-scoped sync settings. A paused session has no owner stream to join, while a viewer-local mode can differ from the active owner profile and be rejected by Polaris’ strict Watch admission check.

Verification

  • ./gradlew --no-daemon testDebugUnitTest
  • ./gradlew --no-daemon -PnovaAbis=arm64-v8a assembleNonRoot_gameDebug
  • git diff --check
  • independent pre-commit review passed after strengthening the profile-mismatch fixture

Device smoke

Verified with two independently paired debug clients: a headless Android emulator as owner and a Retroid Pocket 6 as viewer.

  • Retroid Library showed WATCH ACTIVE STREAM with the owner’s live 1920x1080 60fps profile
  • Nova sent a Watch resume request with mode=1920x1080x60 and watch=1
  • Polaris pinned the viewer to the active owner profile and reported two active sessions
  • Retroid rendered live MOUSE: P.I. For Hire video with video/audio startup and no 412, black frame, or error overlay
  • both test client sessions were disconnected after the smoke

@papi-ux
papi-ux merged commit 64540e8 into master Jul 11, 2026
6 checks passed
@papi-ux
papi-ux deleted the fix/watch-stream-paused-guard branch July 11, 2026 20:46
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