Repository navigation
fix(react-native): only process stream.video call.ring VoIP pushes on iOS - #2486
Conversation
… iOS The iOS VoIP handler used `&&` in its payload filter, so a stream.video push with a non-ring type, or a call.ring push from another sender, was processed as a ringing call. Require both, matching the Android handler. Ref: RN-439
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (2)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review. 📝 WalkthroughWalkthroughThe iOS VoIP handler now processes notifications only when the sender is ChangesiOS VoIP notification filtering
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~5 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The iOS handler rejects unrelated VoIP notifications while continuing to process matching ring notifications. No identified issue blocks merging after normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The filter now rejects unrelated notifications before creating JavaScript call state. No security regression is established, but native push-completion and call-cleanup behavior for newly ignored notifications remains unverified. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bundle sizeBuilt package output. Sizes in KB; delta vs No significant package size increase vs |
💡 Overview
The iOS VoIP push handler (
onVoipNotificationReceived) filtered payloads withsender !== 'stream.video' && type !== 'call.ring', so astream.videopush with a non-ring type, or acall.ringpush from another sender, was processed as a ringing call. It now requires both, matching the Android handler.📝 Implementation notes
ios.ts: switch the guard to||so onlystream.video+call.ringpayloads are processed.__tests__/push/ios.test.ts(samejest.isolateModules+jest.doMockstyle asandroid.test.ts): a non-ringstream.videopayload and a ring from another sender are ignored, astream.videoring is processed. The two "ignored" cases fail without the fix.🎫 Ticket: https://linear.app/stream/issue/RN-439
📑 Docs: N/A
Summary by CodeRabbit
call.ringevents sent bystream.video. Other notification types and senders are ignored.