Fix cleaning safety guards#30
Conversation
|
Hey @edufalcao, this is a really thoughtful PR - the safety guards you've proposed are exactly the kind of thing that separates a reliable tool from a dangerous one. Especially love:
We shipped a v2.0 rewrite that changed the architecture significantly, so this can't merge directly. But we've adopted your confirmation dialog approach - the clean buttons now show a If you're interested in contributing to v2, adding test coverage for the new Really appreciate the careful approach with the safety notes too. Thank you! |
Inspired by community PRs #29, #30, #32, #33: - Onboarding: 3-page welcome flow (Welcome, FDA setup, Ready) Shows only on first launch via @AppStorage Polls FDA status every second with live UI update - Search: .searchable() in CategoryDetailView for filtering files - Confirmation: .confirmationDialog before all destructive operations - Protection: 27 Apple system apps excluded from uninstaller (Safari, Finder, Mail, Calendar, Photos, etc.) Also skips /System paths entirely
|
Hey @edufalcao! Closing this one - we adopted your confirmation dialog approach and system app safety ideas in v2.0. Clean buttons now show .confirmationDialog before proceeding, and we added system app protection to the uninstaller. Sorry for closing PRs - we rewrote the entire codebase to use native SwiftUI (NavigationSplitView, Form, Toggle, etc.) for v2.0, so the v1 code structure doesn't exist anymore. Your safety-first thinking was really valuable though and directly influenced the v2 implementation. The test coverage idea is still something we need - if you'd like to take a look at the new AppState and write some XCTests for it, that would be incredible. Would love your eyes on the new codebase! Thanks for the thoughtful contribution! |
|
Hey @edufalcao! You're credited in the v2.0 README under the Acknowledgments section for the cleaning safety guards PR. Your confirmation dialog and auto-clean safety ideas are now in production. Thank you! |
|
Thank you for the thoughtful response and for taking the time to review this so carefully. I appreciate the kind words, and I’m glad some of the ideas were useful for v2. It’s great to know the confirmation dialog and auto-clean safety concepts helped influence the new implementation. Also, thank you for the credit in the README — I really appreciate it. I’d be happy to take a look at the new AppState/codebase and see whether I can help with test coverage there as well. |
Summary
Safety notes
FileManager.removeItem; this PR reduces accidental deletion risk but does not change deletion to Trash-based recovery.Verification
xcodebuild test -project PureMac.xcodeproj -scheme PureMac -destination 'platform=macOS'TEST SUCCEEDED.xcodebuild build -project PureMac.xcodeproj -scheme PureMac -configuration Release -destination 'platform=macOS'BUILD SUCCEEDED.git diff --checkdeselectedItemsstate, telemetry/network clients, credential handling, and destructive/process execution surfaces.