# Clio TODO ## Requirements / Expected Behaviors These are expected behaviors that should be preserved. If something breaks, check this list. ### Audio Player - [ ] Audio should auto-play when opening a recording - [x] Clicking a highlight should seek to that position and auto-play - [x] Clicking a search result should seek to that position - [ ] Skip buttons (-30s, -5s, +5s, +30s) should work - [ ] Speed controls should persist during playback - [ ] Native audio controls (play/pause, seek, volume) should work ### Navigation - [x] URL should show `#/recording/{id}` when viewing a recording - [x] URL should show `#/calendar/{date}` when viewing a specific day - [x] Browser back/forward should work correctly - [x] Refreshing page should preserve current view ### Dates/Times - [x] All dates should display in local timezone (not UTC) - [ ] Calendar should highlight today's date ### Highlights - [ ] Creating a highlight should save to API - [ ] Deleting a highlight should remove from API - [ ] Highlights should appear in the highlights panel - [ ] Clicking a highlight in HighlightsView should open recording at that time ## Known Issues ### Audio Player - [ ] Short audio files may show wrong duration initially - [ ] DayView density bars may show duplicate lines ### Data Import - [ ] Need to import large historical dataset before removing duplicate calendar ## Completed ### Security - [x] API key authentication on all endpoints - [x] UI prompts for API key and stores in localStorage - [x] Audio fetched via authenticated blob URL ### Deployment - [x] Forgejo workflow for UI deployment - [x] Forgejo workflow for API deployment - [ ] Add sudoers rule for gitea-runner to restart phone-recorder ### Cleanup - [x] Removed dead quality code (was hardcoded to 'good') - [x] Simplified audio player to native HTML5 controls - [x] Added favicon ## Future Ideas - [ ] Prev/next recording buttons - [ ] Keyboard shortcuts (space to play/pause, arrow keys to seek) - [ ] Playwright tests - [ ] Waveform visualization (when transcripts available, show speaking density)