00e215920a
Swaps direct `DataManager.xxx` access for `LocalDataManager.current.xxx` across every Compose screen under ui/screens/** that references the singleton. Each composable resolves the ambient once at the top of its body and reuses the local val for subsequent reads — keeping rewrites minimal and predictable. Screens touched: - HomeScreen (totalSummary) - ResidencesScreen (totalSummary) - ResidenceDetailScreen (currentUser) - ResidenceFormScreen (currentUser) - ProfileScreen (currentUser + subscription) - ContractorDetailScreen (residences) - subscription/FeatureComparisonScreen (featureBenefits) - onboarding/OnboardingFirstTaskContent (residences × 3 sites) No behavior change — in production the ambient default resolves to the same DataManager singleton. The change is purely so tests, previews, and the parity-gallery can `CompositionLocalProvider(LocalDataManager provides fake)` to substitute a fake without tearing screens apart. Files under ui/subscription/** and ui/components/AddTaskDialog.kt also reference DataManager but live outside ui/screens/** (plan's scope) — flagged for a follow-up pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>