发布

  • feat: cleanup-completion confetti + permission-flow final hardening + bump to 2.6.1 (build 13)

    frostbyte_neo 发布于 2026-05-24 06:17:33 +00:00 | 73 次提交 在此版本后已推送到 main

    A second confetti burst now fires on the dashboard the moment a clean
    cycle finishes with disk space freed. It's pinned across the whole
    dashboard frame so particles overlay the success hero, and the trigger
    is gated on a rising-edge check against the .cleaned state so the burst
    doesn't replay if the user navigates back to the dashboard while the
    success card is still on screen.

    Three race fixes:

    • PermissionCoordinator.refreshStatus now routes through handleGrant
      when it detects a grant during an active request. Previously it would
      flip hasFullDiskAccess to true and the next poll tick would see
      granted && !hasFullDiskAccess evaluate false, skipping handleGrant
      entirely — the sheet would sit open in a granted state and never fire
      the retry. refreshStatus is what the app-becomes-active notification
      calls, so this scenario was reachable any time the user granted FDA
      in Settings then re-focused PureMac.

    • AppState.removeSelectedFiles re-entrance now gates on
      PermissionCoordinator.shared.isRequesting in addition to
      removalNeedsFullDiskAccess. AppFilesView clears that latter flag the
      moment it hands off to the coordinator, leaving a window where a
      second remove call could replace the pending retry batch while the
      sheet was still polling. The coordinator's isRequesting covers the
      full sheet-open + retry-pending span.

    • OnboardingView.ReadyScene stores the +0.35s confetti work as a
      cancellable DispatchWorkItem and cancels it in onDisappear. A user
      who clicked Start within the first 0.35s of the ready scene would
      previously have the closure fire against a torn-down view, set
      hasSeenConfetti true without showing anything, and permanently
      suppress the welcome burst on future re-onboardings.

    下载附件