Uh oh!
There was an error while loading. Please reload this page.
chore: bump version 2.4.1 - #1174
Conversation
fix: update DataStore for 16 KB compatibility
fix: harden ldk node teardown on stop
fix: integrate ldk crash fixes
…overy fix: stop auto-accepting stale monitors
…time feat: increase background stop debounce time
…h-86ae fix: secure shop payments and locked links
fix: gate pubky auth handler
…ted-vss fix: fail closed without vss auth
fix: consume vss-client 0.5.23
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Greptile SummaryThis hotfix release bumps Bitkit to 2.4.1 (build 188) and cherry-picks security and stability fixes from master.
Confidence Score: 3/5This PR should not ship until the Electrum probe bounds remote response sizes to prevent a configured endpoint from exhausting application memory. The new probe reads arbitrary remote response data with unbounded readLine() calls, allowing a malicious custom Electrum endpoint to grow heap usage until the wallet crashes. Files Needing Attention: app/src/main/java/to/bitkit/services/ElectrumProbeService.kt
|
| Filename | Overview |
|---|---|
| app/src/main/java/to/bitkit/services/ElectrumProbeService.kt | Adds preflight Electrum validation, but reads attacker-controlled response lines without a size bound. |
| app/src/main/java/to/bitkit/repositories/LightningRepo.kt | Adds debounced stopping, serialized configuration changes, Electrum probing, and native-release gating. |
| app/src/main/java/to/bitkit/services/LightningService.kt | Makes teardown non-cancellable, explicitly releases native handles, gates rebuilds, and removes stale-monitor recovery. |
| app/src/main/java/to/bitkit/services/PubkyAuthHandlerRegistrar.kt | Dynamically enables the Pubky authorization alias only when Paykit, identity, and local-key requirements are met. |
| app/src/main/java/to/bitkit/ui/screens/shop/shopWebView/ShopWebViewInterface.kt | Replaces the broad JavaScript bridge with an origin-scoped WebMessageListener and fails closed when unsupported. |
| app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt | Defers scans until authentication and serializes scan processing to prevent overlapping payment flows. |
| app/src/main/java/to/bitkit/data/backup/VssBackupClient.kt | Removes unauthenticated VSS fallback and fails closed when LNURL authentication is unavailable. |
| app/build.gradle.kts | Bumps the release to version 2.4.1/build 188 and adds AndroidX WebKit. |
Sequence Diagram
sequenceDiagram
actor User
participant UI as Electrum settings
participant Repo as LightningRepo
participant Probe as ElectrumProbeService
participant Server as Custom Electrum server
User->>UI: Enter or scan endpoint
UI->>Repo: restartWithElectrumServer(url)
Repo->>Probe: probe(parsed server)
Probe->>Server: server.version
Server-->>Probe: JSON-RPC response line
Probe->>Server: server.features
Server-->>Probe: JSON-RPC response line
alt Probe succeeds
Repo->>Repo: Stop and rebuild LDK node
Repo->>Repo: Persist server setting
else Probe fails
Repo-->>UI: Reject server without stopping node
end
Reviews (1): Last reviewed commit: "chore: version 2.4.1" | Re-trigger Greptile
Uh oh!
There was an error while loading. Please reload this page.
E2E test run: https://github.com/synonymdev/bitkit-android/actions/runs/32469183566 ✅ |
fix: prevent crash during wallet backup
Test re-run after cherry-picking also: E2E test run: https://github.com/synonymdev/bitkit-android/actions/runs/32496087612 ✅ |
Uh oh!
There was an error while loading. Please reload this page.
…andling fix: guard coroutine scopes against crashes
Test re-run after cherry-picking also: E2E test run: https://github.com/synonymdev/bitkit-android/actions/runs/32703818024 ✅ |
jvsena42
left a comment
There was a problem hiding this comment.
No blocking issues found. leaving as neutral review
I'll start testing now
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ovitrif
left a comment
There was a problem hiding this comment.
Reviewed the changes manually & approved of them.
Pending release approved.
I leave this as a neutral review so we can't accidentally merge.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
only one empty newline should land in master, not an issue here, just FYI
Bump version to 2.4.1 (build 188) for release.
This is a hotfix branch cut from
v2.4.0, not from master. Do not merge this branch into master. Master already contains these commits plus 2.5.0 work. After store ship, open a small follow-up on master to insert## [2.4.1], drop consumedchangelog.d/next/fragments, and bump master's version.Description
versionCode: 187 → 188versionName: 2.4.0 → 2.4.1Cherry-picked from master
ldk-node0.7.0-rc.62)Also on this branch:
fix: compile release-2.4.1 cherry-picks(strip 2.5.0 leftovers so the cherry-picks compile on 2.4.0).Preview
N/A
QA Notes
N/A
Made with Cursor