fix: harden core onchain sync#1015
Conversation
Greptile SummaryBumps
Confidence Score: 5/5Safe to merge — this is a targeted dependency bump that brings in upstream crash-fix releases with no other dependency changes. The change is a single version-string update in the version catalog. The five intermediate patch releases all harden the same on-chain error boundary that was already partially fixed in the prior PR. No API surface in the Android app is changed, no migrations are involved, and the changelog entry is accurate. The QA checklist in the PR description covers the three critical on-chain flows (sync, receive, send). No files require special attention.
|
| Filename | Overview |
|---|---|
| gradle/libs.versions.toml | Single-line version bump of bitkit-core-android from 0.1.67 to 0.1.72; no other dependency changes. |
| changelog.d/next/982.fixed.md | New changelog entry accurately describing the on-chain sync hardening improvement. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[On-chain Sync Request] --> B{Core Version?}
B -- "0.1.67 (before)" --> C[Single-address lookup guarded\nvia bitkit-core#95]
B -- "0.1.72 (after)" --> D[Single-address lookup guarded\nvia bitkit-core#95]
C --> E[Account info work\nUnguarded ⚠️]
C --> F[Transaction history work\nUnguarded ⚠️]
C --> G[Transaction detail work\nUnguarded ⚠️]
D --> H[Account info work\nGuarded ✅]
D --> I[Transaction history work\nGuarded ✅]
D --> J[Transaction detail work\nGuarded ✅]
E & F & G --> K[Native crash in libbitkitcore.so\n0x84b468]
H & I & J --> L[Error boundary catches failure\nNo crash]
Reviews (1): Last reviewed commit: "chore: rename changelog fragment" | Re-trigger Greptile
Fixes #982
This PR bumps Android from
bitkit-core-android 0.1.67to0.1.72so production builds consume the upstream core hardening that broadened the native on-chain blocking-task error boundary.Description
The new Play Vitals trace from
2.3.0still reports the crash fromsplit_config.arm64_v8a.apk. Translating the Play split PCs against the2.3.0AAB maps every app frame intolibbitkitcore.so, with the top app frame atlibbitkitcore.so +0x84b468.The first mitigation in #989 consumed synonymdev/bitkit-core#95, which guarded the single-address lookup path.
bitkit-core 0.1.72includes that fix plus the follow-up core release chain that applies the same guarded on-chain blocking boundary across account info, transaction history, and transaction detail work. It also comes from the native-symbol release chain being finalized in #988, so future release builds can keep usable native debug metadata once #988 lands.Note
This PR is a credible interim fix for the likely observed crash path because it pulls in the bitkit-core work that wrapped the account-info/on-chain blocking panic boundary. But it does not let us say rust-side panics from bitkit-core can no longer take down Android. For that stronger claim, the certain fix would be a PR to close:
Preview
N/A
QA Notes
Manual Tests
regression:Receive → copy/show on-chain address → Home: receive flow still works.regression:Send → prepare on-chain send with standard fee: fee estimate and confirmation flow still work.Automated Checks
GITHUB_TOKEN=$GITHUB_PAT just compileGITHUB_TOKEN=$GITHUB_PAT just testGITHUB_TOKEN=$GITHUB_PAT just lintjust lintcompleted successfully while printing existing detekt findings inTrezorViewModel,AppViewModel.handleScan, andSupportScreenimport ordering.