openclaw/apps/ios/Sources/Push
Peter Steinberger aebea4891e
feat(ios): render plugin approvals as native Allow/Deny notifications (#108709)
* feat(ios): render plugin approvals as native Allow/Deny notifications

Extend the iOS approval handling from exec to plugin approvals so the native
push the gateway now sends (#108505) shows a phone notification with Allow/Deny.
Extract a shared ApprovalNotificationBridge with exec/plugin wrappers owning
their own kind constants and category; tag the parsed prompt with its kind;
register the plugin category and route plugin pushes in the app delegate; add a
.plugin case that maps the plugin presentation (title/description/pluginId/
severity) into the existing prompt and widens the exec-only validation, current,
cache-restore, and resolve guards to accept plugin; parameterize the dialog copy
by kind. Watch snapshot publication stays exec-only; the phone notification still
mirrors to the watch via WatchConnectivity. Reuses the unified approval.get/
approval.resolve RPCs (already kind-generic); no server or protocol changes.

* chore(i18n): sync native inventory after rebase

* chore(ios): drop accidentally committed local Version.xcconfig build override

* fix(ios): sync Apple i18n catalog and remove dead approval-bridge methods

Sync apps/ios/Resources/Localizable.xcstrings for the new plugin-approval
strings (native inventory sync alone did not cover the Apple catalog).
Remove the superseded per-bridge registerCategory variants and the redundant
exec parseResolvedPush wrapper flagged by the iOS Periphery dead-code scan;
registration uses ApprovalNotificationBridge.registerCategories and the shared
parse helpers.

* chore(ios): drop generated SwiftSources filelist; reconcile native i18n inventory

* chore(ios): drop generated Xcode project from tracking

Codex generated OpenClaw.xcodeproj for its simulator test run and the initial
apps/ios directory commit force-added it; xcodegen regenerates it in CI, so it
must not be tracked (matches main).

* chore(ios): reconcile native i18n inventory after rebase
2026-07-16 09:50:42 -07:00
..
BackgroundAliveBeacon.swift feat: add authenticated iOS background presence beacon (#73330) 2026-04-28 08:10:35 +01:00
ExecApprovalNotificationBridge.swift feat(ios): render plugin approvals as native Allow/Deny notifications (#108709) 2026-07-16 09:50:42 -07:00
PushBuildConfig.swift feat: harden ios app store push release mode 2026-06-23 00:01:20 -05:00
PushEnrollmentConsent.swift fix: gate ios push enrollment on notification consent 2026-06-23 01:38:24 -05:00
PushRegistrationManager.swift feat: harden ios app store push release mode 2026-06-23 00:01:20 -05:00
PushRelayClient.swift feat: add ios push relay diagnostics 2026-06-22 22:17:04 -05:00
PushRelayKeychainStore.swift chore(swift): restore compact conditional bodies (#103832) 2026-07-10 18:12:00 +01:00