Per user feedback: no separate control panel, no chat. Found that
PluginPageInfo has EnableInUserMenu/EnableInMainMenu (confirmed via
reflection on the real MediaBrowser.Model assembly, plus an Emby
community thread showing another plugin using EnableInUserMenu=true)
- a real, if barely documented, way to surface a plugin page to
regular users, not just admins, through the exact same
IHasWebPages/GetPages() mechanism as the admin settings page.
- Plugin.cs now registers a second page (partyPage.html) with
EnableInUserMenu=true + EnableInMainMenu=true
- partyPage.html replaces the old standalone control panel: no login
form, it runs inside the already-authenticated Emby web client and
calls the REST API via the global ApiClient
- Removed web/control-panel/ (the standalone app, its own login flow,
and the custom GET /WatchParty/app* static file routes in
WatchPartyService.cs) - no longer needed
- docs/architecture.md and README.md updated: the new mechanism, and
the honest limitation that comes with it (reaches Web/Electron
clients, not official mobile/TV apps - those allowlist plugin pages
client-side)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>