Releases: synonymdev/ldk-node
Releases · synonymdev/ldk-node
v0.7.0-rc.38
Add receive address index APIs
v0.7.0-rc.37
Adds probe correlation support to the bindings.
- Exposes ProbeHandle values from the BOLT11 and spontaneous send_probes APIs.
- Emits ProbeSuccessful and ProbeFailed events for matching dispatched probe IDs.
- Updates generated Swift, Kotlin, Python bindings and native libraries for v0.7.0-rc.37.
v0.7.0-rc.36
Changes since rc.35
- Fixed orphaned channel migration blocking node startup when the existing monitor
in the KV store can't be deserialized (e.g.,UnknownVersionfrom a newer LDK
version). The migration now skips writing and lets the node start normally,
preserving the existing monitor data. - Switched rust-lightning fork from
ovitrif/rust-lightningtosynonymdev/rust-lightning#0.2.2-accept-stale-monitors.
v0.7.0-rc.35
Changes since rc.34
- Fixed HTLC timeout force-close during stale monitor recovery. The healing keysend
created HTLCs with a stalecltv_expiry(based on the ChannelManager's outdated
best block height for users offline >24h). When chain sync caught up, LDK
force-closed the channel (HTLCsTimedOut). Fix: sync the chain tip before sending
healing payments so HTLCs get a valid CLTV expiry. If sync fails, skip the keysend
to avoid the stale-CLTV force-close. - Fixed native crash (SIGABRT) during stale channel monitor recovery. The
CounterpartyCommitmentSecretsstore was not reset when force-syncing the
monitor'supdate_id, causingprovide_secret()to fail after a few commitment
round-trips, triggering aChannelMonitorUpdateStatusmode mismatch panic.
(rust-lightning fork change)
v0.7.0-rc.34
Changes since rc.33
- Fixed native crash (SIGABRT) during stale channel monitor recovery. The
CounterpartyCommitmentSecretsstore was not reset when force-syncing the
monitor'supdate_id, causingprovide_secret()to fail validation after
a few commitment round-trips. The failed update triggered a
ChannelMonitorUpdateStatusmode mismatch panic in the ChannelManager.
Fix: reset the secrets store inforce_set_latest_update_idso new secrets
build a fresh, consistent tree. (rust-lightning fork change) - Added
set_accept_stale_channel_monitorsbuilder API for one-time recovery when channel
monitors are stale compared to the channel manager (e.g., after migration overwrote newer
monitors with stale backup data). Defers chain sync and sends probes to heal monitors via
commitment round-trips. - Added
BuildError::DangerousValuevariant to distinguish stale channel monitor failures
from otherReadFailedcauses, enabling precise app-side recovery logic. - Depends on patched rust-lightning fork (
ovitrif/rust-lightning#0.2.2-accept-stale-monitors-v2).
v0.7.0-rc.33
Changes since rc.32
- Added
connection_timeout_secsfield toElectrumSyncConfig(default: 10 s) to prevent thread pool exhaustion from dead Electrum sockets - Fixed FS→KV channel data migration blindly overwriting newer state (monitors and channel manager)
- Migration read/deserialization failures now fail-closed to prevent silent data loss
- Reworded changelog and regenerated bindings
v0.7.0-rc.32
Version bump to bust Android CI cache after rc.31 retag; no Rust/FFI code changes.
- Bumped version from
0.7.0-rc.31to0.7.0-rc.32across all manifests - Regenerated bindings
v0.7.0-rc.31
This release:
- Fix cumulative change-address derivation index leak in dry-run tx builds —
cancel_tx/
cancel_dry_run_txon all early-return and fee-estimation paths (#72) - Speed up
./bindgen.sh: eliminate redundantcargo build --releaseand duplicate
gobley-uniffi-bindgeninstall, standardize all targets onrelease-smallerprofile - Fix AI review persona rules blocking Claude code reviews in CI — skip build/test stages
when running as code-review plugin in GitHub Actions (AGENTS.md) - Update all bindings
v0.7.0-rc.30
This release:
- Add
OnchainPayment::calculate_send_all_fee()as the fee-estimation counterpart of
send_all_to_address(), allowing callers to preview the mining fee for a drain transaction
before broadcasting. - Supports
retain_reservesflag to matchsend_all_to_addressbehavior (anchor channel
reserve handling).
v0.7.0-rc.29
0.7.0-rc.29 (Synonym Fork)
Bug Fixes
- Bumped
FEE_RATE_CACHE_UPDATE_TIMEOUT_SECSandTX_BROADCAST_TIMEOUT_SECSfrom 5s to 15s.
The 5s node-level timeout fires before Electrum can complete a request (10s timeout), causing
FeerateEstimationUpdateTimeouton node start. - Fixed external scores sync using
spawn_background_processor_task(reserved for the single
LDK background processor), which caused adebug_assertpanic. Switched to
spawn_cancellable_background_task. - Fixed
PeerStore::add_peersilently ignoring address updates for existing peers. When a peer's
IP address changes (e.g., LSP node migration),add_peernow upserts the socket address and
re-persists, instead of returning early. - Backported upstream Electrum sync fix (PR #4341): Skip unconfirmed
get_historyentries in
ElectrumSyncClient. - Fixed duplicate payment events being emitted when LDK replays events after node restart.
- Switched from forked rust-lightning back to official upstream crates.io releases.