[ { "guid": "ceeb3040-9fe5-451f-ac05-8587ea3c3718", "name": "Info Popup", "description": "Permet aux administrateurs de diffuser des messages popup aux utilisateurs lors de leur connexion.", "overview": "Messages popup pour les utilisateurs Jellyfin", "owner": "crocodile13", "category": "General", "imageUrl": "https://raw.githubusercontent.com/crocodile13/jellyfin-info-popup-extention/main/assets/icon.png", "versions": [ { "version": "4.0.0.0", "changelog": "Changed\n- Fresh stable baseline on a new 2-channel release workflow. Cumulative of all 3.8.x iteration (~10 weeks). The main branch now tracks stable releases only; the dev branch carries iterative pre-releases through a dedicated manifest-dev.json channel. make promote VERSION_ARG=X.Y.Z.W ships a tested dev version to stable via a clean rebuild on main. The dev plugin appears in Jellyfin catalogs as *Info Popup (Dev)* to disambiguate from stable.\nAdded\n- Rich-text WYSIWYG editor in \"My Messages → Send\" (parity with admin): contenteditable mode by default with Raw markdown toggle, keyboard shortcuts (Ctrl+B/I/U, Ctrl+Shift+S), live char counter, active-state highlighting on toolbar buttons, tooltips with shortcut hints.\n- Read receipts — admin Messages tab shows a per-message seen/targeted badge, click opens a modal listing exactly who has seen / not seen each message. New endpoint GET /messages/{id}/views.\n- Search filters — instant client-side filter bar above the Messages list and the Rights cards. Escape clears, select all and bulk-apply only touch visible rows.\n- Maintenance section in admin Settings: clear read receipts, clear all replies, purge soft-deleted messages, reset settings to defaults — each gated by a confirmation prompt.\n- \"Administrator\" role in the Rights tab — admin users now display a dedicated greyed-out card with the Administrator role pre-selected (instead of a misleading \"Reader\" or \"Custom\").\n- Real-time reply toast notifications with instant first-poll, bootstrap silencing only above 3 pending replies.\n- 8-language i18n parity maintained across all new features.\nFixed\n- First-load styling glitch after fresh install — Cache-Control: no-cache, must-revalidate on injected HTML response (issue #2). A regular F5 is now enough; no more hard refresh required.\n- Self-sent messages no longer appear in \"Received\" views for the sender (popup, Inbox, /messages user view).\n- Memory leaks — popup keydown and overlay keydown/hashchange/popstate listeners are now detached on every close path, not just on Escape.\n- Reply toast notifications were silenced on first connection if localStorage was empty.\nSecurity\n- DTO List fields capped (TargetUserIds, Ids, UserIds).\n- Daily message quota check moved atomically inside MessageStore.Create.\n- IsOwner comparisons normalized via PermissionService.NormalizeUserId defensively.\n- X-Content-Type-Options: nosniff + explicit charset=utf-8 on GET /InfoPopup/{module}.js.", "targetAbi": "10.11.0.0", "sourceUrl": "https://github.com/crocodile13/jellyfin-info-popup-extention/releases/download/v4.0.0.0/infopopup_4.0.0.0.zip", "checksum": "9069574043757ee1f448bf717419e27a", "timestamp": "2026-05-31T11:31:44Z" } ] } ]