EP
← All projectsElements Project

Core Lightning

Modular C implementation of the Lightning Network protocol and node stack.

BitcoinLightning NetworkNormal
Repository coverage

1856 commits in the local evidence base

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.

158security candidates263second-pass queue1853AI analyses
140commits · 30 days
227commits · 60 days
803commits · 180 days
1839commits · 365 days
Backfill bands
Aug 5 → Feb 61049 seen37 candidatesComplete
Feb 6 → Jun 6579 seen10 candidatesComplete
Jun 6 → Jul 678 seen1 candidatesComplete
Jul 6 → Aug 5147 seen16 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

70/100 average clarity
432Strong · 80–100
1164Adequate · 60–79
231Thin · 40–59
29Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
dovgopoly15015164
Rusty Russell95873958072
Sangbida Chaudhuri14731146066
Dusty Daemon771377066
ShahanaFarooqui931093063
daywalker9090589062
Níckolas Goline40540076
Lagrang376476069
Christian Decker36436072
Vincenzo Palazzo838080
Chandra Pratap56256082
ekzyis222063
Analysis record

Published AI watches

Last scanned 2 minutes ago

Informational 15 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

Revert "doc: require Homebrew GNU make and gpatch on macOS"

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…

0cfa949fby Sangbida Chaudhuri+4−81 file
No security note in commit
Informational 15 AI analysisMessage 75 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

Revert "tests: drop obsolete x-prefix in compacter-slow.sh"

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…

116fd7cdby Sangbida Chaudhuri+1−11 file
No security note in commit
Informational 15 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

doc: require Homebrew GNU make and gpatch on macOS

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…

d3ff1474by Sangbida Chaudhuri+8−41 file
No security note in commit
Informational 15 AI analysisMessage 83 · Strong
EP Elements ProjectCore Lightning BitcoinLightning Network

tests: drop obsolete x-prefix in compacter-slow.sh

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…

474c272aby Sangbida Chaudhuri+1−11 file
No security note in commit
Informational 18 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

common: hoist amount+currency parsing into common code.

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
e0f86c17by Rusty Russell+112−723 files
No security note in commit
Informational 17 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

lightningd: internal cleanups since all non-command JSON IDs are strings.

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
a70ae963by Rusty Russell+25−378 files
No security note in commit
Informational 15 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

common: hoist hash_str helper into its own header.

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.

581bbb1fby Rusty Russell+16−176 files
No security note in commit
Informational 23 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

downgrade: we need to remove "impressions" from askrene datastore when downgrading to v26.06.

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
4d926285by Rusty Russell+43−111 file
No security note in commit
Low 31 AI analysisMessage 68 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

downgrade tool: fix invalid memory bug

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
42995326by Lagrang3+8−81 file
No security note in commit
Informational 24 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

xpay: actually tell askrene when a payment 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
a66fabd4by Rusty Russell+40−02 files
No security note in commit
Low 49 AI analysisMessage 58 · Thin
EP Elements ProjectCore Lightning BitcoinLightning Network

askrene: correctly order constraints.

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
4b6fe4a1by Rusty Russell+211−1182 files
No security note in commit
Low 35 AI analysisMessage 68 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

askrene: don't leak channel intel entries

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)
8891f414by Lagrang3+5−01 file
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

xpay: tests should expect the new error messages

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…

0b67601fby Lagrang3+24−32 files
No security note in commit
Low 43 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

offers: limit invoices to 10 minutes for recurring offers in other currencies.

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
446312cfby Rusty Russell+134−148 files
No security note in commit
Low 45 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

offers: limit expiry to offer limit, or 10 minutes with currency conversion.

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
a6cf4915by Rusty Russell+55−22 files
No security note in commit
Low 29 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

fetchinvoice: don't bother with checking recurrence timing.

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
3e49d908by Rusty Russell+2−682 files
No security note in commit
Low 32 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

lightningd: don't do previous invoice checking in createinvoicerequest.

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
4348d8acby Rusty Russell+5−1224 files
No security note in commit
Low 35 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

fetchinvoice: handle weird labels in recurrence_label parameter.

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
d7f87f2dby Rusty Russell+37−102 files
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

Add unit tests for str_to_u64

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…

dddb455dby Lagrang3+203−01 file
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

pytest: add tests for what we want askrene to do.

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…

518620aeby Rusty Russell+67−01 file
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Lower-prioritylsp_plugin: add warning if extra_fee is wrongby Peter Neuroth · ec54d348 · Nov 13, 2025 · 1 fileMessage 68 · AdequateLow 26Details
Commit message · Peter Neuroth

lsp_plugin: add warning if extra_fee is wrong

The extra_fee tlv appended to the update_add_htlc message is set by the
LSP and should specify what was deducted from a single htlc. If it does
not match the expected amount, we log a warning message.

Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 26/100

This change adds a warning log in the LSPS (Lightning Service Provider Specification) plugin when the extra fee reported by an LSP does not match the expected amount. It does not actually reject the problematic payment; it only logs a warning and includes a developer note saying a strict implementation should reject it. The change also removes some older placeholder comments and simplifies how the invoice total amount is determined.

Lower-prioritylsp_plugin: add lsps-jitchannel handlerby Peter Neuroth · ffc0e42f · Nov 13, 2025 · 2 filesMessage 76 · AdequateLow 35Details
Commit message · Peter Neuroth

lsp_plugin: add lsps-jitchannel handler

Adds the full roundtrip to request a jit channel from the LSP. It
approves the jit scid returned by the LSP and returns the invoice with
the corresponding route-hint.

Changelog-Added Experimental support for LSPS2 no-MPP,
Lsps-trusts-client mode. See
https://github.com/lightning/blips/blob/master/blip-0052.md for further
details.

Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Low 35/100

This commit adds experimental support for a new Lightning protocol feature called LSPS2 'just-in-time' (JIT) channels. It lets a user request a payment invoice that, when paid, causes a Lightning Service Provider (LSP) to open a new channel on the fly and forward the payment. The code is marked experimental and contains several TODO/FIXME comments noting that important safety checks are not yet implemented, such as verifying the payment is not a forwarded payment, preventing double payment for the same channel, and checking that the LSP is trusted before accepting a zero-confirmation channel.

Lower-prioritylsp_plugin: add u64 getter and setter to tlvsby Peter Neuroth · d398c7fd · Nov 13, 2025 · 1 fileMessage 68 · AdequateInformational 16Details
Commit message · Peter Neuroth

lsp_plugin: add u64 getter and setter to tlvs

We found a situation where we need to set and get u64s rather than tu64s

Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 16/100

This commit adds ordinary helper functions for reading and writing 64-bit unsigned integers inside a type-length-value (TLV) data structure used by a Lightning Network plugin. It is a straightforward feature addition with no visible security bug or fix.

Lower-prioritylsp_plugin: use concrete type to avoid unwrapby Peter Neuroth · ab06508b · Nov 13, 2025 · 2 filesMessage 80 · StrongLow 34Details
Commit message · Peter Neuroth

lsp_plugin: use concrete type to avoid unwrap

This commit adds a custom request type for the on_openchannel hook to
avoid calling unwrap() during runtime. We now return cleanly from the
hook in any case.

Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Low 34/100

This commit removes a runtime call to unwrap() in a Core Lightning plugin that handles incoming channel requests. Previously, if the JSON payload did not contain an 'openchannel' field, the plugin would panic and crash. The fix introduces a proper typed request structure so the plugin can gracefully handle malformed or unexpected input instead of crashing. It is a defensive hardening change rather than a fix for an active exploit.

Lower-prioritylsp_plugin: change id type in jsonrpcby Peter Neuroth · 60174f73 · Nov 13, 2025 · 1 fileMessage 60 · AdequateInformational 11Details
Commit message · Peter Neuroth

lsp_plugin: change id type in jsonrpc

Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 11/100

This is a small Rust code cleanup in a Lightning Service Provider (LSP) plugin. It changes a function parameter from accepting any value that can be converted into an optional string, to only accepting an already-optional string. There is no indication this fixes a security bug; it appears to be a routine type-simplification change.

Lower-prioritylsp_plugin: add dev-eneabled flag for clientby Peter Neuroth · 3606106c · Nov 13, 2025 · 3 filesMessage 68 · AdequateInformational 18Details
Commit message · Peter Neuroth

lsp_plugin: add dev-eneabled flag for client

While this is still experimental, we only want to enable the client when
explicitly defined!

Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 18/100

This commit adds an opt-in 'dev-lsps-client-enabled' flag so the experimental LSPS client plugin only runs when explicitly enabled. It also renames the existing service flag for consistency and moves the service setup to happen only after the flag is checked. There is no direct security fix here; it is a hardening/guardrail change to prevent an unfinished experimental feature from being active by default.

Lower-prioritylsp_plugin: add lsps2_getinfo handler and callby Peter Neuroth · 581eb307 · Nov 13, 2025 · 6 filesMessage 78 · AdequateInformational 20Details
Commit message · Peter Neuroth

lsp_plugin: add lsps2_getinfo handler and call

This commit adds the lsps2_get_info call defined by BLIP052. It also
adds a test policy plugin that the LSP service plugin uses to fetch the
actual fee menu from to separate the concerns of providing a spec
compliant implementation of an LSP and making business decisions about
fee prices.

Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 20/100

This commit adds a new feature to Core Lightning's experimental LSPS (Lightning Service Provider Specification) plugin. It lets a client ask a service provider for its current fee menu, and the service plugin fetches that menu from a separate policy plugin. The change is mostly feature work, but it introduces a few places where malformed input or a misbehaving policy plugin could cause errors or unexpected behavior. There is no indication this fixes a known security bug or is being treated as a security patch by the project.

Lower-prioritykeysend: enforce BOLT11 description length limitby Wes Payne · 89270024 · Nov 13, 2025 · 2 filesMessage 78 · AdequateLow 35Details
Commit message · Wes Payne

keysend: enforce BOLT11 description length limit

The keysend plugin previously used `> 1023` as the cutoff for
description length when inserting an invoice. This was
inconsistent with invoice.c, which enforces the BOLT11 description
field limit defined in `common/bolt11.h`.

This patch switches to using `BOLT11_FIELD_BYTE_LIMIT` directly.
As a result, keysend no longer fails on descriptions between
641–1023 bytes, which previously caused unexpected failures.

A new regression test (`test_keysend_description_size_limit`)
exercises boundary cases just below, at, and above the limit.

Changelog-Fixed: Protocol: `keysend` with descriptions of length 640-1023 bytes fixed.
Signed-off-by: Wes Payne <noblepayne@noblepayne.com>

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Low 35/100

This commit fixes a bug in Core Lightning's 'keysend' payment feature where invoice descriptions between 641 and 1023 bytes long were incorrectly rejected. The keysend plugin used a hard-coded 1023-byte cutoff, while the rest of the software enforced a stricter 640-byte BOLT11 protocol limit. The patch makes keysend use the same shared limit, so medium-length descriptions now work correctly. This is a reliability/standards-compliance fix rather than a critical security vulnerability.

Lower-prioritylightningd: don't allow invoices with 640 byte descriptions.by Rusty Russell · b05dbeff · Nov 13, 2025 · 4 filesMessage 93 · StrongLow 37Details
Commit message · Rusty Russell

lightningd: don't allow invoices with 640 byte descriptions.

They are invalid! This is because our BOLT11_FIELD_BYTE_LIMIT is not the limit,
it's one greater than the limit.

Reported-by: https://github.com/noblepayne
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Fixed: JSON-RPC: `invoice` no longer accepts 640-byte descriptions (it would produce malformed invoices).

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
AI analysis · Low 37/100

This fix stops Core Lightning from creating invalid BOLT11 invoices when a user supplies a 640-byte payment description. Previously the software treated 640 bytes as acceptable, but the Lightning protocol only allows 639 bytes, so a 640-byte description produced a malformed invoice that other wallets might reject or fail to parse correctly. The change tightens the length check and updates an internal constant so the limit is now correctly 639 bytes.

Lower-prioritysplice: Clean up some spammy debug messagesby Dusty Daemon · 4525243b · Nov 13, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Dusty Daemon

splice: Clean up some spammy debug messages

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit simply removes extra debug log messages from a sorting function used during splicing. No code behavior changes; it only reduces log noise.

Lower-prioritysplice: Add Bolt references and conform to themby Dusty Daemon · 4d155814 · Nov 13, 2025 · 3 filesMessage 68 · AdequateLow 45Details
Commit message · Dusty Daemon

splice: Add Bolt references and conform to them

Adding Bolt references around `commitment_signed` logic and conforming to them.

This allows us to remove the `await_commitment_succcess` logic which was never elegant anyway, nice!

While we’re there we remove a parameter from `handle_peer_commit_sig_batch` that shouldn’t have been there anyway.

Changelog-Changed: Adding stricter conformance to Bolt spec for splice commitments.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 45/100

This commit tightens how Core Lightning handles commitment messages during splicing (a way to resize a Lightning channel). It removes an internal 'await commitment success' flag and instead follows stricter BOLT specification rules: requiring a batch of commitment_signed messages when splices are pending, requiring a funding_txid in those messages, and failing the channel with an error if those rules are violated. The change is framed as spec conformance, but it also removes a lenient 'ignore stale commit_sig' path that previously could have let mismatched messages pass during a splice race.

Lower-prioritycontrib: Let log visualizer open all nodes in tabsby Dusty Daemon · c018f749 · Nov 13, 2025 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Dusty Daemon

contrib: Let log visualizer open all nodes in tabs

New feature when visualizing logs with multiple nodes to view them all in multiple tables

Changelog-None

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit updates a local HTML helper tool used to view test logs. It adds a convenience feature to open logs from multiple test nodes in separate browser tabs. There is no indication this change affects real Lightning node operations, wallets, network protocol handling, or any production code.

Lower-prioritycontrib: Make log visualizer work with CI & pytestby Dusty Daemon · 5b38dd1f · Nov 13, 2025 · 1 fileMessage 75 · AdequateInformational 15Details
Commit message · Dusty Daemon

contrib: Make log visualizer work with CI & pytest

Update the log visualizer to detect logs coming from CI or python tests and be able to render them.

ChangelogNone

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 updates a standalone HTML helper tool used to visualize Core Lightning node logs. It adds logic to recognize log formats produced by continuous integration (CI) runs and Python tests, then strips the node-identifying prefix before rendering. There is no change to the actual Core Lightning daemon, wallet, network protocol, or any cryptographic code. It is a developer/debugging utility enhancement with no security relevance.

Lower-priorityconnectd: report ping latencies (from ping probes) to lightningd.by Rusty Russell · 88b9b0bc · Nov 12, 2025 · 5 filesMessage 65 · AdequateInformational 13Details
Commit message · Rusty Russell

connectd: report ping latencies (from ping probes) to lightningd.

(Uninitialize ping_start on manual ping fixed by Alex Myers)

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 13/100

This commit adds a new internal telemetry feature: the connection daemon now measures how long ping probe responses take and reports those timings to the main lightningd process. It is a straightforward feature addition with no apparent security implications.

Lower-priorityautoclean: clean network events (30 days by default).by Rusty Russell · ec05e5da · Nov 12, 2025 · 13 filesMessage 73 · AdequateInformational 21Details
Commit message · Rusty Russell

autoclean: clean network events (30 days by default).

We also document this in the listnetworkevents command itself.

The test_autoclean_once was getting repetitive, so I cleaned that
up too.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Added: `autoclean` will remove networkevents after 30 days by default.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 21/100

This commit adds a new automatic cleanup feature to the Core Lightning 'autoclean' plugin. By default, network event logs (connections, disconnections, pings) older than 30 days will now be deleted automatically. Users can change or disable this with a new configuration option. There is no indication this is a security fix; it is a routine data-retention and housekeeping feature.

Lower-priorityconnected: tell lightningd if we didn't find an address we could even *try* to connect to.by Rusty Russell · 21ad3315 · Nov 12, 2025 · 4 filesMessage 73 · AdequateInformational 22Details
Commit message · Rusty Russell

connected: tell lightningd if we didn't find an address we could even *try* to connect to.

This is important: if it's tor-only and we don't have a proxy, we will fail
to connect, but it's no indication that the node is unreachable. Same with
IPv6.

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 22/100

This change improves how Core Lightning reports connection failures. It adds a flag telling the main daemon whether the node actually tried to connect to any address, or couldn't even attempt one (for example, because the peer only offers Tor addresses and this node has no Tor proxy, or only offers IPv6 and this node can't use IPv6). This helps avoid wrongly marking peers as unreachable when the real problem is local network capability. There is no direct security vulnerability being fixed here; it is a reliability and diagnostic improvement.

Lower-prioritylightningd: add networkevents to wait API.by Rusty Russell · 39b0e65a · Nov 12, 2025 · 4 filesMessage 68 · AdequateInformational 15Details
Commit message · Rusty Russell

lightningd: add networkevents to wait API.

Changelog-Added: JSON-RPC: `wait` now has `networkevents` subsystem.
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 adds a new 'networkevents' category to the existing 'wait' API, allowing users to subscribe to notifications about peer connection, ping, and disconnect events. It is a straightforward feature addition with no visible security defect.

Lower-prioritylightnind: add connectd's reported events to the db.by Rusty Russell · 96fd13a8 · Nov 12, 2025 · 3 filesMessage 65 · AdequateInformational 13Details
Commit message · Rusty Russell

lightnind: add connectd's reported events to the db.

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 13/100

This commit adds routine logging of network events—successful connections, failed connections, disconnections, and ping latencies—to the node's internal database. It is a bookkeeping/telemetry change, not a fix for a security flaw, and it does not change how the node handles peers or funds.

Lower-prioritysql: add support for listnetworkeventsby Rusty Russell · 08de61cd · Nov 12, 2025 · 3 filesMessage 68 · AdequateInformational 15Details
Commit message · Rusty Russell

sql: add support for listnetworkevents

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Added: JSON-RPC: `sql` now supports the `networkevents` table.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit adds a new read-only data table called 'networkevents' to the experimental SQL plugin. It lets users query network event history using SQL, similar to existing tables. There is no indication of a security bug or vulnerability fix.

AI review queuedlightningd: db infrastructure for network events.by Rusty Russell · 575c1a71 · Nov 12, 2025 · 9 filesMessage 60 · AdequateInformational 13Details
Commit message · Rusty Russell

lightningd: db infrastructure for network events.

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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 13/100

This commit adds database infrastructure to record network events (peer connects, disconnects, failed connects, and pings) in Core Lightning. It creates a new database table, adds functions to save and retrieve those events, and updates test stubs. There is no security fix or vulnerability present in the diff itself; it is a feature/infrastructure change.

AI review queuedconnectd: at disconnected, tell lightningd how long we were connected.by Rusty Russell · 565f7dee · Nov 12, 2025 · 15 filesMessage 65 · AdequateInformational 20Details
Commit message · Rusty Russell

connectd: at disconnected, tell lightningd how long we were connected.

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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 20/100

This change is a straightforward instrumentation patch: Core Lightning's connection daemon (connectd) now records when a peer connection started and reports how long it lasted when the peer disconnects. The data is passed to the main lightningd process and included in internal peer-disconnect/reconnect messages. There is no evidence in the commit of a security bug being fixed or introduced; it appears to be a metrics/logging improvement.

AI review queuedlightningd: implement listnetworkevents.by Rusty Russell · 3b332948 · Nov 12, 2025 · 13 filesMessage 50 · ThinInformational 15Details
Commit message · Rusty Russell

lightningd: implement listnetworkevents.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds a new read-only RPC command called listnetworkevents to Core Lightning. It lets users query a log of network events such as peer connects, disconnects, failed connects, and pings. The change is purely additive: it exposes existing internal event data through a new API and does not alter how funds, channels, or network connections are handled. There is no indication this fixes a security bug or introduces a vulnerability.

AI review queuedlightningd: `delnetworkevent` supportby Rusty Russell · 9f54f014 · Nov 12, 2025 · 7 filesMessage 58 · ThinInformational 24Details
Commit message · Rusty Russell

lightningd: `delnetworkevent` support

Changelog-Added: JSON-RPC: `delnetworkevent` to delete from listnetworkevents.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 24/100

This commit adds a new administrative JSON-RPC command called `delnetworkevent` that lets a node operator delete a single diagnostic network event from the local database by its index. It is intended for housekeeping (for example, the autoclean plugin) and does not affect live channels or funds. There is no indication in the commit that this fixes a security bug; it appears to be a routine feature addition.

AI review queuedconnectd: return reason, connect time to lightningd on connection results.by Rusty Russell · 0f07578c · Nov 12, 2025 · 9 filesMessage 65 · AdequateInformational 18Details
Commit message · Rusty Russell

connectd: return reason, connect time to lightningd on connection results.

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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit is a routine internal improvement, not a security fix. It makes the connection daemon (connectd) report back why a connection was attempted and how long it took, alongside existing success/failure messages. This is observability and diagnostic data being added to inter-daemon messages; it does not change who can connect, what they can do, or how funds are protected.

Lower-priorityclnrest: do not install dependencies from git urlby ShahanaFarooqui · 76592eaf · Nov 12, 2025 · 2 filesMessage 88 · StrongInformational 16Details
Commit message · ShahanaFarooqui

clnrest: do not install dependencies from git url

This reverts [commit](https://github.com/ElementsProject/lightning/pull/8536/commits/cd1ec7216b66bb2f84244ab8c186a003b49d55d6), as an alternative fix has already been introduced in PR [#8547](https://github.com/ElementsProject/lightning/pull/8547) to restore reproducible builds.

This reversion is necessary because otherwise Docker image building will fail with GitHub Actions or via build-release.sh. The issue arises from Cargo’s inability to resolve the git URL dependencies for clnrest’s utoipa and utoipa-swagger-ui packages within these build contexts. While direct `docker buildx` commands succeeds, Github Action or build-release.sh modifies the build context in a way that prevents Cargo from locating the specific git commit for these dependencies.

References:
https://github.com/ElementsProject/lightning/pull/8530#issuecomment-3248713576
https://github.com/ElementsProject/lightning/actions/runs/17435823432
Added fixed SOURCE_DATE_EPOCH flag for reproducible ubuntu builds [8547](https://github.com/ElementsProject/lightning/pull/8547)

Changelog-None.

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 16/100

This commit changes how the clnrest plugin pulls in two Rust helper libraries (utoipa and utoipa-swagger-ui). Previously they were downloaded directly from a personal GitHub fork; now they come from the official crates.io registry. The change was made to fix broken Docker and release builds, not because of a known security flaw. Using registry versions is generally safer and more reproducible than an unreviewed git fork, but the commit itself does not claim to fix any vulnerability.