Skip to content

Make cleanup navigation reliable - #2

Merged
NikkyWay merged 2 commits into
mainfrom
codex/reliable-cleanup-navigation
Sep 3, 2026
Merged

NikkyWay merged 2 commits into
mainfrom
codex/reliable-cleanup-navigation

Conversation

@NikkyWay

@NikkyWay NikkyWay commented Sep 3, 2026

Copy link
Copy Markdown
Owner

What changed

  • prevent stale folder queries from overwriting navigation state
  • replace full-index aggregation after Trash with targeted ancestor updates
  • add Command/Shift multi-selection and reviewed batch Trash
  • suppress permanently inaccessible macOS system-only paths
  • recover interrupted Trash bookkeeping and protect retained history

Verification

  • Test Suite 'All tests' started at 2026-09-03 23:49:10.026.
    Test Suite 'All tests' passed at 2026-09-03 23:49:10.047.
    Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.021) seconds
    ◇ Test run started.
    ↳ Testing Library Version: 1902
    ↳ Target Platform: arm64e-apple-macos14.0
    ◇ Test privacyModesDoNotLeakPrivatePrefixes() started.
    ◇ Test trashedRowsAreRemovedFromStoredTotals() started.
    ◇ Test sqlitePersistenceBenchmark() started.
    ◇ Test fileActionPolicyProtectsRootsAndManagedData() started.
    ◇ Test realFilesystemTraversalBenchmark() started.
    ◇ Test exportsAreReadableAndStrictReportHidesNames() started.
    ◇ Test scannerPersistsAggregatesAndDoesNotFollowSymlink() started.
    ◇ Test incrementalScanReusesUnchangedSubtree() started.
    ◇ Test duplicateFinderUsesContentNotOnlySize() started.
    ◇ Test protectedDirectoryStatusSurvivesDatabaseAggregation() started.
    ◇ Test cleanupRulesAreConservativeAndAdvancedOverridesAreExplicit() started.
    ◇ Test fullDiskScanDoesNotReportPermanentSystemAccessDenials() started.
    ◇ Test safetyStatusWireValuesAreStable() started.
    ◇ Test incrementalOverlayPatchesExistingSnapshotWithoutCopyingUnchangedRows() started.
    ◇ Test transientScanErrorPreservesPreviousSubtree() started.
    ◇ Test fastOverviewListsOnlyTheSelectedDirectory() started.
    ◇ Test folderAggregationNeverHidesRestrictedChildren() started.
    ◇ Test identityCheckDetectsReplacementAfterScan() started.
    ◇ Test interruptedTrashBookkeepingIsRecoveredOnLaunch() started.
    ◇ Test historyAndDuplicateGroupsRemainIndependentBetweenScans() started.
    ◇ Test cancelledSnapshotUsesLiveProgressTotals() started.
    ◇ Test trashRecalculatesOnlyAffectedAncestorTotals() started.
    ◇ Test fullDiskTraversalDoesNotEnterNestedVolumes() started.
    ◇ Test scannerMetadataBenchmark() started.
    ◇ Test nativeReaderHandlesUnicodePackagesAndSymlinks() started.
    ✔ Test privacyModesDoNotLeakPrivatePrefixes() passed after 0.046 seconds.
    ✔ Test fileActionPolicyProtectsRootsAndManagedData() passed after 0.046 seconds.
    ✔ Test cleanupRulesAreConservativeAndAdvancedOverridesAreExplicit() passed after 0.046 seconds.
    ✔ Test folderAggregationNeverHidesRestrictedChildren() passed after 0.046 seconds.
    ✔ Test fullDiskScanDoesNotReportPermanentSystemAccessDenials() passed after 0.046 seconds.
    ✔ Test safetyStatusWireValuesAreStable() passed after 0.046 seconds.
    ✔ Test fullDiskTraversalDoesNotEnterNestedVolumes() passed after 0.046 seconds.
    ✔ Test nativeReaderHandlesUnicodePackagesAndSymlinks() passed after 0.065 seconds.
    ✔ Test fastOverviewListsOnlyTheSelectedDirectory() passed after 0.065 seconds.
    ✔ Test protectedDirectoryStatusSurvivesDatabaseAggregation() passed after 0.065 seconds.
    ✔ Test identityCheckDetectsReplacementAfterScan() passed after 0.065 seconds.
    ✔ Test realFilesystemTraversalBenchmark() passed after 0.066 seconds.
    ✔ Test scannerPersistsAggregatesAndDoesNotFollowSymlink() passed after 0.110 seconds.
    ✔ Test cancelledSnapshotUsesLiveProgressTotals() passed after 0.119 seconds.
    ✔ Test interruptedTrashBookkeepingIsRecoveredOnLaunch() passed after 0.119 seconds.
    ✔ Test trashedRowsAreRemovedFromStoredTotals() passed after 0.120 seconds.
    ✔ Test transientScanErrorPreservesPreviousSubtree() passed after 0.121 seconds.
    ✔ Test incrementalScanReusesUnchangedSubtree() passed after 0.152 seconds.
    ✔ Test trashRecalculatesOnlyAffectedAncestorTotals() passed after 0.154 seconds.
    ✔ Test incrementalOverlayPatchesExistingSnapshotWithoutCopyingUnchangedRows() passed after 0.154 seconds.
    ✔ Test historyAndDuplicateGroupsRemainIndependentBetweenScans() passed after 0.249 seconds.
    ✔ Test duplicateFinderUsesContentNotOnlySize() passed after 0.284 seconds.
    ✔ Test exportsAreReadableAndStrictReportHidesNames() passed after 0.289 seconds.
    Persisted 20.000 metadata rows in 0.826607917 seconds
    ✔ Test sqlitePersistenceBenchmark() passed after 0.979 seconds.
    ✔ Test scannerMetadataBenchmark() passed after 1.047 seconds.
    ✔ Test run with 25 tests in 0 suites passed after 1.048 seconds. (25 tests)
  • release app build
  • installed and launched 1.3.3 (11)
  • started a clean full-disk scan

@NikkyWay
NikkyWay merged commit aa4380b into main Sep 3, 2026
1 check passed
@NikkyWay
NikkyWay deleted the codex/reliable-cleanup-navigation branch September 3, 2026 22:02
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