Skip to content

Add ephemeral PHP runtime and push notification support#82

Merged
shanerbaner82 merged 4 commits intomainfrom
feature/ephemeral-runtime
Apr 1, 2026
Merged

Add ephemeral PHP runtime and push notification support#82
shanerbaner82 merged 4 commits intomainfrom
feature/ephemeral-runtime

Conversation

@shanerbaner82
Copy link
Copy Markdown
Contributor

@shanerbaner82 shanerbaner82 commented Apr 1, 2026

Summary

  • Adds ephemeral PHP runtime for plugin background execution (native C bridge in php_bridge.c)
  • Adds push notification deep link and data message support (Android + iOS)
  • Fixes stale POST data causing duplicate bridge calls and notification URL navigation
  • Updates Deep Link Router and plugin bridge function registration for third-party plugins

Files changed

  • php_bridge.c — ephemeral runtime native implementation (+179)
  • MainActivity.kt / AppDelegate.swift — push notification handling
  • DeepLinkRouter.swift — deep link routing updates
  • AndroidPluginCompiler.php / IOSPluginCompiler.php — plugin compiler updates
  • PushNotifications.php + facade — new push notification methods
  • PluginBridgeFunctionRegistration.kt.stub — stub updates

Test plan

  • Verify push notifications with deep links work on Android and iOS
  • Verify data-only push messages are handled correctly
  • Verify plugin bridge functions register correctly
  • Verify ephemeral PHP runtime executes plugin background tasks

🤖 Generated with Claude Code

shanerbaner82 and others added 4 commits March 24, 2026 17:53
… navigation

PHPBridge.getLastPostData() was never cleared after consumption, causing
subsequent requests to re-execute stale bridge call payloads. This
manifested as duplicate notifications when navigating after a
notification tap.

Also adds notification URL navigation support in onNewIntent — when a
notification with a URL is tapped and intent.data is null (launcher
intent doesn't carry deep link data), falls back to reading the
notification_url extra and navigating via Inertia/location.href.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a generic ephemeral TSRM context (boot/artisan/shutdown) to
php_bridge.c that any plugin can use for background PHP work via
WorkManager. Supports both hot path (app alive) and cold path
(WorkManager cold start). Add JNI declarations to PHPBridge.kt
and init function support to the plugin compiler stub template.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add push notification deep link and data message support

- Handle FCM data payload deep links (url/link keys) in handleDeepLinkIntent
  for cold-start push notification navigation on Android
- Add didReceiveRemoteNotification to AppDelegate for iOS data-only message
  delivery (silent push via content-available)
- Fix IOSPluginCompiler to handle boolean values in nativephp.json info_plist
  entries (needed for FirebaseAppDelegateProxyEnabled: false)
-  Add clearBadge method to PushNotifications
@shanerbaner82 shanerbaner82 merged commit dce9786 into main Apr 1, 2026
3 of 5 checks passed
@shanerbaner82 shanerbaner82 deleted the feature/ephemeral-runtime branch April 1, 2026 19:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant