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 is a simple documentation revert. It undoes a previous change that told macOS users to install GNU make and GNU patch from Homebrew and to put those tools first in their command path. The reverted instructions now omit gpatch a…
This commit re-adds an old-style 'x' prefix to a string comparison in a test helper script. It is a test-only change with no effect on the actual Core Lightning node software, user funds, network behavior, or security. The change simply re…
This commit only updates macOS installation instructions in the documentation. It tells macOS users to install newer GNU versions of 'make' and 'patch' from Homebrew because Apple's built-in tools are too old for building and running sourc…
This commit is a trivial shell script cleanup. It removes an old-fashioned 'x' prefix from a string comparison in a test helper script so that a newer version of the Shellcheck linter stops warning about it. The change does not alter progr…
This commit moves existing code that parses payment amounts (Bitcoin millisatoshis, 'any' amount, or fiat currency amounts) from one plugin file into a shared library so it can be reused by a future feature. It is a code refactoring with n…
Refactoring of amount-parsing code into a shared helperAddition of explicit u64 overflow guards (mul_overflows_u64, add_overflows_u64) in the new common codeNo change to wire protocol or RPC interface semantics
This is a routine internal cleanup commit in Core Lightning. It removes an unused helper function and simplifies how JSON-RPC request IDs are stored and formatted, since the project now always uses string IDs for non-command JSON traffic. …
No security-relevant keywords in commit title or messageNo CVE, advisory, or bug reference presentChanges are refactor/cleanup in nature
This commit is a routine code cleanup: it moves a small string-hashing helper function into a shared header file so it can be reused without being copied and pasted. There is no change to behavior, no bug fix, and no security relevance.
This is a database downgrade helper fix, not a live network vulnerability. Core Lightning's downgrade tool previously failed to strip out new 'channel impression' records when rolling a database back to version v26.06. The patch teaches th…
Database downgrade path could leave incompatible records in older schemaOffline tool only; no remote or on-chain triggerFix prevents potential node startup failure after version rollback
This commit fixes a typo in a database downgrade helper tool. The bug caused the tool to pass a negative number (turned into a huge positive size) when copying data, which led to an out-of-memory (OOM) error. The fix swaps two variable nam…
Integer underflow / negative-to-size_t wrap leading to excessive allocationOut-of-memory crash in maintenance toolMemory corruption potential if allocation somehow succeeded
This commit fixes a bookkeeping bug in Core Lightning's xpay plugin. Previously, when a payment succeeded, xpay did not tell the askrene routing-helper that the route worked. As a result, askrene kept stale or overly pessimistic ideas abou…
Missing success feedback to routing layer can degrade payment reliabilityStale negative impressions may bias future path selection toward worse or failing routesNo direct funds-loss primitive is introduced or fixed
This commit fixes a bug in Core Lightning's routing helper (askrene) where two kinds of channel information—hard limits called 'constraints' and usage estimates called 'impressions'—were being applied in the wrong order. Because impression…
Routing decision bug caused by incorrect ordering of time-relative channel statePotential payment failure or acceptance of an over-capacity routeRegression test added demonstrating incorrect route acceptance before fix
This commit fixes a memory leak in the askrene plugin of Core Lightning. When individual channel intelligence entries were deleted, the code removed the entry from its array but forgot to free two internal pointers (impression and constrai…
Memory leak in plugin data structure cleanupMissing deallocation of nested pointers before array removalFix located in routing/intelligence plugin (askrene)
This commit only updates test files so that automated checks expect slightly different error wording from the xpay payment command. It does not change any production code, so it cannot introduce a security vulnerability or fix one on its o…
This change tightens the lifetime of recurring invoices priced in foreign currencies (like USD) to 10 minutes by default, and refreshes them with current exchange rates when they expire. Previously, such invoices could remain valid for the…
Fixes stale exchange-rate exposure for currency-denominated recurring invoicesAdds configurable expiry cap for recurring currency invoicesDistinguishes user-cancellation (0s expiry) from natural expiry to avoid misleading errors
This commit tightens the expiration time on invoices created from BOLT12 offers. Previously, all such invoices defaulted to a 2-hour payment window. Now, if the offer has an absolute expiry, the invoice expires when the offer expires; and …
BOLT12 invoice expiry now bounded by offer absolute expiryCurrency-converted invoices use short expiry to limit exchange-rate exposureNew regression test added for expiry behavior
This commit removes local timing checks in Core Lightning's fetchinvoice plugin for recurring payments. Instead of the plugin refusing too-early or too-late invoice requests, it now lets the remote node decide and report back. The change i…
Removal of local input-validation checks for recurring invoice requestsReliance on remote-party enforcement for recurrence period limits and pay windowsTest expectations changed from local rejection to remote failure messages
This commit removes a local sanity check in Core Lightning's experimental 'createinvoicerequest' command. Previously, when creating a recurring invoice request, the code looked up past payments by label to verify the previous recurrence wa…
Removal of local payment-state validation for recurring invoice requestsParameter rename from recurrence_label to label in internal RPC callsTest expectations changed from local 'previous invoice has not been paid' errors to remote failure messages
This commit fixes how the fetchinvoice plugin handles user-supplied labels that contain special characters such as backslashes, quotes, tabs, and newlines. Previously these labels were passed as raw strings, which could cause JSON encoding…
JSON injection / improper escaping of user-controlled input passed between RPC componentsPotential mismatch between label parsing and label serialization leading to functional failures or unexpected behaviorFix is narrowly scoped to a single plugin and parameter
This commit only adds a new automated test file that checks how a helper function (str_to_u64) converts text strings to unsigned 64-bit integers. It does not change any production code, so it cannot by itself introduce a security vulnerabi…
This commit only adds a new pytest test file. It does not change any production code. The test describes desired future behavior for the askrene routing module's error messages when a payment source or destination lacks enough channel capa…
Fixes: https://github.com/ElementsProject/lightning/issues/8225 Changelog-Fixed: JSON-RPC: `fetchinvoice` is now more reliable.
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 · Low 31/100
This commit fixes a reliability bug in Core Lightning's `fetchinvoice` command. When a peer was disconnected, the node still kept that peer in its internal network map, so it sometimes tried to send an invoice request through a peer that was no longer reachable. The fix removes disconnected peers' channels from the map and also avoids using disabled channels for onion messages. This is a bug fix rather than a security vulnerability: the worst outcome was a failed invoice fetch, not loss of funds or remote code execution.
Lower-priorityreckless: store source locations as correct typeby Alex Myers · b2ff500c · Aug 18, 2025 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · Alex Myers
reckless: store source locations as correct type
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 18/100
This commit fixes three places in the 'reckless' plugin-installer tool where a file path was stored as a Path object instead of as a plain string. The fix converts the path to a string before assigning it. This is a type-correctness bug that could cause crashes or unexpected behavior when the value is later used as a string, but it is not a direct security vulnerability and there is no evidence it is exploitable for code execution or privilege escalation.
Lower-priorityreckless-rpc: increase initial buffer sizeby Alex Myers · 1d513c22 · Aug 18, 2025 · 1 fileMessage 60 · AdequateInformational 18Details
Commit message · Alex Myers
reckless-rpc: increase initial buffer size
Reckless uv installations typically produce 3KB+ of output.
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 18/100
This commit simply enlarges two memory buffers used to capture text output from a plugin installation helper. It is a routine capacity tweak, not a security fix. There is no indication of a vulnerability, crash, or attack path.
AI review queuedreckless: reduce uv verbosity and avoid flooding outputby Alex Myers · 79b56958 · Aug 18, 2025 · 1 fileMessage 73 · AdequateInformational 21Details
Commit message · Alex Myers
reckless: reduce uv verbosity and avoid flooding output
This was overloading the reckless-rpc plugin input when outputting json all in one shot. The verbosity was mostly dependency resolution which wasn't all that helpful so call uv pip install as normal.
Changelog-None: bug introduced this release.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 21/100
This commit fixes a bug in Core Lightning's 'reckless' plugin installer tool. The bug was that very verbose dependency-resolution output from the 'uv' Python package manager was being dumped all at once as JSON to the reckless-rpc plugin, potentially overloading it. The fix both removes the verbose '-v' flag from uv and adds a rate-limiting helper that prints large JSON output in small chunks with tiny delays. It is a reliability/DoS-style bug fix, not a code-execution vulnerability.
Lower-priorityavoid UB when calling ctype functionsby Matt Whitlock · 41d31dcd · Aug 18, 2025 · 4 filesMessage 68 · AdequateLow 37Details
Commit message · Matt Whitlock
avoid UB when calling ctype functions
The character classification functions in <ctype.h> are designed to classify characters returned by <stdio.h> getchar() and friends, which return characters as signed integers in the range 0 to 255 or EOF. The behavior of the ctype functions is undefined if they are passed a value outside of that range, which may happen if they are passed a char-typed value and the system's char type is signed.
<ccan/str/str.h> defines some inline utility functions that perform the necessary cast to coerce a char-typed argument into the allowed value range. Call these wrappers instead of the bare ctype functions when classifying char-typed characters.
Changelog-None
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 37/100
This commit fixes a low-level programming bug in four source files. The standard C library functions used to check whether a character is a digit or whitespace (like isdigit and isspace) can misbehave or crash when given a character whose numeric value is negative on systems where the char type is signed. The patch replaces those direct calls with safer project-specific wrappers that cast the value to an unsigned type first. This is a defensive hardening change rather than a fix for a known exploitable vulnerability.
Lower-prioritypyln-testing: check plugin notifications against any extant notification schemas.by Rusty Russell · e43a4a96 · Aug 18, 2025 · 3 filesMessage 83 · StrongInformational 19Details
Commit message · Rusty Russell
pyln-testing: check plugin notifications against any extant notification schemas.
Note that we need a workaround for deprecated APIs where "channel_state_changed" output "null" which violated the schema.
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 19/100
This commit adds a new test-only check that makes Core Lightning's Python test harness validate plugin hook and notification JSON messages against published schemas. It is a testing/quality improvement, not a fix for an exploitable vulnerability in production code. The only runtime behavior change is writing plugin I/O to a directory during tests and then validating it during teardown.
Lower-prioritypyln-client: create modern-style notifications if caller doesn't.by Rusty Russell · 69a8ccc3 · Aug 18, 2025 · 1 fileMessage 65 · AdequateInformational 17Details
Commit message · Rusty Russell
pyln-client: create modern-style notifications if caller doesn't.
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 17/100
This is a small compatibility fix in the Python plugin client for Core Lightning. It helps older plugin code automatically produce the newer notification format, reducing the chance that a plugin sends a malformed or unexpected message. There is no direct security vulnerability being patched here; it is a robustness improvement.
Lower-priorityconnectd: drop excess gossipd messages.by Rusty Russell · 0456bace · Aug 18, 2025 · 1 fileMessage 68 · AdequateLow 39Details
Commit message · Rusty Russell
connectd: drop excess gossipd messages.
We haven't seen the "excessive queue length" backtrace since we fixed gossipd, so it's safe to drop excess messages without worrying about losing gossip.
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 · Low 39/100
This change adds a safety valve in Core Lightning's connection handler: if the internal message queue to the gossip subsystem grows beyond 500,000 messages, incoming gossip messages are silently dropped instead of being queued indefinitely. The commit message frames this as a cleanup now that an earlier gossip bug is fixed, but the patch itself is a hardening measure against memory exhaustion from a backed-up queue.
Lower-prioritypyln-client: adapt for modern plugin notifications.by Rusty Russell · fc5edea9 · Aug 18, 2025 · 3 filesMessage 83 · StrongInformational 19Details
Commit message · Rusty Russell
pyln-client: adapt for modern plugin notifications.
For older lightningd, we copy field into the raw dict, for newer we recreate the old "payload" member.
We do fix up the custom_notification test which set params to a string instead of a dict: that's just weird!
We also change the hacky parsing to proper dict extraction.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Changed: pyln-client: plugin notifications parameters now exposed directly, not wrapped in `params` object.
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 19/100
This commit updates the Python plugin client library (pyln-client) so it understands both old and new styles of plugin notification messages from the lightningd daemon. It adds backward/forward compatibility shims so plugins written for either format still receive their expected 'payload' and 'origin' fields. The changes are in the client library and its tests; there is no direct fix for an exploitable vulnerability.
Lower-prioritymsggen: add override for connect notification in cln-rpc aswellby daywalker90 · 9ed55452 · Aug 18, 2025 · 3 filesMessage 50 · ThinInformational 18Details
Commit message · daywalker90
msggen: add override for connect notification in cln-rpc aswell
Changelog-None
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 18/100
This commit is a code-generator fix that renames some automatically generated Rust type names from 'ConnectDirection' and 'ConnectAddressType' to 'PeerConnectDirection' and 'PeerConnectAddressType'. It only affects the names used in the cln-rpc Rust library and the tool that generates it. There is no change to how Core Lightning handles network connections, payments, or user funds, and no security fix or vulnerability is visible in the diff.
Lower-prioritylightningd: add dev option to save hooks and notifications to/from plugins.by Rusty Russell · 9e7be804 · Aug 18, 2025 · 4 filesMessage 65 · AdequateInformational 15Details
Commit message · Rusty Russell
lightningd: add dev option to save hooks and notifications to/from plugins.
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 commit adds a hidden developer-only command-line option called --dev-save-plugin-io. When a developer turns it on, Core Lightning writes copies of plugin hook and notification messages to files in a specified directory. It is a diagnostic/logging feature, not a change to normal node behavior, and it is not enabled by default.
Lower-prioritycln-plugin: adapt send_custom_notification to send modern-style notifications.by Rusty Russell · 6bac381a · Aug 18, 2025 · 1 fileMessage 73 · AdequateInformational 18Details
Commit message · Rusty Russell
cln-plugin: adapt send_custom_notification to send modern-style notifications.
Modern style for notifications is to put everything inside an object of same name as the method.
For now this means duplication for backward compatibility. ChatGPT helped me do that.
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 18/100
This commit changes how plugin notifications are formatted so they match a newer convention used by the rest of the software. It wraps the notification payload inside an extra object named after the notification method, while still accepting the old format for backward compatibility. There is no direct security fix here; it is a compatibility and cleanup change that may reduce confusion or interoperability bugs down the road.
Lower-prioritypytest: simple test for pay's custom notifications.by Rusty Russell · 3015bfcf · Aug 18, 2025 · 1 fileMessage 83 · StrongInformational 15Details
Commit message · Rusty Russell
pytest: simple test for pay's custom notifications.
Particularly important since we're going to update the format: this makes sure we don't break them!
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 commit adds a new automated test to the Core Lightning project. It checks that the 'pay' command correctly sends three types of plugin notifications (channel hint updates, payment success, and payment failure). There is no change to production code, no bug fix, and no security-related content.
Lower-prioritylightningd: deprecate `null` short_channel_id and `unknown` old_state in channel_state_changed notificationby Rusty Russell · a686bda4 · Aug 18, 2025 · 9 filesMessage 73 · AdequateInformational 19Details
Commit message · Rusty Russell
lightningd: deprecate `null` short_channel_id and `unknown` old_state in channel_state_changed notification
We always prefer to omit fields rather than use 'null' (or unknown!).
Note that before this, the schema was broken, so we have to put a special exemption in for that case.
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 cleanup of how Core Lightning reports channel-state change notifications. Previously, when a channel did not yet have a short channel ID, the notification would include a literal null value; for brand-new channels it could also report an 'unknown' old state. The change makes these fields optional so they are simply left out instead of being sent as null/unknown. It is a deprecation/API-consistency patch, not a fix for an exploitable vulnerability.
Lower-prioritylightningd: make notifications from plugins just like native ones.by Rusty Russell · 16819f34 · Aug 18, 2025 · 9 filesMessage 73 · AdequateInformational 21Details
Commit message · Rusty Russell
lightningd: make notifications from plugins just like native ones.
Rather than forcing them to wrap their parameters in a "payload" sub-object, copy in params directly. We include the "origin" field one level up, if they care.
The next patch restores compatibility for the one place we currently use them, which is the pay plugin.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Deprecated: pyln-client: plugin custom notifications origins and payload (use parameters directly)
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 21/100
This commit changes how Core Lightning forwards notifications between plugins. Previously, plugin notifications wrapped their data in a 'payload' sub-object. Now the data is placed directly in 'params', matching how native notifications work. This is a deliberate API cleanup with a deprecation period, not a security fix. It could break older plugins that still expect the old 'payload' wrapping, but there is no direct evidence of a vulnerability being patched.
Lower-prioritydoc/schemas: add websocket to type in doc/schemas/notification/connect.jsonby Rusty Russell · 9680404f · Aug 18, 2025 · 6 filesMessage 83 · StrongInformational 15Details
Commit message · Rusty Russell
doc/schemas: add websocket to type in doc/schemas/notification/connect.json
This is done by tests/test_connection.py::test_websocket:
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 commit is a documentation and generated-code update. It adds 'websocket' as a valid address type in the JSON schema, gRPC proto, and Rust bindings for the 'connect' notification. There is no code behavior change and no security issue.
AI review queuedlibplugin: correctly wrap notifications we send in the notification name.by Rusty Russell · 5d5741e6 · Aug 18, 2025 · 11 filesMessage 73 · AdequateLow 26Details
Commit message · Rusty Russell
libplugin: correctly wrap notifications we send in the notification name.
All the core notifications changed over to wrapping the notification fields in an object with the name of the notification, but notifications from plugins were missed.
Changelog-Added: Plugins: `channel_hint_update`, `pay_failure` and `pay_success` notifications now have objects of the same name containing the expected fields. Changelog-Deprecated: Plugins: `channel_hint_update`, `pay_failure` and `pay_success` notification fields outside the same-named object. 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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 26/100
This commit fixes a notification formatting inconsistency in Core Lightning's plugin system. Plugin-generated notifications (channel_hint_update, pay_failure, pay_success) now wrap their data inside an object named after the notification, matching how core notifications already work. The old unwrapped format is kept as a deprecated option for backward compatibility. This is primarily an API consistency and compatibility fix, not a security vulnerability fix.
Lower-priorityscript: Add `update-versions` in Makefile againby ShahanaFarooqui · 4d10da22 · Aug 17, 2025 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · ShahanaFarooqui
script: Add `update-versions` in Makefile again
And fix sed command for Ubuntu.
Fixes #8459.
Changelog-None.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100
This is a routine build/maintenance patch. It re-adds a Makefile target used by developers to bump version numbers across several files, and changes the sed command to be compatible with Ubuntu (GNU sed). There is no change to the lightning node's runtime code, no user-facing behavior change, and no security relevance.
Lower-prioritydocs: Added `fetchbip353` example in autogenerate scriptby ShahanaFarooqui · 4b64b694 · Aug 17, 2025 · 10 filesMessage 77 · AdequateInformational 15Details
Commit message · ShahanaFarooqui
docs: Added `fetchbip353` example in autogenerate script
Other doc examples fixes from 25.05 till 25.09 updates.
77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit only updates documentation examples and the test script that auto-generates them. It adds a new example for the fetchbip353 command, refreshes feature-bit strings and plugin lists in RPC schema examples, and fixes a couple of autogeneration script entries. There are no code changes that affect how Core Lightning processes payments, peers, or configuration, so there is no security impact.
Lower-prioritypyln-testing: don't run reckless under valgrind.by Rusty Russell · 5dc601ef · Aug 15, 2025 · 1 fileMessage 78 · AdequateInformational 15Details
Commit message · Rusty Russell
pyln-testing: don't run reckless under valgrind.
We can timeout if we do (it's Python). Unfortunately I didn't catch the flake.
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 is a one-line testing infrastructure change. It adds a 'reckless' binary to a list of programs that should be skipped when running tests under the Valgrind memory-checking tool. The change prevents test timeouts caused by Valgrind slowing down a Python-based helper called reckless. There is no security vulnerability or user-facing bug fix here.
Lower-prioritypytest: fix flake in test_route_by_old_scidby Rusty Russell · 79b959b7 · Aug 15, 2025 · 1 fileMessage 86 · StrongInformational 14Details
Commit message · Rusty Russell
pytest: fix flake in test_route_by_old_scid
``` 2025-08-14T11:45:41.7353946Z # Now l1 tries to send using old scid: should work 2025-08-14T11:45:41.7354652Z l1.rpc.sendpay(route, inv['payment_hash'], payment_secret=inv['payment_secret']) 2025-08-14T11:45:41.7355321Z > l1.rpc.waitsendpay(inv['payment_hash']) 2025-08-14T11:45:41.7355644Z 2025-08-14T11:45:41.7355791Z tests/test_splicing.py:528: ... 2025-08-14T11:45:41.7383073Z E pyln.client.lightning.RpcError: RPC call failed: method: waitsendpay, payload: {'payment_hash': '7b74fa9f6a889a16ebf89b8a9468302100f6ad50a771bbab2a16de58dcb1a9a4'}, error: {'code': 203, 'message': 'failed: WIRE_INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS (reply from remote)', 'data': {'created_index': 1, 'id': 1, 'payment_hash': '7b74fa9f6a889a16ebf89b8a9468302100f6ad50a771bbab2a16de58dcb1a9a4', 'groupid': 1, 'destination': '035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d', 'amount_msat': 10000000, 'amount_sent_msat': 10000101, 'created_at': 1755171392, 'status': 'pending', 'erring_index': 2, 'failcode': 16399, 'failcodename': 'WIRE_INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS', 'erring_node': '035d2b1192dfba134e10e540875d366ebc8bc353d5aa766b80c090b39c3a5d885d', 'erring_channel': '103x2x0', 'erring_direction': 0, 'raw_message': '400f000000000098968000000072'}} ```
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
86/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 14/100
This is a one-line change to a test file only. It fixes an occasional test failure (a 'flake') by adding a larger safety margin for a timing-related value in a Lightning payment route. There is no change to production code, no security fix, and no vulnerability.
dev_maxparts limits the number of pending routes allowed at any given time.
Changelog-None
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 19/100
This commit adds a developer-only tuning knob called dev_maxparts to the xpay plugin in Core Lightning. It lets advanced users limit how many simultaneous payment routes the plugin tries at once. The change is defensive: it caps resource usage and prevents unbounded route exploration, but it is not described by the project as fixing a known security bug.
Lower-priorityaskrene: refine: add helper function remove_flowsby Lagrang3 · b298e3fc · Aug 15, 2025 · 2 filesMessage 80 · StrongInformational 12Details
Commit message · Lagrang3
askrene: refine: add helper function remove_flows
remove_flows is a helper function to remove flows from a set so that we keep the number of flows limited.
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 12/100
This commit adds a small internal helper function called remove_flows to the askrene routing-refinement plugin. It simply trims the lowest-value payment routes from a list to keep the number of candidate routes manageable. There is no indication this change fixes a security bug or introduces a vulnerability.
Changelog-Added: askrene: add a new parameter maxparts to getroutes that limits the number of routes in the solution.
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
51/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context
AI analysis · Informational 18/100
This commit adds a new optional parameter called maxparts to the getroutes RPC in Core Lightning's askrene routing plugin. It lets callers limit how many separate payment routes the solver returns. There is no indication this fixes a security bug; it appears to be a normal feature addition.
Lower-priorityccan: update to get json_escape_unescape_len()by Matt Whitlock · 40318606 · Aug 15, 2025 · 4 filesMessage 68 · AdequateLow 34Details
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
AI analysis · Low 34/100
This commit updates a bundled helper library (CCAN) used by Core Lightning, mainly adding a new function that can unescape JSON strings of a known length rather than relying on null-terminated strings. The change also hardens the unescape logic so malformed escape sequences (for example, a backslash at the very end of the string) are rejected instead of reading past the end of the buffer. There is no direct evidence in the commit that this fixes an exploitable vulnerability in Core Lightning itself, but it is a defensive improvement that removes a potential out-of-bounds read and adds safer memory handling.