media-rip/backend/app
xpltd 3d778246ca Best quality format, password UX, mobile columns
Best quality format:
- Synthetic 'bestvideo+bestaudio/best' entry added at top of format
  list when the best separate video stream exceeds the best pre-muxed
  format. Shows as 'Best quality (1920x1080)' in Video+Audio group.
- YouTube typically only has 360p pre-muxed but 1080p+ as separate
  streams — users can now select full quality with auto-merge.
- Only appears when there's actually a quality advantage vs pre-muxed.

Password change UX:
- Enter key on confirm password field submits the change
- Auto-logout 1.5s after successful password change
- User sees '✓ Password changed' before being redirected home

Mobile table:
- Status column hidden on mobile (<640px) alongside Progress
- Only Name + Actions columns shown — clean two-column layout
- Removed mobile-specific status badge font tweaks (column gone)
2026-03-19 05:29:41 -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 Best quality format, password UX, mobile columns 2026-03-19 05:29:41 -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