Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This commit simply adds a new person's PGP public-key fingerprint to the list of trusted release signers in two documentation files. It does not change any code, fix any bug, or alter any security behavior of the software itself.
This is a tiny internal fix to make a bookkeeping migration produce stable event ordering. It changes the timestamp used when creating historical 'deposit' records during a one-time database migration, so the records sort consistently with…
This commit is a documentation-only cleanup of the JSON-RPC command help files. It corrects which numeric error codes are listed for each command so the published schemas match what the software actually returns. No program logic, validati…
Documentation-only change with no executable code modificationsCorrects RPC schema error-code metadata to match actual handler behaviorNo change to input parsing, authorization, cryptography, or network behavior
This commit fixes a bug where a setting that controls whether unexpected transaction signatures are allowed was not initialized when the channel daemon starts. If a peer sent such signatures before the channel was fully ready, the program …
use of uninitialized variableundefined behavior (invalid bool load)network-triggered code path
This commit fixes the project's internal nightly code-coverage CI workflow. It changes how test coverage files are collected, ensures the same LLVM compiler version is used to generate and merge coverage data, and uploads a Codecov-compati…
This commit is a large cleanup of Core Lightning's API schemas, generated RPC bindings, and related plugin code. The stated goal is to make the documented 'required' fields match what the C code actually always produces or expects. In prac…
Large schema-only change with no accompanying security advisory or CVEOne semantic change to plugin hook response: invoice_payment hook can now reject with only failure_message and no resultMany fields change from optional to required in public RPC/protobuf interfaces
This commit only updates documentation. It adds error code 313 to the documented error lists for several Core Lightning commands (fundpsbt, utxopsbt, txprepare, multiwithdraw, and upgradewallet). The error code already existed in the code …
This commit fixes a release-script check that verifies the cryptographic signature on a file of checksums. Previously, the script only told GPG to verify the signature file itself. If someone replaced that signature file with an inline-sig…
Incorrect cryptographic verification logic in release toolingPotential false-positive signature verification with inline-signed .asc substitutionRelease-integrity hardening
This commit updates Core Lightning's release documentation to tell users and release managers to run gpg --verify with both the signature file and the manifest file named explicitly. The old one-argument form can silently succeed even if t…
Verification bypass risk in release artifact validationgpg --verify single-argument form can exit 0 without reading the intended manifestDocumentation-only hardening of release process
This commit is a routine update to the Rust dependency lock file (Cargo.lock), bumping many third-party libraries to newer patch or minor versions. The commit message gives no security reason for the update, and no verified references link…
Routine dependency refresh with no stated security rationaleUpdates to security-sensitive transitive crates (rustls, hyper, h2, tokio, webpki-roots) but no evidence these versions fix known vulnerabilitiesNo source-code changes or patch-specific fixes visible in the diff
This commit fixes a stack-overflow risk in Core Lightning's JSON parser. Before the fix, an attacker could send a valid JSON-RPC message containing thousands of nested brackets or braces. The parser's own helper functions used recursion fo…
Stack-overflow via deeply nested JSONRecursive JSON traversal without depth boundDenial-of-service vector in JSON-RPC input parsing
This commit only fixes typos and comment style. It changes two C-style comments from // to /* */ and corrects a grammar error in a documentation comment ('element' to 'elements'). There are no code behavior changes, no bug fixes, and no se…
This change fixes a test-infrastructure bug in Core Lightning's Python testing helpers. When running tests against a PostgreSQL database, very long test names could be silently shortened by PostgreSQL, causing different test runs or nodes …
No security-relevant signal: change is in test framework code onlyFixes a test reliability issue, not a runtime vulnerabilityNo input sanitization, authentication, cryptography, or network changes
This fix prevents Core Lightning from trying to use freshly created bitcoins (immature coinbase rewards) as emergency funds for fee-bump transactions. Such a transaction would be invalid under Bitcoin's rules and would be rejected by the n…
This commit fixes a bug in Core Lightning's askrene plugin that could prevent a node from restarting. When a saved routing layer contained a node bias with a description, the plugin accidentally freed the description's memory while using i…
Use-after-free / double-take of a tal-allocated string during plugin startupDenial-of-service-like symptom: lightningd aborts before replying to init, node cannot restartFixes publicly reported issue #9433 by endothermicdev
This commit only fixes a test case so it actually exercises the intended code path. It does not change any production code, so it cannot introduce or fix a real-world security vulnerability by itself. The test change is a reproducer for a …
This commit fixes a bug in Core Lightning's experimental dual-funded channel feature. When another node tried to open a channel, Core Lightning was not checking whether the proposed transaction fees were reasonable. A peer could request a …
Missing input validation on wire-parsed feerate fieldsPeer could induce signing and storage of feerate == 0RBF remote path allowed unbounded upward feerate walks
This commit adds regression tests for three related bugs where wildly wrong Bitcoin transaction feerates could enter Core Lightning. In the worst case, a malicious or broken fee source could make the node think a feerate was zero (due to a…
Integer overflow in feerate conversion (u32 wrap from 0xFFFFFFFF perkb to 0 perkw)Absurd feerate from external fee source bypassing sanity ceilingDatabase-stored out-of-range feerate causing startup abort/crash loop
This update fixes a crash bug in Core Lightning. When the software tried to list details of a channel opening in progress, it could crash if a stored fee rate was extremely large or zero. The crash happened because the code used an interna…
Integer overflow in RBF escalation (u32 * 25 / 24) leading to assertion failureAssertion failure in read-only introspection RPC (listpeerchannels) causing crash-loop at startupDatabase value treated as invariant despite originating from external fee estimator
This commit fixes a bug where Core Lightning nodes could get stuck in a crash loop. If a node had previously stored an extremely high or zero fee rate for an in-progress channel funding operation (a 'splice' or dual-funded channel RBF), a …
Integer overflow in fee-rate calculation (u32 overflow when multiplying by 25/24)Assertion failure leading to daemon crash loop at startupDatabase migration clamps out-of-range stored funding feerates
This wire file primarily contains datastructures that is used to serialize data for storing in the datastore. We have 2 types of datastores for bwatch. The block history datastore and the watch datastore. For block history we store height, the hash and the hash of the previous block. For watches we have 4 types of watches - utxo, scriptpubkey, scid and blockdepth watches, each of these have their unique info stored in the datastore. The common info for all watches includes the start block and the list of owners interested in watching.
51/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context
AI analysis · Informational 12/100
This commit adds a new internal data-format definition (a 'wire format') for a Core Lightning plugin called 'bwatch'. It describes how the plugin will store block history and 'watch' records in its database. There is no executable code in the change—only a build-file update and a CSV file that defines data structures. Nothing in the commit suggests a security vulnerability, fix, or exposure.
Lower-prioritycommon/json_stream: use json_out_addstrn for better efficiency.by Rusty Russell · 988f1219 · May 11, 2026 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Rusty Russell
common/json_stream: use json_out_addstrn for better efficiency.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This is a small internal code cleanup in how JSON strings are added to output streams. It replaces a less efficient formatting-based path with a direct string-copying helper, and consolidates two similar functions. There is no user-visible behavior change and no security relevance in the diff itself.
AI review queuedsetconfig: fix crash on dynamic multi-value plugin optionsby wqxoxo · e9fee876 · May 11, 2026 · 14 filesMessage 81 · StrongLow 45Details
Commit message · wqxoxo
setconfig: fix crash on dynamic multi-value plugin options
We had an assert(!(ot->type & OPT_MULTI)) which crashed when using setconfig on a plugin option marked as both dynamic and multi.
The fix changes plugin_set_dynamic_opt to accept an array of values (scalar options pass a 1-element array, multi options pass the complete set). For multi options, setconfig replaces ALL values atomically - an empty array clears them.
Fixes: #8295
Changelog-Fixed: setconfig no longer crashes on dynamic multi-value plugin options
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: broader security terminology
AI analysis · Low 45/100
This commit fixes a crash in Core Lightning's `setconfig` command. Previously, if a user tried to change a plugin option that accepts multiple values and can be changed while running, the node would hit an internal assertion and crash. The fix allows `setconfig` to handle these multi-value options properly by accepting an array of values and replacing all existing values at once.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This commit adds a new user-facing configuration option called xpay-user-layer for the xpay payment plugin in Core Lightning. It lets node operators permanently specify routing layers that xpay will apply to every payment, which is useful when xpay is handling the older pay command where layers cannot be passed directly. The change is a straightforward feature addition with no security-relevant behavior.
Lower-prioritylibplugin: add helpers for multi-string optionsby Lagrang3 · 03e5d22a · May 11, 2026 · 3 filesMessage 60 · AdequateInformational 15Details
Commit message · Lagrang3
libplugin: add helpers for multi-string options
Changelog-None
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit is a routine code cleanup: it moves two small helper functions for handling plugin options that can be set multiple times from a test-only file into the shared plugin library so other plugins can reuse them. There is no security-relevant change.
Lower-prioritypytest: fix use of deprecated `getroute` in tests/test_misc.py::test_graceful_htlcby Rusty Russell · b1d77a62 · May 11, 2026 · 1 fileMessage 83 · StrongInformational 15Details
Commit message · Rusty Russell
pytest: fix use of deprecated `getroute` in tests/test_misc.py::test_graceful_htlc
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This is a routine test-only fix. A single pytest test case was still calling an old, deprecated RPC command named 'getroute'. The patch replaces it with the current helper method 'single_route'. There is no change to production code, no security bug, and no vulnerability.
Lower-priorityconfig: change message-padding to false by default.by Rusty Russell · 04fc51f5 · May 11, 2026 · 4 filesMessage 85 · StrongInformational 19Details
Commit message · Rusty Russell
config: change message-padding to false by default.
Too many reports of problems with weird nodes.
Changelog-Changed: Protocol: `message-padding` defaults to false, due to poor detection of broken implementations. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 19/100
This change turns off a privacy feature that made all network messages the same size by default. The feature was causing connection problems with some other Lightning nodes that didn't handle the extra padding bytes correctly, and the existing detection of those broken nodes wasn't reliable enough. It is a compatibility and reliability fix, not a security patch for an exploitable vulnerability.
Lower-prioritygraceful: add a timeout for user simplicity.by Rusty Russell · 8ee0a613 · May 11, 2026 · 4 filesMessage 60 · AdequateInformational 18Details
Commit message · Rusty Russell
graceful: add a timeout for user simplicity.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 18/100
This commit adds an optional timeout to the 'graceful' RPC command in Core Lightning, which operators use when preparing a node to shut down. Previously, graceful would wait indefinitely until all payment commitments (HTLCs) finished and idle peers disconnected. Now, if a timeout is provided, the command returns after that many seconds and reports any still-pending HTLC expiry heights and connected peers. This is a usability improvement for scripting shutdowns, not a security fix. The code changes are straightforward and do not appear to introduce a vulnerability.
Lower-prioritylightningd.service: shut down lightningd properly.by Rusty Russell · bd8e8e64 · May 11, 2026 · 1 fileMessage 81 · StrongInformational 20Details
Commit message · Rusty Russell
lightningd.service: shut down lightningd properly.
And use the new graceful shutdown to make it even smoother!
Fixes: #7697 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Fixed: contrib: the systemd lightningd.service script now shuts down lightningd properly.
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 20/100
This commit updates the systemd service file that manages the Core Lightning daemon so that it shuts down the service gracefully instead of abruptly killing it. The change adds a two-step stop command: first a graceful shutdown with a 20-second window, then a hard stop if needed, plus a 60-second timeout. This is an operational reliability fix, not a security vulnerability fix. It reduces the risk of data corruption or inconsistent state from a forced shutdown, but it does not introduce or patch an exploit.
AI review queuedgraceful: new command to instruct CLN to start shutting down.by Rusty Russell · a87062b2 · May 11, 2026 · 16 filesMessage 81 · StrongInformational 22Details
Commit message · Rusty Russell
graceful: new command to instruct CLN to start shutting down.
Based on "lightningd: add "snub-idle-channels" dynamic config variable" by Matt Whitlock <c-lightning@mattwhitlock.name>.
Fixes: https://github.com/ElementsProject/lightning/issues/4842 Changelog-Added: JSON-RPC: `graceful` command to prepare CLN for shutdown. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 22/100
This commit adds a new JSON-RPC command called 'graceful' that lets a Core Lightning node operator tell their node to prepare for shutdown. When invoked, the node stops accepting new HTLCs (payment forwarding commitments), declines to reestablish idle channels, disconnects peers that have no active HTLCs, and waits for any remaining in-flight HTLCs to resolve before returning. It is an operational/administrative feature, not a vulnerability fix. The commit does not change authentication or authorization rules; it only adds a new state (LD_STATE_GRACE) and the logic to enter and exit it safely.
Lower-priorityaskrene: make failure messages clearer:by Rusty Russell · 3e4af7de · May 11, 2026 · 3 filesMessage 68 · AdequateInformational 15Details
Commit message · Rusty Russell
askrene: make failure messages clearer:
If all channels are disabled, say so clearly. Also reword: it's not the source or destination which have disabled the channels. While we're here, remove the double space, lest people think I'm Satoshi.
Before: Failed after 1 attempts. Unexpected error (invalid_onion_payload) from final node: disabling 103x1x0/1 for this payment. Then routing failed: We could not find a usable set of paths. The source has disabled 1 of 1 channels, leaving capacity only 0msat of 1000000000msat.
After: Failed after 1 attempts. Unexpected error (invalid_onion_payload) from final node: disabling 103x1x0/1 for this payment. Then routing failed: We could not find a usable set of paths. All 1 channels to the source are disabled.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This commit only changes user-facing error messages in the Core Lightning routing plugin (askrene). It makes failure explanations clearer when payment channels are disabled, and removes double spaces from messages. There is no code behavior change, no security fix, and no vulnerability.
Lower-priorityxpay: ensure unique_id is always valid.by Rusty Russell · 7c89e23c · May 11, 2026 · 2 filesMessage 80 · StrongInformational 22Details
Commit message · Rusty Russell
xpay: ensure unique_id is always valid.
In implementing shadow, I added a call to payment_log in xpay_core, which caused a valgrind error because we set unique_id later. This was a premature optimization, so we didn't assign unique_id for payments which didn't even start, but it's a footgun, and there are other (less common) calls to payment_log too early which make the same mistake.
Simplify: unique_id is assigned at creation.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 22/100
This is a code-quality fix inside Core Lightning's xpay plugin. It moves the assignment of a payment's unique ID earlier in the payment's lifetime so that logging functions can safely use it. The bug caused valgrind warnings (use of uninitialized data) and could have led to confusing log output, but it is not an exploitable security vulnerability.
Lower-priorityaskrene: all remove_small_channel_layer when maxparts=1.by Rusty Russell · a577e530 · May 11, 2026 · 1 fileMessage 65 · AdequateLow 26Details
Commit message · Rusty Russell
askrene: all remove_small_channel_layer when maxparts=1.
We were doing it for "auto.no_mpp_support", but not maxparts=1.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Low 26/100
This change adjusts how the Core Lightning routing plugin (askrene) decides to ignore very small payment channels. Previously it only removed small channels when the payer did not support multi-part payments. Now it also does so when the caller explicitly requests a single payment part (maxparts=1). The effect is to make single-part route searches faster and more reliable, but it could also change which routes are chosen or whether any route is found at all.
Lower-priorityaskrene: improve errors we return.by Rusty Russell · b74305b5 · May 11, 2026 · 6 filesMessage 60 · AdequateInformational 19Details
Commit message · Rusty Russell
askrene: improve errors we return.
In particular, we can return PAY_ROUTE_TOO_EXPENSIVE.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 19/100
This change improves the error messages returned by Core Lightning's routing plugin (askrene). Previously, almost all routing failures were reported with a single generic 'route not found' error code. Now the plugin distinguishes cases such as 'route too expensive' or 'timed out' and returns the appropriate error code. This is a quality-of-life improvement for callers, not a fix for an exploitable vulnerability.
Lower-priorityaskrene: deprecate `auto.no_mpp_support` layer in favor of `maxparts=1`.by Rusty Russell · 052386ab · May 11, 2026 · 4 filesMessage 73 · AdequateInformational 19Details
Commit message · Rusty Russell
askrene: deprecate `auto.no_mpp_support` layer in favor of `maxparts=1`.
This layer predated the maxparts parameter.
Changelog-Deprecated: JSON-RPC: `getroutes` layer `auto.no_mpp_support`: use `maxparts=1` parameter instead (available since v25.09). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 19/100
This commit is a routine deprecation of an old way to request single-path routing in the Core Lightning `getroutes` RPC. The `auto.no_mpp_support` layer still works for now, but it is marked deprecated and internally is converted to the newer `maxparts=1` option. There is no security vulnerability here.
Lower-priorityxpay: remove internal "disable_mpp" flag.by Rusty Russell · f27b6d3f · May 11, 2026 · 1 fileMessage 68 · AdequateInformational 18Details
Commit message · Rusty Russell
xpay: remove internal "disable_mpp" flag.
We already have `maxparts`: simply set that to 1 for the same effect.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 18/100
This is a small internal cleanup in Core Lightning's xpay plugin. It removes a redundant 'disable_mpp' flag and instead uses the existing 'maxparts' setting (set to 1) to achieve the same effect of disabling multi-part payments. The behavior appears functionally equivalent.
Lower-priorityxpay: extract payment creation logic.by Rusty Russell · b70fd6e3 · May 11, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Rusty Russell
xpay: extract payment creation logic.
Simple refactor so we can use it for `xkeysend` too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This is a routine code cleanup in Core Lightning's xpay plugin. The developer extracted the logic that creates a new payment object into a reusable helper function so it can later be used for a new 'xkeysend' feature. No security bug is being fixed here; the behavior of existing payment handling is intended to remain the same.
Lower-priorityxpay: process channel_update from error for the current payment.by Rusty Russell · 1529b2b6 · May 11, 2026 · 2 filesMessage 73 · AdequateLow 37Details
Commit message · Rusty Russell
xpay: process channel_update from error for the current payment.
Applying it globally as `pay` did risks leaking information, but applying it for retries doesn't really. And doing that is fairly easy with layers.
Changelog-Added: Protocol: `xpay` will now update for the current payment if it gets a `channel_update` in an error message. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 37/100
This change improves the 'xpay' payment plugin in Core Lightning so that when a payment attempt fails and the error message contains a channel update, xpay uses that update only for the current payment's retry instead of applying it globally. The commit message explicitly says the old global behavior risked leaking information, and the new scoped behavior reduces that privacy risk while still helping payments succeed.
Lower-priorityxpay: when acting as pay, imitate its idempotent behavior.by Rusty Russell · 48b37869 · May 11, 2026 · 1 fileMessage 65 · AdequateLow 33Details
Commit message · Rusty Russell
xpay: when acting as pay, imitate its idempotent behavior.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Low 33/100
This change makes the newer 'xpay' payment plugin behave like the older 'pay' plugin when an invoice has already been paid. Previously, if xpay tried to pay an invoice that was already settled, it would give up with an error. Now it looks up the previous successful payment details and returns them as if the current request succeeded. This is a compatibility fix to avoid surprising users and callers who expected the old pay plugin's idempotent behavior.
Lower-prioritypyln: add getroutes wrapper to pyln-client, add single_route helper to pyln-testing.by Rusty Russell · 63e67d45 · May 11, 2026 · 2 filesMessage 75 · AdequateInformational 15Details
Commit message · Rusty Russell
pyln: add getroutes wrapper to pyln-client, add single_route helper to pyln-testing.
And remove the two getroute() calls inside pyln-testing.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit adds a new Python helper for a Lightning RPC command and updates test utilities to use it. There is no security issue visible in the change itself.
Lower-prioritytests: use getroutes, not getroute (simple cases)by Rusty Russell · 4e852086 · May 11, 2026 · 5 filesMessage 78 · AdequateInformational 15Details
Commit message · Rusty Russell
tests: use getroutes, not getroute (simple cases)
We add a nice getroutes wrapper and use it to replace the simple getroute() calls which simply hand the result to sendpay().
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit only changes test code. It replaces direct calls to the older getroute() RPC helper with a new single_route() wrapper that internally uses the newer getroutes() API. There is no change to production code, no bug fix, and no security relevance.
Lower-prioritypytest: convert remaining getroute cases.by Rusty Russell · 96e9bc7c · May 11, 2026 · 4 filesMessage 78 · AdequateInformational 15Details
Commit message · Rusty Russell
pytest: convert remaining getroute cases.
Excluding explicit getroute tests.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit only updates test code. It replaces old calls to the `getroute` RPC with newer helper methods like `single_route` and `getroutes`, and updates the field names used in test assertions (for example, `amount_msat` becomes `amount_out_msat`). There is no change to the actual Core Lightning node software, so it cannot affect real users or introduce a security vulnerability.
Lower-prioritypyln-testing: allow bitcoind mocks to return None to mean "don't mock".by Rusty Russell · 363a1778 · May 11, 2026 · 1 fileMessage 75 · AdequateInformational 15Details
Commit message · Rusty Russell
pyln-testing: allow bitcoind mocks to return None to mean "don't mock".
Good for conditional mocks, like in next patch.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100
This is a small change to a Python testing helper used only in Core Lightning's test suite. It lets a fake Bitcoin RPC call return None as a signal to fall through to the real RPC call. There is no production code affected and no security issue visible in the patch.
Lower-prioritygetroute: deprecate in favor of `getroutes`by Rusty Russell · e6575520 · May 11, 2026 · 6 filesMessage 68 · AdequateInformational 15Details
Commit message · Rusty Russell
getroute: deprecate in favor of `getroutes`
Changelog-Deprecated: JSON-RPC: `getroute` (use `getroutes` with layers `["auto.localchans","auto.sourcefree"]` and `maxparts=1`) (since v25.09).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This commit simply marks an older command, getroute, as deprecated and tells users to switch to a newer command, getroutes. It does not fix a bug or change security behavior. The old command still works for now, but tests that use it must explicitly allow deprecated APIs. There is no security issue here.
Lower-prioritykeysend: deprecate in favor of `xkeysend`.by Rusty Russell · 98315531 · May 11, 2026 · 9 filesMessage 68 · AdequateInformational 20Details
Commit message · Rusty Russell
keysend: deprecate in favor of `xkeysend`.
Changelog-Deprecated: JSON-RPC: `keysend` (use `xkeysend`). `xkeysend` will take over `keysend` in v27.03. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 20/100
This commit simply marks the old `keysend` RPC command as deprecated and tells users to switch to a newer command called `xkeysend`. It updates documentation, schemas, and test settings so that tests continue to work while the old command is still available. There is no security bug being fixed here.