Fix rewind tab: remove intro video, fix delayed screenshots#5802
Fix rewind tab: remove intro video, fix delayed screenshots#5802
Conversation
Users now see their screenshots directly when navigating to the Rewind tab instead of a full-screen video overlay with Get Started/Skip. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two fixes: - Don't block monitoring startup on notification auth callback. The comment said "don't block" but continueStartMonitoring was inside the requestAuthorization callback, delaying capture start until the user dismissed the macOS notification dialog. - Capture first frame immediately after timer starts instead of waiting for the first 3-second interval to elapse. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Greptile SummaryThis PR addresses two user-facing regressions in the Rewind tab: it removes the first-time intro video overlay (replacing it with immediate screenshot display) and fixes a multi-minute delay before screenshots appeared after onboarding. Key changes:
Note on the removed video asset: The Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Caller
participant startMonitoring
participant UNCenter as UNUserNotificationCenter
participant continueStart as continueStartMonitoring
participant captureTimer
participant captureFrame
Caller->>startMonitoring: startMonitoring()
startMonitoring->>UNCenter: requestAuthorization() async fire-and-forget
Note over UNCenter: Runs in background, no longer blocks monitoring
startMonitoring->>continueStart: continueStartMonitoring() immediate
continueStart->>captureTimer: scheduleTimer repeating captureInterval
continueStart->>captureFrame: Task captureFrame() first frame immediate
Note over captureFrame: First screenshot taken right away
captureTimer-->>captureFrame: fires every captureInterval
continueStart->>Caller: completion true nil
UNCenter-->>startMonitoring: granted or error callback fires later
Note over startMonitoring: Logs result, repairs LaunchServices if needed
Last reviewed commit: "Update CLAUDE.md wit..." |
| Task { @MainActor in | ||
| await self.captureFrame() | ||
| } |
There was a problem hiding this comment.
Inconsistent
self capture vs. timer closure
The recurring timer closure directly above this block (line 388–392) captures self weakly with [weak self], which is the established pattern in this file. The new one-shot Task uses a strong self instead. Although this won't produce a permanent retain cycle (the Task completes quickly and ProactiveAssistantsPlugin is a singleton), the inconsistency is worth aligning for readability and to match the style of every other async capture in this class.
| Task { @MainActor in | |
| await self.captureFrame() | |
| } | |
| Task { @MainActor [weak self] in | |
| await self?.captureFrame() | |
| } |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| @@ -132,10 +129,6 @@ struct RewindPage: View { | |||
| .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) | |||
There was a problem hiding this comment.
Orphaned blank line after removed intro-video overlay
The blank line left here after removing the if !hasSeenRewindIntro { rewindIntroOverlay } block is harmless but leaves unnecessary whitespace inside the ZStack. Consider removing it for a clean diff.
| .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
…dware#5802) ## Summary - Remove the rewind intro video overlay — users see their screenshots directly on the Rewind tab - Fix 5-minute delay before screenshots appear after onboarding: notification auth callback was blocking `continueStartMonitoring`, and first capture waited for the 3s timer interval instead of firing immediately ## Test plan - [ ] Fresh install: complete onboarding, navigate to Rewind tab — no video overlay shown - [ ] Screenshots appear within seconds of monitoring start, not minutes - [ ] Notification permission still requested (in parallel) without blocking capture 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Summary
continueStartMonitoring, and first capture waited for the 3s timer interval instead of firing immediatelyTest plan
🤖 Generated with Claude Code