fix(mobile): push gating and personal-team hardening for Android PR#3643
fix(mobile): push gating and personal-team hardening for Android PR#3643bmdavis419 wants to merge 2 commits into
Conversation
- Validate T3CODE_IOS_PERSONAL_TEAM_BUNDLE_ID as a reverse-DNS identifier - Expose extra.iosPersonalTeamBuild so runtime capability gating works - Gate native APNs token acquisition on supportsAgentAwarenessPush() so Personal Team builds never call getDevicePushTokenAsync without the aps-environment entitlement - Document why appleSignIn gating on the Clerk plugin is load-bearing - Restore react-native-keyboard-controller 1.21.7 (main bumped it in #3545; 1.21.6 here was a stale pin) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
ApprovabilityVerdict: Needs human review This PR gates push notification functionality for personal team builds by propagating a config flag to multiple code paths. While well-tested, changes that control feature availability for users warrant human review to verify the intended scope. You can customize Macroscope's approvability policy. Learn more. |
PR into #3579 carrying the fixes from #3575 that its snapshot of that branch missed (it absorbed an older version of
fix/mobile-device-builds-and-android-ui).What's included
Push registration gating for Personal Team builds (cherry-picked from #3575's
2e5b83f4c):agent-awareness/capabilities.tswithsupportsAgentAwarenessPush(), driven byextra.iosPersonalTeamBuildliveActivitiesEnabled/notificationsEnabledoff when push is unsupported (+ test)Hardening on top:
nativePushTokenRegistrationnow also checkssupportsAgentAwarenessPush(), so Personal Team builds never callgetDevicePushTokenAsync()without theaps-environmententitlement (previously only the payload was gated — a build with previously-granted permission would still attempt token acquisition and could stall waiting ondidRegisterForRemoteNotifications)T3CODE_IOS_PERSONAL_TEAM_BUNDLE_IDvalidated as a reverse-DNS identifier instead of just non-emptyextra.iosPersonalTeamBuildexposed in the Expo config (required for the runtime gating above)appleSignIn: !isIosPersonalTeamBuildgate on the Clerk plugin is load-bearing (the.cjsentitlements plugin runs before plugins earlier in the array, so it can't strip Clerk's entitlement)react-native-keyboard-controller1.21.7 — main bumped it in [codex] Upgrade Legend List chat scrolling #3545; the 1.21.6 pin here is a stale carryover that would silently downgrade it at mergeVerification
tsc --noEmitpassesSupersedes #3575, which is now closed.
🤖 Generated with Claude Code
Note
Gate push notifications and live activity updates for iOS Personal Team builds
supportsAgentAwarenessPushhelper in capabilities.ts that returnsfalsewhenConstants.expoConfig.extra.iosPersonalTeamBuildistrue.nativePushTokenRegistrationskips permission/token requests and returnspushToken: nullwhen push is unsupported; relay registration payload setsliveActivitiesEnabledandnotificationsEnabledtofalse.falsewhen push is unavailable.T3CODE_IOS_PERSONAL_TEAM_BUNDLE_IDwhenT3CODE_IOS_PERSONAL_TEAM=1.Macroscope summarized 4c5185e.