Files
BikeControl/.gitea/workflows
dtourolleandClaude Opus 5 da56985499
🚴 Build and Test BikeControl / Workspace tests (push) Successful in 16m55s
Build & Release / Run tests (push) Successful in 6m35s
🚴 Build and Test BikeControl / Android compile check (push) Successful in 3m41s
Build & Release / Build Linux (deb + AppImage) (push) Successful in 15m18s
Build & Release / Build Arch package (push) Successful in 29m19s
Build & Release / Build Android APK (push) Failing after 29s
Build & Release / Create release (push) Skipped
Check every JNI symbol, not just the first one
The android-check job failed on a tree that is perfectly correct:
android.rs exports three `Java_..._MainActivity_*` symbols, the check
compared all three against a single expected name and called it a
mismatch.

Two bugs, both from assuming one native:

- SYM collected every export while EXPECTED was built from one method, so
  the comparison was three lines against one.
- The Kotlin side matched `external fun name()` on empty parens, which
  quietly skipped nativeSetActivity and nativeBluetoothStateChanged —
  parameters do not appear in the symbol name, so stop at the paren.

Now both sides are collected into sets and diffed, so a native declared
in Kotlin with no Rust half fails as loudly as the reverse. Verified
against the real files: passes as-is, and fails with a readable diff for
a Kotlin-only native and for a renamed Rust export.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 12:12:42 +02:00
..