TB-14 — Photo Upload Optimization (Device-Level)
Summary
Complement the server-side image optimizer with client-side browser compression to reduce upload times and bandwidth for field inspectors on cellular connections. Target: match server-side settings (2400px long edge, 85% JPEG) so the server optimizer becomes a no-op for pre-compressed images.
What it produced
- imageCompressor — client-side compression in portal UI (browser-image-compression or canvas API)
- Enhanced image_optimizer.py with skip-if-already-optimized heuristic
- 80%+ bandwidth reduction for typical 10-30 photo inspection uploads
Connections
- depends on: file-registry-service — files registered after upload
- depends on: Mostly-v1-Portal — upload flow in portal UI
- produced: imageCompressor — client-side photo compression library