Skip to content

build(cua-driver): eliminate duplicate macOS Swift bridge symbols #3627

Description

@injaneity

Problem

Successful macOS Cua Driver builds and focused tests emit repeated duplicate Swift bridge symbol warnings, obscuring actual failures and test summaries. Recorded independently during build/test work on July 20 and August 21, with an additional incidental report on September 7, 2026.

Investigation

Current main still locks screencapturekit 6.0.1 and apple-cf 0.9.3. Both published Swift packages declare a target named CoreMediaBridge. Upstream confirmed that their AudioBufferBridge and AudioBufferListRaw Swift metadata symbols collide when both object files are linked.

The exact upstream fix already exists: doom-fish/screencapturekit-rs#159 (merged July 18). It renames screencapturekit's private Swift module while preserving its C exports. Preserve that contribution rather than independently reimplementing it.

The fix postdates the published 6.x releases. A dependency update must therefore assess API migration and runtime implications rather than assume a patch-level lockfile refresh is sufficient.

Related Cua evidence: #2356 records the same warning, but is not a linker-fix workstream. No dedicated active Cua fix was found in searches for duplicate Swift symbols, CoreMediaBridge, apple_cf, and linker warnings.

Acceptance evidence

  • Retain baseline native link output identifying the duplicate Swift symbols.
  • Show the same link succeeds without those warnings after the change, while unrelated warnings remain visible.
  • Add a focused regression check for the duplicate module/symbol boundary.
  • If updating capture dependencies changes production code or behavior, run affected native capture/recording coverage and the required exact-candidate desktop certification before readiness.
  • Document Windows/Linux impact explicitly; the colliding Swift bridges are macOS dependencies.

Fresh native reproduction and candidate validation are still pending. Source inspection and upstream evidence are not being presented as a completed local build.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions