media-rip/backend/app
xpltd 5da223c5f8 Admin UX, change password, mobile responsive, loading messages
Admin:
- Username field autofocused on login page
- Change password section in Settings tab — current password
  verification, new password + confirm, min 4 chars, updates
  bcrypt hash at runtime via PUT /admin/password
- Password change updates stored credentials in admin store

Loading messages:
- Replaced 'Peeking at the URL' with: Scanning the airwaves,
  Negotiating with the server, Cracking the codec, Reading
  the fine print, Locking on target

Mobile responsive:
- Progress column hidden on mobile (<640px) — table fits viewport
- Action buttons compact (28px) on mobile with 2px gap
- Status badges smaller on mobile (0.625rem)
- Filter tabs scroll horizontally, Download All + Clear go
  full-width below as equal-sized buttons
- min-width:0 on section containers prevents flex overflow
- download-table-wrap constrained with max-width:100%
2026-03-19 05:12:03 -05:00
..
core GSD: M002/S01 complete — Bug fixes + header/footer rework 2026-03-18 21:16:24 -05:00
middleware M001: media.rip() v1.0 — complete application 2026-03-18 20:00:17 -05:00
models Fix playlist support, session persistence, audio detection, progress errors 2026-03-19 02:53:45 -05:00
routers Admin UX, change password, mobile responsive, loading messages 2026-03-19 05:12:03 -05:00
services Download button gating, format defaults fix, layout/UX polish 2026-03-19 04:50:52 -05:00
__init__.py M001: media.rip() v1.0 — complete application 2026-03-18 20:00:17 -05:00
dependencies.py M001: media.rip() v1.0 — complete application 2026-03-18 20:00:17 -05:00
main.py M001: media.rip() v1.0 — complete application 2026-03-18 20:00:17 -05:00