Provide some test coverage of `shutdown` msgs for unfunded chans
[rust-lightning] / CHANGELOG.md
index 37a70035c7c24228c2f72b8e8586f57d082547e0..5eff3eb09647167538f6894f522cc774e33194d5 100644 (file)
@@ -1,3 +1,459 @@
+# 0.0.116 - Jul 21, 2023 - "Anchoring the Roadmap"
+
+## API Updates
+
+ * Support for zero-HTLC-fee anchor output channels has been added and is now
+   considered beta (#2367). Users who set
+   `ChannelHandshakeConfig::negotiate_anchors_zero_fee_htlc_tx` should be
+   prepared to handle the new `Event::BumpTransaction`, e.g. via the
+   `BumpTransactionEventHandler` (#2089). Note that in order to do so you must
+   ensure you always have a reserve of available unspent on-chain funds to use
+   for CPFP. LDK currently makes no attempt to ensure this for you.
+ * Users who set `ChannelHandshakeConfig::negotiate_anchors_zero_fee_htlc_tx`
+   and wish to accept inbound anchor-based channels must do so manually by
+   setting `UserConfig::manually_accept_inbound_channels` (#2368).
+ * Support forwarding and accepting HTLCs with a reduced amount has been added,
+   to support LSPs skimming a fee on the penultimate hop (#2319).
+ * BOLT11 and BOLT12 Invoice and related types have been renamed to include a
+   BOLTNN prefix, ensuring uniqueness in `lightning{,-invoice}` crates (#2416).
+ * `Score`rs now have an associated type which represents a parameter passed
+   when calculating penalties. This allows for the same `Score`r to be used with
+   different penalty calculation parameters (#2237).
+ * `DefaultRouter` is no longer restrained to a `Mutex`-wrapped `Score`,
+   allowing it to be used in `no-std` builds (#2383).
+ * `CustomMessageHandler::provided_{node,init}_features` and various custom
+   feature bit methods on `*Features` were added (#2204).
+ * Keysend/push payments using MPP are now supported when receiving if
+   `UserConfig::accept_mpp_keysend` is set and when sending if specified in the
+   `PaymentParameters`. Note that not all recipients support this (#2156).
+ * A new `ConfirmationTarget::MempoolMinimum` has been added (#2415).
+ * `SpendableOutputDescriptor::to_psbt_input` was added (#2286).
+ * `ChannelManager::update_partial_channel_config` was added (#2330).
+ * `ChannelDetails::channel_shutdown_state` was added (#2347).
+ * The shutdown script can now be provided at shutdown time via
+   `ChannelManager::close_channel_with_feerate_and_script` (#2219).
+ * `BroadcasterInterface` now takes multiple transactions at once. While not
+   available today, in the future single calls should be passed to a full node
+   via a single batch/package transaction acceptance API (#2272).
+ * `Balance::claimable_amount_satoshis` was added (#2333).
+ * `payment_{hash,preimage}` have been added to some `Balance` variants (#2217).
+ * The `lightning::chain::keysinterface` is now `lightning::sign` (#2246).
+ * Routing to a blinded path has been implemented, though sending to such a
+   route is not yet supported in `ChannelManager` (#2120).
+ * `OffersMessageHandler` was added for offers-related onion messages (#2294).
+ * The `CustomMessageHandler` parameter to `PeerManager` has moved to
+   `MessageHandler` from `PeerManager::new` explicitly (#2249).
+ * Various P2P messages for dual funding channel establishment have been added,
+   though handling for them is not yet in `ChannelManager` (#1794)
+ * Script-fetching methods in `sign` interfaces can now return errors, see docs
+   for the implications of failing (#2213).
+ * The `data_loss_protect` option is now required when reading
+   `channel_reestablish` messages, as many others have done (#2253).
+ * `InFlightHtlcs::add_inflight_htlc` has been added (#2042).
+ * The `init` message `networks` field is now written and checked (#2329).
+ * `PeerManager` generics have been simplified with the introduction of the
+   `APeerManager` trait (#2249).
+ * `ParitalOrd` and `Ord` are now implemented for `Invoice` (#2279).
+ * `ParitalEq` and `Debug` are now implemented for `InMemorySigner` (#2328).
+ * `ParitalEq` and `Eq` are now implemented for `PaymentError` (#2316).
+ * `NetworkGraph::update_channel_from_announcement_no_lookup` was added (#2222).
+ * `lightning::routing::gossip::verify_{channel,node}_announcement` was added
+   (#2307).
+
+## Backwards Compatibility
+ * `PaymentParameters` written with blinded path info using LDK 0.0.115 will not
+   be readable in LDK 0.0.116, and vice versa.
+ * Forwarding less than `Event::HTLCIntercepted::expected_outbound_amount_msat`
+   in `ChannelManager::forward_intercepted_htlc` may prevent the
+   `ChannelManager` from being read by LDK prior to 0.0.116 (#2319)
+ * Setting `ChannelConfig::accept_underpaying_htlcs` may prevent the
+   `ChannelManager` from being read by LDK prior to 0.0.116 and un-setting the
+   parameter between restarts may lead to payment failures (#2319).
+ * `ChannelManager::create_inbound_payment{,_for_hash}_legacy` has been removed,
+   removing the ability to create inbound payments which are claimable after
+   downgrade to LDK 0.0.103 and prior. In the future handling such payments will
+   also be removed (#2351).
+ * Some fields required by LDK 0.0.103 and earlier are no longer written, thus
+   deserializing objects written by 0.0.116 with 0.0.103 may now fail (#2351).
+
+## Bug Fixes
+ * `ChannelDetails::next_outbound_htlc_limit_msat` was made substantially more
+   accurate and a corresponding `next_outbound_htlc_minimum_msat` was added.
+   This resolves issues where unpayable routes were generated due to
+   overestimation of the amount which is payable over one of our channels as
+   the first hop (#2312).
+ * A rare case where delays in processing `Event`s generated by
+   `ChannelMonitor`s could lead to loss of those events in case of an untimely
+   crash. This could lead to the loss of an `Event::SpendableOutputs` (#2369).
+ * Fixed a regression in 0.0.115 which caused `PendingHTLCsForwardable` events
+   to be missed when processing phantom node receives. This caused such
+   payments to be delayed until a further, unrelated HTLC came in (#2395).
+ * Peers which are unresponsive to channel messages for several timer ticks are
+   now disconnected to allow for on-reconnection state machine reset. This
+   works around some issues in LND prior to 16.3 which can cause channels to
+   hang and eventually force-close (#2293).
+ * `ChannelManager::new` now requires the current time (either from a recent
+   block header or the system clock), ensuring invoices created immediately
+   after startup aren't already expired (#2372).
+ * Resolved an issue where reading a `ProbabilisticScorer` on some platforms
+   (e.g. iOS) can lead to a panic (#2322).
+ * `ChannelConfig::max_dust_htlc_exposure` is now allowed to scale based on
+   current fees, and the default has been updated to do so. This substantially
+   reduces the chance of force-closure due to dust exposure. Note that existing
+   channels will retain their current value and you may wish to update the
+   value on your existing channels on upgrade (#2354).
+ * `PeerManager::process_events` no longer blocks in any case. This fixes a bug
+   where reentrancy from `PeerManager` into user code which eventually calls
+   `process_events` could lead to a deadlock (#2280).
+ * The persist timing of network graph and scoring in
+   `lightning-background-processor` has been tweaked to provide more reliable
+   persistence after updates to either (#2226).
+ * The number of route hints added to BOLT 11 invoices by the
+   `lightning-invoice::utils` builders has been reduced to three to ensure
+   invoices can be represented in scan-able QR codes (#2044).
+ * Fixed sending large onion messages, which would previously have resulted in
+   an HMAC error on the second hop (#2277).
+ * Fixed a memory leak that may occur when a `ChannelManager` or
+   `ChannelMonitor` is `drop`ed (#2233).
+ * A potential deadlock in calling `NetworkGraph::eq` was resolved (#2284).
+ * Fixed an overflow which prevented disconnecting peers in some minor cases
+   with more than 31 peers (#2245).
+ * Gossip messages with an unknown chain hash are now ignored (#2230).
+ * Rapid Gossip Sync processing now fails on an unknown chain hash (#2324).
+ * `RouteHintHop::htlc_maximum_msat` is now enforced. Note that BOLT11 route
+   hints do not have such a field so this code is generally unused (#2305).
+
+## Security
+0.0.116 fixes a denial-of-service vulnerability which is reachable from
+untrusted input from channel counterparties if a 0-conf channel exists with
+that counterparty.
+ * A premature `announcement_signatures` message from a peer prior to a 0-conf
+   channel's funding transaction receiving any confirmations would panic in any
+   version since 0-conf channels were introduced (#2439).
+
+In total, this release features 142 files changed, 21033 insertions, 11066
+deletions in 327 commits from 21 authors, in alphabetical order:
+ * Alec Chen
+ * Andrei
+ * Antoine Riard
+ * Arik Sosman
+ * Chad Upjohn
+ * Daniel Granhão
+ * Duncan Dean
+ * Elias Rohrer
+ * Fred Walker
+ * Gleb Naumenko
+ * Jeffrey Czyz
+ * Martin Habovstiak
+ * Matt Corallo
+ * Tony Giorgio
+ * Valentine Wallace
+ * Vladimir Fomene
+ * Willem Van Lint
+ * Wilmer Paulino
+ * benthecarman
+ * ff
+ * henghonglee
+
+
+# 0.0.115 - Apr 24, 2023 - "Rebroadcast the Bugfixes"
+
+## API Updates
+ * The MSRV of the main LDK crates has been increased to 1.48 (#2107).
+ * Attempting to claim an un-expired payment on a channel which has closed no
+   longer fails. The expiry time of payments is exposed via
+   `PaymentClaimable::claim_deadline` (#2148).
+ * `payment_metadata` is now supported in `Invoice` deserialization, sending,
+   and receiving (via a new `RecipientOnionFields` struct) (#2139, #2127).
+ * `Event::PaymentFailed` now exposes a failure reason (#2142).
+ * BOLT12 messages now support stateless generation and validation (#1989).
+ * The `NetworkGraph` is now pruned of stale data after RGS processing (#2161).
+ * Max inbound HTLCs in-flight can be changed in the handshake config (#2138).
+ * `lightning-transaction-sync` feature `esplora-async-https` was added (#2085).
+ * A `ChannelPending` event is now emitted after the initial handshake (#2098).
+ * `PaymentForwarded::outbound_amount_forwarded_msat` was added (#2136).
+ * `ChannelManager::list_channels_by_counterparty` was added (#2079).
+ * `ChannelDetails::feerate_sat_per_1000_weight` was added (#2094).
+ * `Invoice::fallback_addresses` was added to fetch `bitcoin` types (#2023).
+ * The offer/refund description is now exposed in `Invoice{,Request}` (#2206).
+
+## Backwards Compatibility
+ * Payments sent with the legacy `*_with_route` methods on LDK 0.0.115+ will no
+   longer be retryable via the LDK 0.0.114- `retry_payment` method (#2139).
+ * `Event::PaymentPathFailed::retry` was removed and will always be `None` for
+    payments initiated on 0.0.115 which fail on an earlier version (#2063).
+ * `Route`s and `PaymentParameters` with blinded path information will not be
+   readable on prior versions of LDK. Such objects are not currently constructed
+   by LDK, but may be when processing BOLT12 data in a coming release (#2146).
+ * Providing `ChannelMonitorUpdate`s generated by LDK 0.0.115 to a
+   `ChannelMonitor` on 0.0.114 or before may panic (#2059). Note that this is
+   in general unsupported, and included here only for completeness.
+
+## Bug Fixes
+ * Fixed a case where `process_events_async` may `poll` a `Future` which has
+   already completed (#2081).
+ * Fixed deserialization of `u16` arrays. This bug may have previously corrupted
+   the historical buckets in a `ProbabilisticScorer`. Users relying on the
+   historical buckets may wish to wipe their scorer on upgrade to remove corrupt
+   data rather than waiting on it to decay (#2191).
+ * The `process_events_async` task is now `Send` and can thus be polled on a
+   multi-threaded runtime (#2199).
+ * Fixed a missing macro export causing
+   `impl_writeable_tlv_based_enum{,_upgradable}` calls to not compile (#2091).
+ * Fixed compilation of `lightning-invoice` with both `no-std` and serde (#2187)
+ * Fix an issue where the `background-processor` would not wake when a
+   `ChannelMonitorUpdate` completed asynchronously, causing delays (#2090).
+ * Fix an issue where `process_events_async` would exit immediately (#2145).
+ * `Router` calls from the `ChannelManager` now call `find_route_with_id` rather
+   than `find_route`, as was intended and described in the API (#2092).
+ * Ensure `process_events_async` always exits if any sleep future returns true,
+   not just if all sleep futures repeatedly return true (#2145).
+ * `channel_update` messages no longer set the disable bit unless the peer has
+   been disconnected for some time. This should resolve cases where channels are
+   disabled for extended periods of time (#2198).
+ * We no longer remove CLN nodes from the network graph for violating the BOLT
+   spec in some cases after failing to pay through them (#2220).
+ * Fixed a debug assertion which may panic under heavy load (#2172).
+ * `CounterpartyForceClosed::peer_msg` is now wrapped in UntrustedString (#2114)
+ * Fixed a potential deadlock in `funding_transaction_generated` (#2158).
+
+## Security
+ * Transaction re-broadcasting is now substantially more aggressive, including a
+   new regular rebroadcast feature called on a timer from the
+   `background-processor` or from `ChainMonitor::rebroadcast_pending_claims`.
+   This should substantially increase transaction confirmation reliability
+   without relying on downstream `TransactionBroadcaster` implementations for
+   rebroadcasting (#2203, #2205, #2208).
+ * Implemented the changes from BOLT PRs #1031, #1032, and #1040 which resolve a
+   privacy vulnerability which allows an intermediate node on the path to
+   discover the final destination for a payment (#2062).
+
+In total, this release features 110 files changed, 11928 insertions, 6368
+deletions in 215 commits from 21 authors, in alphabetical order:
+ * Advait
+ * Alan Cohen
+ * Alec Chen
+ * Allan Douglas R. de Oliveira
+ * Arik Sosman
+ * Elias Rohrer
+ * Evan Feenstra
+ * Jeffrey Czyz
+ * John Cantrell
+ * Lucas Soriano del Pino
+ * Marc Tyndel
+ * Matt Corallo
+ * Paul Miller
+ * Steven
+ * Steven Williamson
+ * Steven Zhao
+ * Tony Giorgio
+ * Valentine Wallace
+ * Wilmer Paulino
+ * benthecarman
+ * munjesi
+
+
+# 0.0.114 - Mar 3, 2023 - "Faster Async BOLT12 Retries"
+
+## API Updates
+ * `InvoicePayer` has been removed and its features moved directly into
+   `ChannelManager`. As such it now requires a simplified `Router` and supports
+   `send_payment_with_retry` (and friends). `ChannelManager::retry_payment` was
+   removed in favor of the automated retries. Invoice payment utilities in
+   `lightning-invoice` now call the new code (#1812, #1916, #1929, #2007, etc).
+ * `Sign`/`BaseSign` has been renamed `ChannelSigner`, with `EcdsaChannelSigner`
+   split out in anticipation of future schnorr/taproot support (#1967).
+ * The catch-all `KeysInterface` was split into `EntropySource`, `NodeSigner`,
+   and `SignerProvider`. `KeysManager` implements all three (#1910, #1930).
+ * `KeysInterface::get_node_secret` is now `KeysManager::get_node_secret_key`
+   and is no longer required for external signers (#1951, #2070).
+ * A `lightning-transaction-sync` crate has been added which implements keeping
+   LDK in sync with the chain via an esplora server (#1870). Note that it can
+   only be used on nodes that *never* ran a previous version of LDK.
+ * `Score` is updated in `BackgroundProcessor` instead of via `Router` (#1996).
+ * `ChainAccess::get_utxo` (now `UtxoAccess`) can now be resolved async (#1980).
+ * BOLT12 `Offer`, `InvoiceRequest`, `Invoice` and `Refund` structs as well as
+   associated builders have been added. Such invoices cannot yet be paid due to
+   missing support for blinded path payments (#1927, #1908, #1926).
+ * A `lightning-custom-message` crate has been added to make combining multiple
+   custom messages into one enum/handler easier (#1832).
+ * `Event::PaymentPathFailed` is now generated for failure to send an HTLC
+   over the first hop on our local channel (#2014, #2043).
+ * `lightning-net-tokio` no longer requires an `Arc` on `PeerManager` (#1968).
+ * `ChannelManager::list_recent_payments` was added (#1873).
+ * `lightning-background-processor` `std` is now optional in async mode (#1962).
+ * `create_phantom_invoice` can now be used in `no-std` (#1985).
+ * The required final CLTV delta on inbound payments is now configurable (#1878)
+ * bitcoind RPC error code and message are now surfaced in `block-sync` (#2057).
+ * Get `historical_estimated_channel_liquidity_probabilities` was added (#1961).
+ * `ChannelManager::fail_htlc_backwards_with_reason` was added (#1948).
+ * Macros which implement serialization using TLVs or straight writing of struct
+   fields are now public (#1823, #1976, #1977).
+
+## Backwards Compatibility
+ * Any inbound payments with a custom final CLTV delta will be rejected by LDK
+   if you downgrade prior to receipt (#1878).
+ * `Event::PaymentPathFailed::network_update` will always be `None` if an
+   0.0.114-generated event is read by a prior version of LDK (#2043).
+ * `Event::PaymentPathFailed::all_paths_failed` will always be false if an
+   0.0.114-generated event is read by a prior version of LDK. Users who rely on
+   it to determine payment retries should migrate to `Event::PaymentFailed`, in
+   a separate release prior to upgrading to LDK 0.0.114 if downgrading is
+   supported (#2043).
+
+## Performance Improvements
+ * Channel data is now stored per-peer and channel updates across multiple
+   peers can be operated on simultaneously (#1507).
+ * Routefinding is roughly 1.5x faster (#1799).
+ * Deserializing a `NetworkGraph` is roughly 6x faster (#2016).
+ * Memory usage for a `NetworkGraph` has been reduced substantially (#2040).
+ * `KeysInterface::get_secure_random_bytes` is roughly 200x faster (#1974).
+
+## Bug Fixes
+ * Fixed a bug where a delay in processing a `PaymentSent` event longer than the
+   time taken to persist a `ChannelMonitor` update, when occurring immediately
+   prior to a crash, may result in the `PaymentSent` event being lost (#2048).
+ * Fixed spurious rejections of rapid gossip sync data when the graph has been
+   updated by other means between gossip syncs (#2046).
+ * Fixed a panic in `KeysManager` when the high bit of `starting_time_nanos`
+   is set (#1935).
+ * Resolved an issue where the `ChannelManager::get_persistable_update_future`
+   future would fail to wake until a second notification occurs (#2064).
+ * Resolved a memory leak when using `ChannelManager::send_probe` (#2037).
+ * Fixed a deadlock on some platforms at least when using async `ChannelMonitor`
+   updating (#2006).
+ * Removed debug-only assertions which were reachable in threaded code (#1964).
+ * In some cases when payment sending fails on our local channel retries no
+   longer take the same path and thus never succeed (#2014).
+ * Retries for spontaneous payments have been fixed (#2002).
+ * Return an `Err` if `lightning-persister` fails to read the directory listing
+   rather than panicing (#1943).
+ * `peer_disconnected` will now never be called without `peer_connected` (#2035)
+
+## Security
+0.0.114 fixes several denial-of-service vulnerabilities which are reachable from
+untrusted input from channel counterparties or in deployments accepting inbound
+connections or channels. It also fixes a denial-of-service vulnerability in rare
+cases in the route finding logic.
+ * The number of pending un-funded channels as well as peers without funded
+   channels is now limited to avoid denial of service (#1988).
+ * A second `channel_ready` message received immediately after the first could
+   lead to a spurious panic (#2071). This issue was introduced with 0conf
+   support in LDK 0.0.107.
+ * A division-by-zero issue was fixed in the `ProbabilisticScorer` if the amount
+   being sent (including previous-hop fees) is equal to a channel's capacity
+   while walking the graph (#2072). The division-by-zero was introduced with
+   historical data tracking in LDK 0.0.112.
+
+In total, this release features 130 files changed, 21457 insertions, 10113
+deletions in 343 commits from 18 authors, in alphabetical order:
+ * Alec Chen
+ * Allan Douglas R. de Oliveira
+ * Andrei
+ * Arik Sosman
+ * Daniel Granhão
+ * Duncan Dean
+ * Elias Rohrer
+ * Jeffrey Czyz
+ * John Cantrell
+ * Kurtsley
+ * Matt Corallo
+ * Max Fang
+ * Omer Yacine
+ * Valentine Wallace
+ * Viktor Tigerström
+ * Wilmer Paulino
+ * benthecarman
+ * jurvis
+
+
+# 0.0.113 - Dec 16, 2022 - "Big Movement Intercepted"
+
+## API Updates
+ * `ChannelManager::send_payment` now takes an explicit `PaymentId` which is a
+   loose idempotency token. See `send_payment` docs for more (#1761, #1826).
+ * HTLCs bound for SCIDs from `ChannelManager::get_intercept_scid` are now
+   intercepted and can be forwarded manually over any channel (#1835, #1893).
+ * `Confirm::get_relevant_txids` now returns a `BlockHash`, expanding the set
+   of cases where `transaction_unconfirmed` must be called, see docs (#1796).
+ * Pending outbound payments are no longer automatically timed-out a few blocks
+   after failure. Thus, in order to avoid leaking memory, you MUST call
+   `ChannelManager::abandon_payment` when you no longer wish to retry (#1761).
+ * `ChannelManager::abandon_payment` docs were updated to note that the payment
+   may return to pending after a restart if no persistence occurs (#1907).
+ * `Event::PaymentReceived` has been renamed `Event::PaymentClaimable` (#1891).
+ * `Event` handling is now optionally async for Rust users (#1787).
+ * `user_channel_id` is now a `u128` and random for inbound channels (#1790).
+ * A new `ChannelReady` event is generated whenever a channel becomes ready to
+   be used, i.e., after both sides sent the `channel_ready` message (#1743).
+ * `NetworkGraph` now prunes channels where either node is offline for 2 weeks
+   and refuses to accept re-announcements of pruned channels (#1735).
+ * Onion messages are now read in `CustomOnionMessageHandler` rather than via
+   `MaybeReadableArgs` (#1809).
+ * Added a new util to generate an invoice with a custom hash (#1894) -
+`create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash`
+ * `Sign`ers are now by default re-derived using `KeysInterface`'s new
+   `derive_channel_signer` rather than `read_chan_signer` (#1867).
+ * `Confirm::transactions_confirmed` is now idempotent (#1861).
+ * `ChannelManager::compute_inflight_htlcs` has been added to fetch in-flight
+   HTLCs for scoring. Note that `InvoicePayer` does this for you (#1830).
+ * Added `PaymentClaimable::via_channel_id` (#1856).
+ * Added the `node_id` (phantom or regular) to payment events (#1766).
+ * Added the funding transaction `confirmations` to `ChannelDetails` (#1856).
+ * `BlindedRoute` has been renamed `BlindedPath` (#1918).
+ * Support for the BOLT 4 "legacy" onion format has been removed, in line with
+   its removal in the spec and vanishingly rare use (#1413).
+ * `ChainMonitor::list_pending_monitor_updates` was added (#1834).
+ * Signing for non-zero-fee anchor commitments is supported again (#1828).
+ * Several helpers for transaction matching and generation are now pub (#1839).
+
+## Bug Fixes
+ * Fixed a rare race where a crash may result in a pending HTLC not being
+   failed backwards, leading to a force-closure by our counterparty (#1857).
+ * Avoid incorrectly assigning a lower-bound on channel liquidity when routing
+   fails due to a closed channel earlier in the path (#1817).
+ * If a counterparty increases the channel fee, but not enough per our own fee
+   estimator, we no longer force-close the channel (#1852).
+ * Several bugs in the `lightning-background-processor` `future` feature were
+   fixed, including requirements doc corrections (#1843, #1845, #1851).
+ * Some failure messages sent back when failing an HTLC were corrected (#1895).
+ * `rapid-gossip-sync` no longer errors if an update is applied duplicatively
+   or in rare cases when the graph is updated from payment failures (#1833).
+ * Sending onion messages to a blinded path in which we're the introduction
+   node no longer fails (#1791).
+
+## Backwards Compatibility
+ * No `ChannelReady` events will be generated for previously existing channels,
+   including those which become ready after upgrading to 0.0.113 (#1743).
+ * Once `UserConfig::accept_intercept_htlcs` is set, downgrades to LDK versions
+   prior to 0.0.113 are not supported (#1835).
+ * Existing payments may see a `PaymentClaimable::user_channel_id` of 0 (#1856)
+ * When downgrading to a version of LDK prior to 0.0.113 when there are
+   resolved payments waiting for a small timeout, the payments may not be
+   removed, preventing payments with the same `PaymentId` (#1761).
+
+In total, this release features 76 files changed, 11639 insertions, 6067
+deletions in 210 commits from 18 authors, in alphabetical order:
+ * Antoine Riard
+ * Arik Sosman
+ * Devrandom
+ * Duncan Dean
+ * Elias Rohrer
+ * Gleb Naumenko
+ * Jeffrey Czyz
+ * John Cantrell
+ * Matt Corallo
+ * Tee8z
+ * Tobin C. Harding
+ * Tristan F
+ * Valentine Wallace
+ * Viktor Tigerström
+ * Wilmer Paulino
+ * benthecarman
+ * jurvis
+ * ssbright
+
+
 # 0.0.112 - Oct 25, 2022 - "History Matters"
 
 ## API Updates