You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ship every Bitkit-owned Rust Android library with a stable ELF build ID and a matching native debug symbol artifact so Google Play can resolve production native frames directly.
Verified baseline
Checked on July 23, 2026 with NDK llvm-readelf -n against the AARs consumed by Bitkit Android:
Packaged library
Dependency
Current version
Published ABIs
NT_GNU_BUILD_ID
libldk_node.so
com.synonym:ldk-node-android
0.7.0-rc.52
arm64-v8a, armeabi-v7a, x86_64
absent on all
libbitkitcore.so
com.synonym:bitkit-core-android
0.4.1
arm64-v8a, armeabi-v7a, x86, x86_64
absent on all
libvss_rust_client_ffi.so
com.synonym:vss-client-android
0.5.20
arm64-v8a, armeabi-v7a, x86, x86_64
absent on all
libpaykit.so
com.synonym:paykit-android
0.1.0-rc33
arm64-v8a, armeabi-v7a, x86, x86_64
absent on all
The release-symbol pipeline currently collects bitkit-core, ldk-node, and VSS classifier artifacts. Paykit is absent from that collection, and the consumer validation checks DWARF metadata without checking build-ID presence or packaged-to-symbol identity.
GitHub's native sub-issue hierarchy tracks completion of these workstreams. Dedicated isolated worktrees coordinate the four producer changes and the Android consumer integration.
Implementation status
Five pushed PRs are available for colleague review.
Every locally built published ABI reports a non-empty SHA-1 NT_GNU_BUILD_ID.
Every stripped local AAR library matches its full-DWARF symbol artifact.
The Android release build consumes all four task-local producer artifacts.
The final local symbol archive contains all four Rust libraries for both release ABIs.
The release path fails before archive creation or upload on an absent or mismatched build ID.
The four producer PRs have exact-head non-author human approval.
The four producer versions are merged and published.
The Android draft resolves the released artifacts and has exact-head non-author human approval.
The Play-distributed build accepts the symbols archive and resolves Bitkit-owned Rust frames by build ID.
Epic requirements
Every Rust producer links all published Android targets with a SHA-1 GNU build ID.
Every producer preserves the same build ID through stripping into the final AAR.
Every producer fails its release path when the packaged and symbol libraries have absent or different build IDs.
Every producer creates a versioned cross-platform release containing the corrected Android artifact.
Bitkit Android collects symbols for all four Bitkit-owned Rust libraries.
Bitkit Android validates build-ID presence and parity against the packaged release artifact before Play upload.
Bitkit Android proves the four local producer artifacts work together before the child issues close.
Acceptance criteria
All five native sub-issues are complete.
Every published ABI reports a non-empty NT_GNU_BUILD_ID.
Every stripped AAR library matches the build ID in its unstripped symbol artifact.
The final Bitkit native debug symbols archive contains all four Rust libraries for every release ABI.
The release workflow fails before upload on any absent or mismatched build ID.
The next Play-distributed build accepts the symbols archive and resolves Bitkit-owned Rust frames by build ID.
Goal
Ship every Bitkit-owned Rust Android library with a stable ELF build ID and a matching native debug symbol artifact so Google Play can resolve production native frames directly.
Verified baseline
Checked on July 23, 2026 with NDK
llvm-readelf -nagainst the AARs consumed by Bitkit Android:NT_GNU_BUILD_IDlibldk_node.socom.synonym:ldk-node-android0.7.0-rc.52arm64-v8a,armeabi-v7a,x86_64libbitkitcore.socom.synonym:bitkit-core-android0.4.1arm64-v8a,armeabi-v7a,x86,x86_64libvss_rust_client_ffi.socom.synonym:vss-client-android0.5.20arm64-v8a,armeabi-v7a,x86,x86_64libpaykit.socom.synonym:paykit-android0.1.0-rc33arm64-v8a,armeabi-v7a,x86,x86_64The release-symbol pipeline currently collects
bitkit-core,ldk-node, and VSS classifier artifacts. Paykit is absent from that collection, and the consumer validation checks DWARF metadata without checking build-ID presence or packaged-to-symbol identity.Workstreams
GitHub's native sub-issue hierarchy tracks completion of these workstreams. Dedicated isolated worktrees coordinate the four producer changes and the Android consumer integration.
Implementation status
NT_GNU_BUILD_ID.Epic requirements
Acceptance criteria
NT_GNU_BUILD_ID.Remaining post-approval order
0.7.0-rc.58.0.4.4.0.5.21.0.1.1.Related tracking