The repo had no root-level .gitignore, so .dart_tool/, ephemeral plugin
symlinks and build artifacts were being tracked across the workspace.
Every flutter pub get regenerated them and they polluted PRs as recurring
noise.
- Add root .gitignore covering .dart_tool/, ephemeral plugin symlinks,
build/, coverage/, IDE files
- Untrack ~39 existing cache files across root, modules and packages
- Upgrade Melos to 7.5.1 using Dart pub workspaces (Melos 7 paradigm).
- Replace per-package pubspec_overrides.yaml with workspace-native resolution. Add dependencies.yaml as a centralized catalog for all external deps with sync_deps.dart tool to propagate and validate versions across the monorepo.
- Fix upload flow: capture photo ID from POST /photos response
- Fix endpoint: use /devices/identificator/{id}/photos/files for listing
- Fix setBackgroundImage: use device.id (UUID) instead of identificator
- Redesign screen as photo gallery with grid view
- Add image compression on pick (maxWidth: 800, quality: 80%)
- Fix multipart upload: remove content-type header for FormData auto-detection
- Replace hardcoded Spanish text with i18n in 6 languages
- Add typed error/success enums (BackgroundImageErrorEvent, BackgroundImageSuccessEvent)
- Revert initialLocation to splash
- Add missing translations for contacts and background-image features
- Fix position address model nullability (province field missing from API)
- Fix health query order to sortDirection to match backend API
- Add pagination to health chart queries to prevent backend timeout
- Align GetDevicesResponseModel with full backend schema
- Add route history with gradient polyline, direction arrows, and clustering
- Add animated map movements
- Add follow mode with auto-refresh
- Add share location via Google Maps link
- Add fit bounds on history load
- Add expandable action buttons panel
- Add location list bottom sheet with type filters
- Add whitelist sync alongside secondary contacts
- Add loading state to linked devices screen
- Refactor location_map.dart: extract RouteHistoryLayer, MapActionsPanel
- Migrate setState to LocationMapViewModel
Device management:
- Activity meter with steps charts and history
- Apps usage with daily breakdown and top apps
- Health monitoring (heart rate, oxygen, blood pressure)
- Scheduled activities with timeline and CRUD
- Contacts sync to device via contact-lists
- Locate device, rewards refactor
Settings (new module):
- Block phone
- SOS contacts
- WiFi networks
- Alarm refactor with full CRUD
- Settings menu with feature stubs
Account:
- Personal data and account settings refactor
Shared:
- 100+ i18n keys in 6 languages
- New routes in app_router
- WeekDayChips, TimeRangeSelector shared widgets
- Legacy dashboard shell simplified