f2eeceeb82
BREAKING: Major rewrite addressing all community feedback. Critical fixes: - Remove Homebrew .metadata from scan targets (was breaking Homebrew) - Replace all silent catch blocks with os.log structured logging - Fix getSnapshotSize() stub (was returning hardcoded 0) - Remove forced dark mode - app now respects system appearance Native macOS UI: - Replace custom gradients/glows/hex colors with system colors - NavigationSplitView with native sidebar - Native Toggle(.checkbox), Button(.borderedProminent), ProgressView - Native Form(.grouped) for Settings - EmptyStateView for macOS 13 compatibility - Remove all AppGradients, .pmGlow(), .pmShadow(), custom fonts New features: - App uninstaller with heuristic file discovery (AppPathFinder) - 10-level matching engine (bundle ID, company name, entitlements, team ID) - 3 sensitivity levels (Strict/Enhanced/Deep) - Orphaned file finder - 120+ macOS search path database (Locations.swift) - 25 per-app matching conditions (Conditions.swift) - Typed ScanError enum - Launch at login via SMAppService (actually implemented) Architecture: - AppState replaces AppViewModel as centralized state - ScanEngine uses dynamic cache discovery (no hardcoded app paths) - StringNormalization for consistent matching - Logger with os.log unified logging Removed: - AI Apps category (discovered dynamically under User Cache) - All custom hex color definitions - All gradient/glow/shadow view modifiers - Hardcoded app-specific cache paths (Spotify, Chrome, etc.)