Skip to content

fix: keep large cleanup result groups responsive - #14

Draft
n9896027 wants to merge 1 commit into
mainfrom
agent/0.7.10-cleanup-pagination
Draft

n9896027 wants to merge 1 commit into
mainfrom
agent/0.7.10-cleanup-pagination

Conversation

@n9896027

Copy link
Copy Markdown
Owner

Result

  • Paginate large cleanup candidate groups at 40 rows per page.
  • Keep groups above 24 items collapsed by default.
  • Add Previous/Next controls and English, Simplified Chinese, and Traditional Chinese copy.
  • Add regression coverage for first, middle, final, empty, and out-of-range pages.

Reproduction and evidence

Before the fix, expanding a 408-item audio group raised the app to about 2.1 GB RSS immediately; the accumulated failure reached about 9.7 GB RSS and nearly 100% CPU, leaving the SwiftUI window unresponsive.

With the fix, the same 512-candidate scan (including the 408-item audio group) remained responsive while paging, at about 0.47–0.51 GB during the loaded scan. After a clean relaunch on Overview, the app settled around 100 MB in the sampled process view.

No cleanup, move, or deletion operation was executed during verification.

Risk boundaries

  • UI presentation and a pure pagination window model only.
  • Does not change scan roots, candidate eligibility, selection policy, trash behavior, permissions, process control, networking, or AI authority.
  • Existing deletion and recovery safeguards remain unchanged.

Local verification

  • git diff --check
  • Current-tree repository audit: no potential credential signals found in the scanned scope
  • Staged privacy/credential pattern scan: no matches
  • swift test: 184 tests, 1 skipped, 0 failures
  • swift run CleanNestSelfTest: passed
  • ./build.sh release: passed
  • App, MCP, login item, and scanner signature verification: passed
  • Real UI pagination through the large audio group: responsive

Remote verification

  • CI
  • Dependency review
  • CodeQL

Release state

This is a Draft PR for the next hotfix candidate. It does not merge, tag, or publish a Release. The generated local bundle uses the existing stable local signing identity; it is not Developer ID signed or Apple notarized.

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