Repository navigation
v2.3.0
A speed-focused release: lists load with far fewer queries, photos come as thumbnails, and the app downloads less on every visit.
⚡ Improvements
- Faster vehicle list: tags and linked sets now load in one query each instead of one per vehicle (232 → 4 queries for 115 vehicles). The Overview's Recently added row also needs fewer queries.
- Photo thumbnails: cards, list rows, strips, the gallery, series covers and form previews now show a 480px thumbnail. Each one is made the first time it's needed and then kept. Detail pages still show the full photo.
- Compression and caching: responses are gzipped. App files and photos are cached by the browser for up to a year, and the app page itself always checks for updates.
- Smaller first load: most pages now load only when you open them. React, MUI and the data libraries are downloaded separately, so an app update doesn't download them again.
- Fewer requests: sidebar counts come from the Overview summary, the top-bar search loads its lists only when you first click into it, and loaded data is reused for 5 minutes. Any change you make still refreshes what it affects right away.
- Offline photo cache: the service worker now caches photos as intended, up to 1000 of them.
🐛 Bug Fixes
- The service worker's photo cache rule never matched, so photos weren't cached for offline use. It now works.
- Deleting a photo also deletes its thumbnail, and Danger Zone's "Remove unused photo files" also clears thumbnails with no photo.
📝 Tests
- New tests for cache headers, gzip, a fixed query count on the vehicle list, and thumbnails. 231 backend tests (94% coverage) and 137 frontend tests pass.