Skip to content

feat: complete watch party RBAC and assignment experience - #9

Merged
kmanisk merged 5 commits into
mainfrom
feat/assignment-final
Oct 27, 2026
Merged

kmanisk merged 5 commits into
mainfrom
feat/assignment-final

Conversation

@kmanisk

@kmanisk kmanisk commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Flickfolk now covers the assignment's Host / Moderator / Participant workflow while retaining the existing synchronized player, provider capabilities, chat, reactions and peer-to-peer voice.

  • One shared permission matrix; the server reads roles from room state before every privileged operation. Host assignment/removal, moderator-priority failover and socket replacement preserve exactly one host.
  • Participants request play/pause/seek/source changes through a bounded reviewer-private queue. Approvals use the same playback/source mutation helper as direct controls; stale, expired and departed requests are cleared.
  • People management, removal confirmation/session refresh protection, request review/results and role notifications fit the existing Warm Dusk UI.
  • Stable kinetic Home headline with hidden-tab timer cleanup, reduced-motion fallback and improved narrow-phone preview. Refreshed evaluator guide, event mapping, architecture and screenshots.

Validation on the final feature code:

  • npm run lint and npm run typecheck: pass.
  • npm test: 203 unit/integration tests pass.
  • npm run test:e2e: build passes; 36/36 browser tests pass, including existing media, sync, voice, reconnect and host-promotion coverage.
  • Manual browser inspection: Home/Room at 320, 360, 390, 430, 768, 1366, 1440 and 1920px; no overflow or hidden composer. Request review, management and confirmation inspected on phone.
  • Actual remote MP4 and YouTube SDK playback succeeded locally without captured browser console errors.
  • CI additionally builds the production Docker image and checks its non-root user and health endpoint. Merge only after these checks pass; no local container engine is installed.

The baseline sync test had a pending 150ms throttled seek when it captured a revision. It now pauses before the seek check and waits for the final 59.9s position; revision and no-guest-control assertions remain intact. Playback engine logic is unchanged.

After green CI/merge, deployment must use the exact main SHA on the existing single-instance Flickfolk Render service. Production verification is a separate release gate; it has not been claimed complete here. Manual host transfer remains outside this mandatory scope; automatic failover is preserved.

@kmanisk
kmanisk merged commit 1f82ce9 into main Oct 27, 2026
2 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