• 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 wallet keystore changes affecting addresses not considering silent payment scan addresses
• 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