- Review project spec and scaffold directory structure
- Initialize SvelteKit app with placeholder components
- Set up Cloudflare Worker skeleton
- Create Python processing pipeline placeholder
- Create database migrations placeholder
- Update AGENT.md with project details
- Set up Heartwood authentication integration
- Implement allowlist gate (backend + frontend)
- Create manual video upload to R2 (script/UI)
- Test progressive MP4 streaming via authenticated route
- Implement single video player page
- Set up D1 database and run migrations
- Configure environment variables and secrets
- Adapt compression pipeline for web output (faststart, thumbnails)
- Video catalog UI (grid view)
- Basic metadata (title, date, duration)
- Upload script that pushes to Amber/R2 + creates D1 record
- Local Qwen3-VL inference pipeline
- Frame sampling and categorization
- Review UI for edge cases
- Batch processing (overnight runs)
- MediaPipe face detection integration
- face_recognition embedding extraction
- Known faces database
- Auto-blur unknown faces during transcode
- Face management UI
- Better video player (keyboard shortcuts, playback speed)
- Search and filtering
- Collections/albums
- Private tier (personal backup)
- Rings integration
- Mobile optimization
- Write tests
- Documentation
- Performance optimization
- Security audit