- Add TimelapseEditorModal component with visual timeline scrubber
- Add timelapse processing endpoints (info, thumbnails, process)
- Add TimelapseProcessor service using FFmpeg for video processing
- Support trim (start/end), speed (0.25x-4x), and audio overlay
- Add Edit button to TimelapseViewer
- Fix browser caching with timestamp query parameter
- Change default timelapse playback speed from 2x to 1x
- frontend/src/components/TimelapseViewer.tsx:17 - Changed from 0.5 to 2
2. Archive page: hide failed prints filter with persistence
- Added hideFailed state initialized from localStorage.getItem('archiveHideFailed')
- Added localStorage persistence via useEffect
- Added "Hide Failed" toggle button (red styling when active) next to the Favorites button
- Filter is automatically bypassed when viewing the "Failed Prints" collection
- "Reset" button also clears this filter
The filter state persists across page refreshes and browser sessions via localStorage.