Repository navigation
Surface a refused macOS notification prompt in the desktop app - #1069
Conversation
macOS settles an unanswered permission prompt as denied, so the request moves to the first active window instead of the first background notification. Settings re-reads access on activation because the user changes it in System Settings, outside the app. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
PR Summary by QodoRequest macOS notification access in foreground and surface denials
AI Description
Diagram
High-Level Assessment
Files changed (16)
|
Code Review by Qodo
1.
|
An Allow request can stay open across many window activations, so the view model follows it with a read of its own instead of applying its result: ordering overlapping reads by start would otherwise drop the answer the user just gave. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Closes #1064 — AI-3019
What & why
macOS settles an unanswered notification prompt as denied. Asked from the first notification — which fires only while the app is in the background — the prompt reads as an ordinary banner, times out, and every later notification is refused with nothing in the app saying so. This asks the first time an app window is active (once per run, only while access is undetermined and a preference is on), and the Notifications tab reads the authorization and shows a warning row: Open System Settings when macOS blocks notifications, Allow notifications when it has never been asked.
Where to look
Showstays as the fallback for an app that never had an active window.Verification
dotnet run --project test/Capacitor.App.Tests.Unit→ 2665 passed, 0 failed;dotnet build Capacitor.slnx→ 0 warnings.getNotificationSettingsWithCompletionHandler:read ran in a throwaway bundle against the real notification centre: callback fired,access=NotDetermined.Denied/Allowedreading, the first-activation prompt and the System Settings deep link. usernoted refuses to validate an ad-hoc bundle, so these need the signed app.🤖 Generated with Claude Code