Skip to content

Initialize MacSweep project with core features and UI enhancements - #13

Merged
lahiruudayakumara merged 62 commits into
opencorex-org:mainfrom
lahiruudayakumara:dev
Sep 7, 2026
Merged

lahiruudayakumara merged 62 commits into
opencorex-org:mainfrom
lahiruudayakumara:dev

Conversation

@lahiruudayakumara

Copy link
Copy Markdown
Contributor

This pull request introduces major improvements to the build, test, and release automation for MacSweep, adds secure Sparkle-based automatic update support, and enhances the application's cleaning, scanning, and workflow controls. It also updates the project to use the latest Xcode and macOS runners, improves security and release validation, and documents all changes in a new changelog.

Build, Test, and Release Automation:

  • Updated all GitHub Actions workflows to use macos-15 runners and latest stable Xcode, and refactored build, test, and release steps to use project scripts for consistency. (.github/workflows/ci.yml, .github/workflows/test.yml, .github/workflows/release.yml) [1] [2] [3]
  • The release workflow now signs, notarizes, and packages releases, validates all required secrets, and securely publishes artifacts to GitHub Releases. (.github/workflows/release.yml)

Sparkle Automatic Updates Integration:

  • Added Sparkle as a Swift Package dependency, configured Sparkle update keys and feed in the Xcode project, and enabled secure automatic update checks. (MacSweep.xcodeproj/project.pbxproj, MacSweep.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved) [1] [2] [3] [4] [5] [6] [7] [8]
  • Added UpdateService to the application environment for update management. (MacSweep/App/AppEnvironment.swift) [1] [2]

Cleaning and Scanning Improvements:

  • Default clean operations now use permanent deletion (with safety validation), and the deletion service removes files directly instead of moving them to Trash (except for certain workflows). (MacSweep/Core/Cleaner/CleanOperation.swift, MacSweep/Core/Cleaner/DeletionService.swift) [1] [2] [3]
  • Added ScanControl for thread-safe, cooperative scan pausing, resuming, and cancellation, with integration into file enumeration and directory size calculation. (MacSweep/Core/Scanner/ScanControl.swift, MacSweep/Core/FileSystem/FileEnumerator.swift) [1] [2] [3] [4]

Workflow and Feature Additions:

  • Added Smart Scan, Full Scan, and Developer Cleaner workflows, with pause/resume/stop controls for scans. (CHANGELOG.md, MacSweep/ContentView.swift) [1] [2]
  • Updated the Xcode export options for manual Developer ID signing and team association. (Distribution/ExportOptions/DeveloperIDExportOptions.plist)

Documentation and Security:

  • Rewrote the changelog for 1.0.0, documenting all major features, workflows, and security improvements. (CHANGELOG.md)
  • Release publication is now strictly validated: it fails if signing, notarization, verification, or packaging does not succeed. (.github/workflows/release.yml, CHANGELOG.md) [1] [2]

- Keep dev's enhanced ScanProgress tracking (completedCategories, fractionCompleted)
- Keep dev's updated string keys ('%lld of %lld selected • %@', '%lld selected • %@')
- Keep dev's language localization strings (23 languages)
- Add 'Scan Completed' string from main that dev had renamed
- Keep dev's improved SmartScanView UI text (Review Scan Results, selection count row)
…scovery logic, and enhance the large file list UI.
…rg#11

- UninstallerView: keep dev's Full Disk Access permission banner + main's uninstall progress/result flow
- UninstallerViewModel: use main's safer Task @mainactor progress update wrapping
- ApplicationService: keep dev's @mainactor progress handler + async recycleUsingWorkspace
- Localizable.xcstrings: merge both sides' new strings, deduplicate repeated entries
@lahiruudayakumara
lahiruudayakumara merged commit 00fec8b into opencorex-org:main Sep 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant