diff --git a/TODO.md b/TODO.md
index e6bb78c..e0a5e28 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,26 +1,61 @@
# Clio TODO
-## Audio Player Issues
-- [ ] Short audio files show wrong duration (e.g., shows 1 second instead of 13 seconds)
- - Progress bar doesn't move for these
- - Can't seek
- - Need to investigate why audioDuration isn't being set correctly for short files
+## Requirements / Expected Behaviors
-- [ ] Hard to click on audio controls for small recordings
- - Add proper prev/next buttons for navigation
- - Make clickable area larger
+These are expected behaviors that should be preserved. If something breaks, check this list.
-## URL Routing Issue
-- [ ] URL shows `#/detail` instead of `#/recording/{id}`
- - Loses recording info on refresh
- - Need to debug why buildHash isn't being called or URL isn't updating
+### 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
-## Security (Completed)
-- [x] Add API key authentication to all endpoints
+### 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
+### Deployment
- [x] Forgejo workflow for UI deployment
-- [x] Forgejo workflow for API deployment (needs sudo permission for restart)
+- [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)
diff --git a/clio-ui/RecordingsViewer.html b/clio-ui/RecordingsViewer.html
index 17f1cf6..aef2b39 100644
--- a/clio-ui/RecordingsViewer.html
+++ b/clio-ui/RecordingsViewer.html
@@ -3,7 +3,8 @@