Skip to content

Fix: Pipeline.search() missing from generated SkipBridge peer#94

Merged
marcprux merged 1 commit into
skiptools:mainfrom
IT-Guy007:fix/pipeline-search-bridge-visibility
Jul 3, 2026
Merged

Fix: Pipeline.search() missing from generated SkipBridge peer#94
marcprux merged 1 commit into
skiptools:mainfrom
IT-Guy007:fix/pipeline-search-bridge-visibility

Conversation

@IT-Guy007

Copy link
Copy Markdown
Contributor

Summary

  • Pipeline.search(query:) carried a // SKIP REPLACE: comment whose Kotlin is functionally identical to what the naive Swift→Kotlin transpile already produces.
  • That override causes SkipBridge to silently drop search from the generated Swift bridge peer (Pipeline_Bridge.swift) used by SKIP_BRIDGE-flagged consumer builds (e.g. an app targeting Android), even though the Kotlin transpile output is correct and identical with or without the override.
  • limit(_:), offset(_:), and whereCondition(_:) — which have no SKIP REPLACE override — bridge correctly and were used to confirm the pattern.
  • Removing the override restores bridge visibility for search while leaving the transpiled Kotlin byte-for-byte identical (verified locally).

Consumer-side symptom

Building a Skip app for Android hits:

error: value of type 'Pipeline' has no member 'search'

during the SKIP_BRIDGE-flagged swift build --swift-sdk aarch64-unknown-linux-android28 ... pass, despite Firestore Enterprise Pipeline FTS working correctly on iOS and the Kotlin transpile compiling fine.

Test plan

  • swift build --product SkipFirebaseFirestore succeeds (iOS/macOS side).
  • Diffed the transpiled Pipeline.kt output before/after removing the override — byte-identical search implementation.
  • Verified against a real SKIP_BRIDGE Android build in the downstream consumer app (Club-App) — in progress, will confirm once this lands.

…bridge peer

Pipeline.search(query:) carried a `// SKIP REPLACE:` comment specifying an
identical-in-substance Kotlin body to what the naive Swift-to-Kotlin
transpile already produces. That override causes SkipBridge to silently
omit `search` from the generated Swift bridge peer (Pipeline_Bridge.swift)
used by SKIP_BRIDGE-flagged consumer builds (e.g. Skip apps targeting
Android), even though the Kotlin transpile output itself is correct.
limit(_:), offset(_:), and whereCondition(_:) — which have no REPLACE
override — bridge correctly.

Consumer symptom: `swift build --swift-sdk aarch64-unknown-linux-android28
... -DSKIP_BRIDGE` fails with "value of type 'Pipeline' has no member
'search'" despite the Kotlin side compiling fine.

Removing the override lets the naive transpile (verified byte-identical
Kotlin output) stand, restoring bridge visibility.
@cla-bot cla-bot Bot added the cla-signed label Jul 3, 2026
@IT-Guy007 IT-Guy007 marked this pull request as draft July 3, 2026 09:41
@IT-Guy007 IT-Guy007 marked this pull request as ready for review July 3, 2026 10:22
@marcprux

marcprux commented Jul 3, 2026

Copy link
Copy Markdown
Member

Thanks!

@marcprux marcprux merged commit b81dbc1 into skiptools:main Jul 3, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants