Original release notes
Bug fixes! And more security hardening, privacy improvements, and usability enhancements. And a new maker diagnostic tool for checking reachability, offer(s), fidelity bond, and nick authentication.
Added
- Start new installations with a minimal config and support missing settings in the TUI (8e9b3df3)
- Show release-to-release template changes during updates without modifying user configs (8e9b3df3)
- Add a maker diagnostic tool with signet support, nick authentication, and directory/direct offer comparison (7418a64d)
Fixed
- Fix PSBT compatibility with Core Lightning by omitting empty witness scripts (22b0279f)
- Reject unsafe peerlist fields that can forge directory records (88d40f92)
- Keep the wallet daemon responsive during wallet-file cryptography (55f19b30)
- Limit queued wallet operations and return HTTP 429 at capacity (a50a50b3)
- Harden password comparison when re-unlocking an open wallet (a94bf912)
- Avoid exposing wallet paths in lifecycle API errors (5894bcf4)
- Keep backend credentials out of config responses and update logs (a4ee9b4d)
- Protect config and wallet metadata permissions while preserving existing installations (a8fab5e3)
- Bound unauthenticated directory connections awaiting handshakes (05c33846)
- Limit public broadcast amplification and per-peer offer tracking (37cecf5e)
- Bound directory client resource usage and reconnect after limit failures (142c4edf)
- Limit idle and unauthenticated maker direct connections (495f69e0)
- Bound orderbook bond verification work and repeated lookup attempts (87a30297)
- Protect wallet CLI secrets against process inspection and core dumps (4a2b325a)
- Warn when wallet password arguments may be exposed in process listings (17b2debe)
- Warn when remote backend HTTP connections expose credentials and wallet traffic (e4908607)
- Show TOML section context in configuration release-note diffs (8a8a4d8b)
- Clarify unknown fidelity bond recovery coverage and add a manual mark-scanned option (86bdc217)
- Prompt for the BIP39 passphrase in TUI Wallet Info (d3188928)
- Confirm the wallet fingerprint after interactive passphrase entry (d3188928)
- Restore command-line password warnings with newer CLI dependencies (6972ab35)
- Prevent slow directory handshakes from delaying maker startup and accumulating orderbook requests (546afa83)
- Prevent stalled directory writes from indefinitely blocking maker orderbook responses (3f560200)
- Stop reporting harmless directory fanout copies as spam backoff (3f560200)
- Add another default mainnet directory server. (b66b6544)
- Fix premature CoinJoin timeouts and recover late confirmations when refreshing wallet info (12bef3d2)
- Improve maker discovery under load with higher, independent directory and direct response limits (64acb2ad)
- Show low-fee signing refusal details and finalize rejected CoinJoin history before signing (d8af17a1)
- Stop wallet info from reserving addresses and keep fresh receive addresses visible (f65b8106)
- Preserve maker direct connections during identity rotation and rollback (c185b00c)
Configuration Changes
Existing config.toml files are not updated automatically. Review the bundled template changes below and apply the relevant options manually.
--- config.toml.template (0.39.1)
+++ config.toml.template (0.39.2)
@@ -11,7 +11,6 @@ top level
# Core Settings
# ============================================================================
-# [core]
# data_dir = "~/.joinmarket-ng" # Default data directory
# ============================================================================
@@ -271,8 +270,10 @@ [logging]
# Log level: "TRACE", "DEBUG", "INFO", "WARNING", "ERROR"
# level = "INFO"
-# Log sensitive wallet addresses, amounts, balances, txids, transaction data,
-# descriptors, and secrets. Disabled by default.
+# Include privacy-sensitive diagnostics: wallet addresses, amounts, balances,
+# transaction IDs, transaction data, descriptors, and detailed errors.
+# Disabled by default. Exception details can include variable values;
+# review logs before sharing. See the configuration guide's Logging section.
# sensitive = false
# ============================================================================
@@ -449,8 +450,8 @@ [maker]
# identity_rotation_quiet_min_sec = 60 # Minimum silence after old TCP disconnects
# identity_rotation_quiet_max_sec = 600 # Maximum silence before replacement connects
# rescan_interval_sec = 600
-# pending_tx_timeout_min = 60 # Minutes before marking unbroadcast CoinJoins as failed
-# pending_tx_abandon_hours = 72 # Hours before abandoning a broadcast but unconfirmed tx
+# pending_tx_timeout_min = 60 # Monitoring deadline without a TXID; also input reservation lifetime
+# pending_tx_abandon_hours = 72 # Confirmation monitoring deadline for recorded TXIDs; refresh can recover later
# Privacy: random delay (seconds) before re-announcing offers after a balance change.
# Prevents observers from correlating block confirmations with offer updates.
@@ -558,7 +559,7 @@ [taker]
# orderbook_min_wait = 30.0 # Min seconds before early exit is allowed
# orderbook_quiet_period = 15.0 # Seconds of silence to trigger early exit
# rescan_interval_sec = 600
-# pending_tx_abandon_hours = 24 # Hours before abandoning unconfirmed CoinJoin (makers can double-spend)
+# pending_tx_abandon_hours = 24 # Confirmation monitoring deadline; also pending allowance in input reservation lifetime
# Transaction broadcast settings
# Options: "self", "random-peer", "multiple-peers", "not-self"
