Skip to content

Unify channel playlist management#41

Merged
Jamesllllllllll merged 1 commit intomainfrom
codex/issue-39-unify-playlist-surface
Mar 24, 2026
Merged

Unify channel playlist management#41
Jamesllllllllll merged 1 commit intomainfrom
codex/issue-39-unify-playlist-surface

Conversation

@Jamesllllllllll
Copy link
Copy Markdown
Owner

Summary

Unifies playlist management around the channel page, tightens moderator access by channel capability, and consolidates playlist polling and channel management flows.

Resolves #39.

What Changed

  • Moved channel-scoped playlist, blacklist, setlist, blocked chatter, and VIP token workflows onto /$slug with shared channel management surfaces.
  • Added channel-scoped moderation and viewer lookup APIs, plus playlist-management server helpers and tests for moderator capability enforcement.
  • Enforced action-level permissions on channel playlist mutations so moderators only get the capabilities enabled for that channel.
  • Consolidated channel playlist polling so moderators and owners share a single playlist query/cache path instead of double-polling the same endpoint.
  • Refined channel-page search and add flows, including fixed-width user popovers, debounced viewer lookup, improved action-button sizing, and played-history search input spacing.
  • Fixed VIP token balance autosave loops when changing request kind between regular and VIP.
  • Rewrote remaining user-facing copy to present-tense wording and moved the multi-platform adapter feature request out of docs into GitHub issue [Feature]: Support multiple streaming platforms through adapters #40.

How To Test

  1. Run npm run lint
  2. Run npm run typecheck
  3. Run npm test
  4. Run npm run build
  5. Open a channel page as a logged-out viewer and confirm the public playlist, rules, community panels, and played history render correctly.
  6. Open the same channel page as an owner or moderator and confirm playlist management appears in the main playlist section with one live-updating view.
  7. Verify moderators can only perform the actions enabled by that channel's moderator permissions.
  8. Use Add to playlist and Add for user from channel search results and confirm the user search is debounced and shown in a fixed-width popover.
  9. Change a queued request to VIP and back to regular, and confirm the VIP token balance updates once with no repeating setVipTokenCount moderation calls.

Screenshots Or UI Notes

  • Channel pages now serve as the main playlist-management surface for owners and moderators.
  • The public playlist and management view share a more consistent layout, with mod controls layered onto the channel playlist instead of a separate dashboard page.
  • Add for user now uses a stable popover instead of expanding the row inline.

Checklist

  • I tested the change locally
  • I updated docs or examples if needed
  • I called out any follow-up work or known limitations

@github-actions
Copy link
Copy Markdown

Preview deployment updated.

App: https://request-bot-pr-41.jameskeezer.workers.dev
Frontend worker: request-bot-pr-41
Backend worker: request-bot-backend-pr-41

@Jamesllllllllll Jamesllllllllll merged commit 1268775 into main Mar 24, 2026
3 checks passed
@Jamesllllllllll Jamesllllllllll deleted the codex/issue-39-unify-playlist-surface branch March 24, 2026 06:07
Jamesllllllllll added a commit that referenced this pull request Apr 12, 2026
…list-surface

Unify channel playlist management
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.

Epic: unify playlist management onto the public channel page

1 participant