Skip to content

refactor: SPM Firebase-free TurboModule boundary and Swift/Kotlin helper ports - #9355

Merged
mikehardy merged 59 commits into
mainfrom
swift-kotlin-port
Oct 16, 2026
Merged

mikehardy merged 59 commits into
mainfrom
swift-kotlin-port

Conversation

@mikehardy

@mikehardy mikehardy commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Clips the SPM critical-path follow-on: product TurboModule .mm files are Firebase-free via plain ObjC helpers (App Check → Crashlytics → Messaging → Functions → Perf → Analytics → Firestore → Installations → App Distribution), with Auth/DB/RC/Storage already probe-ready.
  • Includes substantial Swift/Kotlin helper, registry, and mapper ports already on this branch, plus post-refactor(app): port native App helpers to Swift and Kotlin #9337 rebase and port of main bugfixes into Helpers/Swift/Kotlin (SPM-REBASE-2).
  • Remaining deeper language-port work (TurboModule shells / SDK ports) is out of scope for this PR and stays on the Linear backlog for a later batch.

Test plan

  • Full-tier e2e slot 7: iOS 1542 / Android 1553 / macOS 1336 passing (pending only)
  • Coverage post-process exit 0 (iOS + Android)
  • Rebase onto main after refactor(app): port native App helpers to Swift and Kotlin #9337; SPM-REBASE-2 receipts under .agents/reports/SPM-REBASE-2/
  • CI green on this PR (promote from draft; merge when checks + review allow)

Notes

  • Local full e2e proved the stack at tip 30e32bd3a.
  • Do not expect this PR to close the overall Swift/Kotlin migration issue; only the SPM boundary critical path is clipped here.

Maintainer note: Related to internal CPRN-487 (SPM critical-path slice only; do not auto-close — language port remains backlog)

@codecov

codecov Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.30435% with 62 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.85%. Comparing base (07e4562) to head (cec875c).
⚠️ Report is 59 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #9355      +/-   ##
============================================
+ Coverage     70.88%   74.85%   +3.97%     
- Complexity     2244     2287      +43     
============================================
  Files           446      624     +178     
  Lines         25532    41128   +15596     
  Branches       4343     5228     +885     
============================================
+ Hits          18097    30781   +12684     
- Misses         6134     8762    +2628     
- Partials       1301     1585     +284     
Flag Coverage Δ
android-native 70.54% <100.00%> (+1.17%) ⬆️
e2e-ts-android 53.97% <ø> (+0.07%) ⬆️
e2e-ts-ios 53.36% <ø> (?)
e2e-ts-macos 49.84% <ø> (+0.05%) ⬆️
ios-native 78.92% <97.08%> (?)
ios-ruby 100.00% <ø> (?)
jest 50.06% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mikehardy
mikehardy force-pushed the swift-kotlin-port branch 2 times, most recently from b4ada35 to 30e32bd Compare October 16, 2026 13:52
@mikehardy
mikehardy marked this pull request as ready for review October 16, 2026 15:39
@mikehardy mikehardy changed the title refactor: speculative Swift/Kotlin native port follow-on refactor: SPM Firebase-free TurboModule boundary and Swift/Kotlin helper ports Oct 16, 2026
@mikehardy mikehardy added the Workflow: Pending Merge Waiting on CI or similar label Oct 16, 2026
…odule mm

Keep the TurboModule shell Firebase-free for the SPM dynamic probe. Firebase and provider work live in a plain Objective-C helper.
…rboModule mm

Keep the TurboModule shell Firebase-free for the SPM dynamic probe. SDK and debugger-probe work live in a plain Objective-C helper.
…odule mm

Keep the TurboModule shell Firebase-free for the SPM dynamic probe. FIRMessaging token and topic work live in a plain Objective-C helper.
…odule mm

Keep the TurboModule shell Firebase-free for the SPM dynamic probe. Firebase Core and callable/stream handlers live in a plain Objective-C helper.
Keep the TurboModule shell Firebase-free for the SPM dynamic probe. Performance SDK and Catalyst stubs live in a plain Objective-C helper.
…odule mm

Keep the TurboModule shell Firebase-free for the SPM dynamic probe. FIRAnalytics and Swift helpers live in a plain Objective-C helper. Fix getSessionId zero detection to compare the int64 value.
Keep FID XCTest compiling against HostStubs and prove both NSNotificationCenter window selector guards.
…ueue

TurboModule requestPermission/hasPermission were calling UserNotifications
off the JS thread, so ARM64 Simulator authorization completions never fired.
Also grant Detox notification permission at iOS launch, refresh Chosen-shape
helper rows, and keep fixture lock/pbxproj in sync after the main rebase.
@mikehardy
mikehardy merged commit 3fde064 into main Oct 16, 2026
27 checks passed
@mikehardy
mikehardy deleted the swift-kotlin-port branch October 16, 2026 18:14
@mikehardy mikehardy removed the Workflow: Pending Merge Waiting on CI or similar label Oct 16, 2026
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