feat: manage iOS notifications from Privacy#99202
Conversation
|
Codex review: stale review; fresh review needed. Summary Next step Review history (1 earlier review cycle)
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Superseded by #102733, now landed as The replacement preserves the useful product direction here while keeping the implementation at the iOS owner boundary: Settings > Privacy now owns one default-on notification-serving preference, UIKit owns unregister/re-register, and all iOS-owned delivery/publication paths honor it. It avoids adding a Gateway method or expanding the legacy APNs JSON store. I could not update this fork branch because Allow edits by maintainers is disabled, so I recreated the reviewed change locally. Contributor credit is preserved with a |
Closes #99201
What Problem This Solves
Resolves a problem where iOS users configuring notifications had to leave Privacy for a separate Notifications screen with a large action button and repeated explanatory copy. The control felt inconsistent with the rest of Settings > Privacy and made the relationship between system notification permission and OpenClaw notification delivery less clear.
It also fixes the denied-permission follow-up path so users trying to re-enable notifications can be sent to OpenClaw's app settings instead of only landing at the top-level iOS Settings screen.
Why This Change Was Made
Notifications now lives as the top card in Settings > Privacy with a visible toggle for OpenClaw's app-level notification-serving preference. iOS notification permission remains the system authority, denied or unavailable system permission still routes users to iOS settings, and lower-level notification delivery remains gated by both the iOS permission state and the OpenClaw preference.
The supporting copy was simplified into stable Privacy copy, and the hosted push relay note remains visible without adding another action row or repeated status text.
User Impact
Users can now manage notification delivery from the same Privacy screen as camera, location, background listening, and system privacy access controls. The toggle communicates on/off state directly, the copy is shorter and stable, and denied notification permission recovery opens the OpenClaw app settings path on device.
Evidence
Focused verification:
xcodebuild test -project apps/ios/OpenClaw.xcodeproj -scheme OpenClaw -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:OpenClawTests/RootTabsSourceGuardTestsgit diff --checkiPhone Notifications
iPad Notifications
Supporting before-state screenshots
These screenshots show that Notifications previously lived as a separate Settings row and was absent from the Privacy screen.
iPhone Settings Row Before
iPhone Privacy Before
iPad Settings Row Before
iPad Privacy Before
Notes: