What's Changed
🚀 Enhancements
- Deduplicator: Show which files will be deleted before confirming by @d4rken in #2326
- Deduplicator: Detect similar video and audio files by @d4rken in #2327
- Deduplicator: Faster image duplicate detection by @d4rken in #2334
- Deduplicator: Improve duplicate image detection accuracy by @d4rken in #2335
- Deduplicator: Improve audio duplicate detection robustness by @d4rken in #2336
- Deduplicator: Show accurate freeable space based on deletion strategy by @d4rken in #2337
- Analyzer: Add search to app list by @d4rken in #2340
- Analyzer: Allow deleting individual storage trend entries by @d4rken in #2342
- Scheduler: Show what was cleaned in result notifications by @d4rken in #2345
- Analyzer: Allow browsing system data when root/ADB available by @d4rken in #2347
- AppCleaner: Speed up cleanup when system modules can't be cleared by @d4rken in #2359
- Swiper: Sort files by age, name, or size by @d4rken in #2363
- Analyzer: Show folder sizes as bars and enlarge loading screen by @d4rken in #2367
🐞 Bug fixes
- Fix: Wrong text highlighted in History dashboard card on non-English locales by @d4rken in #2317
- Fix: Restore progress state after clearing app caches by @d4rken in #2321
- Fix: Crash when previewing images found via root or ADB in Media Squeeze by @d4rken in #2323
- Analyzer: Fix incorrect app sizes in detail view by @d4rken in #2328
- Analyzer: Fix crash when scanning USB storage devices by @d4rken in #2329
- Analyzer: Show Android folder on USB storage by @d4rken in #2330
- Fix: Prevent app freeze during startup by @d4rken in #2339
- Fix: Prevent crashes when opening exclusion editors, file picker, and preview by @d4rken in #2348
- AppCleaner: Fix automation timeout for already-clean apps by @d4rken in #2352
- Fix: Show missing MIUI auto-start hint in automation setup by @d4rken in #2361
- AppControl: Fix shared libraries always showing as disabled by @d4rken in #2362
🤷 Other changes
- General: Spell out abbreviated day labels in storage trend by @d4rken in #2318
- General: Update translations from Crowdin by @d4rken in #2319
- General: Add Fastlane metadata length validation to CI by @d4rken in #2320
- General: Upload R8 mapping files to Google Play via Fastlane by @d4rken in #2322
- General: Add non-transitive R class pitfalls to architecture rules by @d4rken in #2324
- Fix: Remove mapping_paths from Fastlane supply config by @d4rken in #2331
- General: Lock down GitHub Actions workflow permissions by @d4rken in #2332
- Analyzer: Prevent hang and memory issues for large apps by @d4rken in #2338
- General: Safer navigation argument passing by @d4rken in #2341
- General: Replace XML navigation with type-safe Kotlin DSL routes by @d4rken in #2343
- General: Replace XML navigation with type-safe Kotlin DSL routes (part 2) by @d4rken in #2344
- General: Replace Moshi with kotlinx.serialization by @d4rken in #2350
- AppCleaner: Fix OriginOS 6 stuck automation for Indonesian locale by @d4rken in #2351
- General: Replace string-based setup qualifiers with type-safe annotation by @d4rken in #2354
- General: Reduce log noise for cross-profile packages by @d4rken in #2355
- General: Improve diagnostics for silent root/ADB connection failures by @d4rken in #2358
- General: Update translations from Crowdin by @d4rken in #2360
- General: Add regression tests for Room TypeConverters by @d4rken in #2364
- General: Upgrade AGP to 9.1.0 and Gradle to 9.3.1 by @d4rken in #2366
Full Changelog: v1.6.5-rc0...v1.7.0-rc0