🎬 XFlix v2.2.0
Responsive Design & UX
- Full responsive layout for all screen sizes: ultra-wide (>1920 px), large desktop, tablet landscape (≤1024 px), tablet portrait (≤768 px), phone (≤480 px), small phone (≤360 px).
- Mobile bottom navigation bar — visible below 768 px, replaces the hidden desktop nav links.
- Fullscreen player cleanup — related videos and comments are automatically hidden when the video player enters fullscreen mode.
- Video player controls, modals, grids, cards, and filters all adapt to each breakpoint.
Security Hardening
requireAdminre-validates role from DB — demotions now take effect immediately instead of being ignored until JWT expiry (7 days).- Removed hardcoded DB password fallback (
db.js) — the pool no longer silently uses a default password whenDB_PASSis missing. - HTML injection fix in password-reset emails —
usernameandresetUrlare now escaped before HTML template interpolation. - Stored XSS mitigation in comments — HTML tags are stripped from comment content on write.
- LIKE wildcard escaping —
%and_characters in search input are now escaped to prevent unexpected wildcard matching.
Install Script
- Admin account creation now passes credentials via environment variables instead of shell string interpolation (prevents injection from special characters in passwords).
- Credential summary no longer prints secrets to the terminal — references
.admin-credsand.envfiles instead.
Commits since v2.0.0
7fdb4e6v2.2: security hardening, responsive design docs, install.sh improvements5ebfec7feat: responsive design (all screens) + hide suggestions in fullscreen
Full Changelog: v1.0.0...v2.2.0