Add a System theme option that follows the OS light or dark setting, and make it the default for new installs (View menu > Theme > System)
Allow BitBox02 xpub export and multisig signing at the m/45h keypath on firmware v9.19.0 and later
Refuse BitBox02 keystore import and discovery for legacy P2SH and P2PKH wallets it cannot sign for, and hide those script types from the device import menus
Recover the Trezor Safe 7 session when the device retransmits an unacknowledged message, and skip packets that are not v1 framed when probing for the Trezor protocol version
Keep the Trezor pairing credential and v1 message payloads out of the debug logs
Send the remaining Ledger merkle proof hashes when a proof does not fit a single response (@hashbender)
Include the non-witness UTXO in PSBTs for Krux keystores, including in the QR display when the PSBT has more than one input
Add file import of the xpub descriptor Jade writes to USB storage
Require the policy line and check the declared cosigner count when importing Coldcard format multisig wallets
Name the sortedmulti reinterpretation in the message for a BSMS record whose first address does not match
Reject taproot output descriptors containing a script tree
Do not offer copy and QR export actions for an extended private key pasted into the keystore xpub field
Cap BBQr display and PDF encodings at the 1295 parts the header can number, using larger parts for data that needs more
Verify the signatures of a finalized PSBT before copying its fields into an open transaction
Determine the signed keystores using the sighash type each signature carries, and show the signatures for a signed transaction opened offline or when the server cannot return every input
Verify silent payment output scripts before device signing, combining and export, and explicitly reject a PSBT signed over silent payment outputs that have not been computed
Prefer the silent payment address of a BIP321 URI or DNS payment instruction where the sending wallet can pay to it, treating the address in the body as a fallback
Take the silent payments tweak of an input from the wallet node when adding key path information, and write the output descriptor of a silent payments address as rawtr()
Do not advance the stored block height of a silent payments wallet until a scan has covered it, and fetch all nodes on a refresh when a reorg has invalidated any of them
Hold silent payment notifications arriving before the subscribe response is recorded, discarding those of a replaced subscription
Hide account discovery on silent payments wallets, and hide the gap limit and request a birth date for them in the terminal
Derive the fee of a wallet transaction from the transactions funding its inputs rather than the value its history entry reports
Include unconfirmed wallet descendant fees when increasing a transaction fee, advise the replaced fees plus relay cost on rejection, and allow a CPFP child to be replaced
Clear a replacement transaction when a UTXO it spends is frozen rather than silently removing the input
Revert the sighash selection when the SIGHASH_NONE warning is dismissed rather than answered no
Map transaction hex witness segments by the segwit flag, treating an input with no witness as empty
Ignore amount digits typed beyond the selected unit precision in the Send tab amount and fee fields and the Send to Many grid, and cut pasted amounts to it
Read sats amounts with a fraction or exponent in a Send to Many CSV import, cutting them to whole sats rather than skipping those rows
Switch wallet tables and charts to BTC when an open wallet on the auto unit receives 1 BTC or more
Name the bitcoin unit in the value, balance and fee column headings of the transactions, UTXOs and search results CSV exports
Refuse an announced chain tip below the last pinned header, or one the header sync cannot link in, reverting to the stored tip with a warning
Verify a transaction tab height taken from the server, warning where the server will not prove it
Treat a Bitcoin Core chain that falls below the last polled tip as a reorg rather than failing every poll until reconnect
Refresh a node when its script hash status returns to an earlier value, retiring the mitigation for electrs versions before v0.9.0
Ensure Cormorant responses and notifications are serialized per client connection, lock the store against client connection reads, and close the client socket however its handler exits
Purge a Bitcoin Core wallet transaction with only mempool conflicts from Cormorant once it leaves the mempool
Refresh the cached Bitcoin Core descriptor ranges when a wallet wants a range beyond them, so a range already extended is not imported again or refused
Cancel a retrying connection attempt when testing a server, and do not import wallet descriptors on a Cormorant started for the test
Report Bitcoin Core RPC errors that carry no result instead of failing on a null response, and retain an entered https scheme when configuring a Bitcoin Core server
Floor the Electrum batch page size at one when halving it after a timeout
Skip the exchange currencies request in offline mode in the desktop and terminal general settings
Refuse to display a wallet seed in the terminal when the wallet was locked while its key was being derived
Skip addresses already given out under a label, and widen the gap limit on an explicit advance in the terminal receive dialog
Reject unknown command line options and values given to flags with an error and exit code instead of starting on the default network, and accept the --option=value form
Bug fix: Fix the transaction tab confirmation indicator when the tab opens at six confirmations or a reorg takes it back below, clamping confirmations at zero for a transaction above the current tip
Bug fix: Fix the transaction tab confirmation count not following new blocks when its input transactions cannot be fetched
Bug fix: Fix handling an input transaction the server cannot return in the fee, spend, outpoint and diagram views
Bug fix: Fix transactions not held in a wallet's transactions model being registered for confirmation updates, and entries not being unregistered on removal, history clear and tab close
Bug fix: Fix the node refresh subscription not being released when a wallet is closed
Bug fix: Fix a silent payments history waiter left parked for the session when a failed widening restores a completed scan
Bug fix: Fix the stored table layout of a wallet not being copied, and not being cleared along with silent payment addresses on a new account
Bug fix: Fix a PayNym contact whose payment code does not parse being kept with a null code or failing the whole PayNym response, omitting it instead
Bug fix: Fix a unit format decimal formatter shared between the export task and table cells
Bug fix: Fix handling a short server.version response when testing a server connection in the desktop and terminal
Bug fix: Fix showing terminal alert buttons carrying their own text, and disable the terminal add account button when no accounts remain
Bug fix: Fix an error when importing a Sparrow wallet file by deriving its public keys from the seed
Bug fix: Fix a previously scanned wallet being kept when a file, text payload or unrecognised QR is then imported in the same pane
Bug fix: Fix the sizing of an unresolved silent payment output when deriving the fee
Bug fix: Fix the silent payment input hash being derived only from inputs contributing a public key, and the BIP375 k ordering of silent payment codes sharing a scan key
Bug fix: Fix recognising a silent payments descriptor when matching BIP329 label origins and reading a descriptor PDF
Bug fix: Fix a new server toggle pulse animation starting while a previous one is still running