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 12 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: pass-through invoice paramsby Peter Neuroth · 366ada78 · Nov 13, 2025 · 2 filesMessage 68 · AdequateInformational 18Details
Commit message · Peter Neuroth

lsp_plugin: pass-through invoice params

Calling lsps_jitchannel we want to pass through the label and
description parameters used to call `invoice` to keep the api close to
Core-Lightning

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 changes a Core Lightning plugin so that when a user requests a just-in-time Lightning channel, the label and description they provide are passed through to the generated invoice instead of being replaced with placeholder or auto-generated values. It also removes an unused label generator and simplifies how payment sizes are handled. There is no direct security bug being fixed here; it is mostly an API usability and correctness improvement.

Lower-prioritylsp_plugin: change extra_fee value type to u64by Peter Neuroth · a8d122ba · Nov 13, 2025 · 1 fileMessage 76 · AdequateInformational 12Details
Commit message · Peter Neuroth

lsp_plugin: change extra_fee value type to u64

Blip25 https://github.com/lightning/blips/blob/master/blip-0025.md uses
u64 for the `amount_msat` in the `extra_fee`

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 · Informational 12/100

This is a one-line type correction in a Lightning plugin. The code now reads an unsigned 64-bit integer (u64) instead of a truncated unsigned 64-bit integer (tu64) when fetching the optional 'extra_fee' amount from custom TLV data. The change aligns the implementation with BLIP-25's specification and is best understood as a protocol-compliance fix, not a security patch. There is no direct evidence in the commit or supplied references that this fixes an exploitable vulnerability.

Lower-prioritylsp_plugin: change listprotocols requestby Peter Neuroth · 6c5c302c · Nov 13, 2025 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Peter Neuroth

lsp_plugin: change listprotocols request

Using lsp_id instead of peer as identifier

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

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit simply renames a parameter in the LSPS (Lightning Service Provider Specification) plugin from 'peer' to 'lsp_id'. It is a straightforward API naming change with no apparent security implications.

Lower-prioritytests: use fundwallet instead of manually funding the lspby Peter Neuroth · 9436d52b · Nov 13, 2025 · 1 fileMessage 75 · AdequateInformational 15Details
Commit message · Peter Neuroth

tests: use fundwallet instead of manually funding the lsp

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

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 is a minor cleanup of test code only. It replaces a manual three-step process for adding money to a test Lightning node with a single helper call. No production code was changed, and there is no security relevance.

Lower-prioritylsp_plugin: add basic lsps2 mpp support to clientby Peter Neuroth · be015898 · Nov 13, 2025 · 4 filesMessage 78 · AdequateInformational 11Details
Commit message · Peter Neuroth

lsp_plugin: add basic lsps2 mpp support to client

This includes a mocked lsps2 service plugin, tests and some changes on
the client side. The client now can accept mpp payments for a
jit-channel opening from a connected LSP.

Changelog-Added: Lsps2 `fixed-invoice-mpp` mode for the lsps2 client

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

This commit adds experimental support for multi-part payments (MPP) in a new Lightning Service Provider (LSP) feature called LSPS2. It is a feature addition with test code, not a security fix. There is no indication in the commit that it patches a vulnerability or that the project treats it as a security-relevant change.

Lower-prioritylsp_plugin: add htlc_accepted handler for no-mppby Peter Neuroth · 7f3789b6 · Nov 13, 2025 · 6 filesMessage 68 · AdequateLow 35Details
Commit message · Peter Neuroth

lsp_plugin: add htlc_accepted handler for no-mpp

Adds the service side (LSP) for a simple no-mpp trusted jit channel
opening. This is only an intermediate step, we are going to add support
for multiple htlcs.
This is experimental and can drain on-chain fees from the LSP if used in
public.

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

This commit adds an experimental service-side feature for Core Lightning's LSPS2 plugin that automatically opens a new Lightning channel when a payment arrives for an unknown peer. The code is marked as experimental and incomplete by its own author, with several 'Fixme' notes indicating future hardening is needed. The main operational risk is that a public LSP could have its on-chain funds drained by attackers who trigger many automatic channel opens. The commit itself does not claim to fix a security bug; it is a new feature implementation.

Lower-prioritylsp_plugin: add lsps2_buy request and handlerby Peter Neuroth · ecb1f4c7 · Nov 13, 2025 · 5 filesMessage 68 · AdequateInformational 23Details
Commit message · Peter Neuroth

lsp_plugin: add lsps2_buy request and handler

Adds the lsps2.buy request to the client and the lsps2.buy handler to
the LSP service.

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

This commit adds a new feature to the experimental LSPS (Lightning Service Provider Specification) plugin, allowing a client to request a 'just-in-time' channel purchase from a service provider and the service to handle that request. It is a feature addition to a development plugin, not a fix for a known security bug. The code includes validation of fee parameters and basic bounds checks, but because it is new and touches payment-related logic, it introduces some risk of implementation flaws.

Lower-prioritylsp_plugin: add lsps2 modelsby Peter Neuroth · 17a9a928 · Nov 13, 2025 · 7 filesMessage 50 · ThinInformational 12Details
Commit message · Peter Neuroth

lsp_plugin: add lsps2 models

Add models and options to enable lsps2 on the lsp

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

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
AI analysis · Informational 12/100

This commit adds new data models and configuration options for an experimental LSPS2 (Lightning Service Provider Specification 2) feature in Core Lightning's LSP plugin. It is a feature-implementation patch, not a security fix. There is no indication in the commit or supplied references that it addresses a vulnerability, incident, or security disclosure.

Lower-prioritylsp_plugin: check that featurebit is set and thatby Peter Neuroth · bbcb51d9 · Nov 13, 2025 · 4 filesMessage 60 · AdequateLow 46Details
Commit message · Peter Neuroth

lsp_plugin: check that featurebit is set and that

the client is connected to the lsp before sending a request

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 · Low 46/100

This commit hardens a Core Lightning plugin for the Lightning Service Provider (LSP) protocol. Before sending a request, the plugin now verifies that the target peer is currently connected and advertises the required LSP feature bit. It also makes the plugin advertise that feature bit itself. The change is defensive: without it, a user could accidentally send an LSP request to a peer that does not support LSPs, likely causing the request to fail or behave unexpectedly.

Lower-prioritylsp_plugin: add hook helper to the clientby Peter Neuroth · 0559ff1a · Nov 13, 2025 · 1 fileMessage 68 · AdequateLow 29Details
Commit message · Peter Neuroth

lsp_plugin: add hook helper to the client

We nearly always want to return `{"result":"continue"}` in case that
something went wrong. This commits adds two helper macros that help us
to cleanly return from a hook while logging necessary information.

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

This commit refactors error handling in a Core Lightning plugin so that when something unexpected happens during payment processing, the plugin returns 'continue' instead of stopping or crashing. The change is defensive: it makes the plugin more resilient by avoiding hard failures that could disrupt normal routing. However, it also means some errors are now silently swallowed and logged only at debug level, which could hide problems. There is no direct evidence this fixes a known security vulnerability; it appears to be a robustness improvement.

Lower-prioritylsp_plugin: remove anchor-type from jit channelby Peter Neuroth · 33cd11cb · Nov 13, 2025 · 1 fileMessage 68 · AdequateLow 26Details
Commit message · Peter Neuroth

lsp_plugin: remove anchor-type from jit channel

We use non-anchor channels for now and make this configurable in the
future. The reason for this decission is that elements does not support
anchors.

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 commit changes a single number in the code that creates 'just-in-time' (JIT) channels for Lightning Service Providers (LSPs). The old number enabled 'anchor' channels, which are a newer channel type. The new number disables anchors and falls back to a more basic channel type. The stated reason is that the Elements sidechain does not support anchor channels yet. This is a compatibility/configurability change, not a fix for an active security flaw.

Lower-prioritylsp_plugin: remove feature flag temporarily to ...by Peter Neuroth · c40f6ee9 · Nov 13, 2025 · 1 fileMessage 95 · StrongInformational 16Details
Commit message · Peter Neuroth

lsp_plugin: remove feature flag temporarily to ...

please `connect` tests. We need to fix this in the future. Connectd
should not tell peers about features of disabled plugins.
We need to ensure that connectd only starts once the plugins have
returned from init.

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

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
AI analysis · Informational 16/100

This commit temporarily stops an experimental Lightning Service Provider (LSP) plugin from advertising a specific protocol feature to other nodes. The change is described by the developer as a short-term workaround to make automated tests pass, not as a security fix. It removes the public announcement of a feature bit while leaving the rest of the plugin's code in place, with a note that the underlying startup-order problem should be fixed later.

Lower-prioritylsp_plugin: remove reserve from hook responseby Peter Neuroth · 9cd041a6 · Nov 13, 2025 · 1 fileMessage 68 · AdequateLow 35Details
Commit message · Peter Neuroth

lsp_plugin: remove reserve from hook response

This slipped in during development but actually, we don't want to mess
with the channel reservere here.

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

This commit removes a line that forced a channel reserve to zero in a Lightning plugin's response. A zero reserve could let one side drain a payment channel without keeping the usual safety buffer, potentially making it easier to cheat or destabilize the channel. The change is small and self-described as a development mistake, but the security implications depend on how the plugin is used and whether other protections remain in place.

Lower-prioritylsp_plugin: relax LSP feateture bit handlingby Peter Neuroth · fa8d90f3 · Nov 13, 2025 · 1 fileMessage 68 · AdequateLow 30Details
Commit message · Peter Neuroth

lsp_plugin: relax LSP feateture bit handling

Replace ensure_lsp_connected() by check_peer_lsp_status() which only
returns the status of the peer (connected, has_lsp_feature). This allows
us to be more tolearant about the LSP feature bit since it is only
optional according to the spec.

We still check for the feature but only return a warning in the logs.

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

This change makes a Core Lightning plugin less strict about a peer advertising a specific optional feature flag (the 'LSP feature bit'). Previously, if a peer didn't advertise that bit, the plugin would refuse to talk to it. Now it logs a warning and continues. This is a spec-compliance/usability improvement, not a clear security fix, but it slightly increases the chance of connecting to a peer that doesn't truthfully advertise its capabilities.

Lower-prioritylsp_plugin: add reversed feature-bit checkby Peter Neuroth · 722c19ae · Nov 13, 2025 · 2 filesMessage 80 · StrongLow 30Details
Commit message · Peter Neuroth

lsp_plugin: add reversed feature-bit check

Core-Lightning returns the feature-bits in reversed order but we don't
want to rely on the caller to reverse the u8 slice themselfs. This
commit adds a convenience function that reverses the bitmap to avoid
hard to debug mistakes.

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

This commit is a small cleanup in a Core Lightning plugin. It moves the logic for reversing a list of feature bits into a shared helper function so callers don't have to remember to reverse the bytes themselves. The change is defensive: it reduces the chance of future mistakes when checking whether a peer supports a particular Lightning feature. There is no direct evidence in the commit of an active security bug being fixed, but the change is security-relevant because incorrect feature-bit checks could cause the plugin to misidentify peer capabilities.

Lower-prioritylsp_plugin: add documentation for optionsby Peter Neuroth · 22269eb6 · Nov 13, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Peter Neuroth

lsp_plugin: add documentation for options

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
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only adds user-facing documentation describing three already-existing experimental configuration options for a Lightning Service Provider (LSP) plugin. There are no code changes, no behavior changes, and no security fixes.

Lower-prioritylsp_plugin: rename cmds and opts to fit conventionby Peter Neuroth · 9e301f0f · Nov 13, 2025 · 5 filesMessage 73 · AdequateInformational 15Details
Commit message · Peter Neuroth

lsp_plugin: rename cmds and opts to fit convention

We use `experimental-*` for documented commands instead of `dev-` which
are undocumented commands.

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

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

This commit simply renames configuration options and internal command names in the LSPS (Lightning Service Provider Specification) plugin to follow the project's naming convention. 'dev-' prefixed names are changed to 'experimental-' prefixes, and some internal RPC command names are updated. There is no security fix or vulnerability here—it's a cleanup and consistency change.

Lower-prioritylsp_plugin: remove redundant config optionby Peter Neuroth · ce0be9dc · Nov 13, 2025 · 1 fileMessage 68 · AdequateInformational 18Details
Commit message · Peter Neuroth

lsp_plugin: remove redundant config option

We don't need to separately enable lsp and lsps2 services. If lsps2 is
not enabled what can we do with just the messaging layer?

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 removes a redundant developer-only configuration flag from an experimental Lightning Service Provider (LSP) plugin. Previously, users had to enable both a general 'LSPS service' flag and a separate 'LSPS2 service' flag. The change makes the LSPS2 flag alone control whether the plugin runs. It also adds a clear error if LSPS2 is enabled but its required secret is missing. There is no direct security vulnerability here; it is a code cleanup that slightly reduces configuration confusion.

Lower-prioritylsp_plugin: format test fileby Peter Neuroth · 3b05a813 · Nov 13, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Peter Neuroth

lsp_plugin: format test file

autoformat on save complained about the formatting.

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

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only reformats a test file by changing two single-quoted strings to double quotes and adding trailing commas. It does not change any real code behavior or fix any security issue.

Lower-prioritylsp_plugin: refactor lsps0listprotocols handlerby Peter Neuroth · ef539dd5 · Nov 13, 2025 · 3 filesMessage 58 · ThinInformational 13Details
Commit message · Peter Neuroth

lsp_plugin: refactor lsps0listprotocols handler

Move the handler to a separate file, and add lsps2_enabled flag to the
handler.

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

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context
AI analysis · Informational 13/100

This commit is a routine code cleanup (refactor) in the Core Lightning 'lsps-plugin'. It moves the handler for the 'lsps0.listProtocols' JSON-RPC method into its own file and adds a flag so the handler can later include protocol number 2 in its response when enabled. Currently, the flag is hard-coded to false, so the behavior is unchanged from before: the handler still returns an empty list of protocols. There is no security fix or vulnerability visible in this change.

Lower-prioritylsp_plugin: add sane error to listprotocolsby Peter Neuroth · 511e61d7 · Nov 13, 2025 · 1 fileMessage 60 · AdequateInformational 18Details
Commit message · Peter Neuroth

lsp_plugin: add sane error to listprotocols

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

This commit improves error handling in a Core Lightning plugin's list-protocols feature. It replaces a programming panic (an abrupt crash) with proper error messages when something goes wrong, and adds clearer logging. There is no direct evidence this fixes an exploitable security vulnerability, but it does make the plugin more robust and easier to diagnose.

Lower-prioritylsp_plugin: add cleanup on "on_invoice_payment"by Peter Neuroth · fcf1868d · Nov 13, 2025 · 3 filesMessage 68 · AdequateInformational 18Details
Commit message · Peter Neuroth

lsp_plugin: add cleanup on "on_invoice_payment"

The `on_invoice_payment` hook is called when core-lightning successfully
collected all parts to an invoice. We'll use this to clean up the the
datastore when an invoice completes.

Caveat: This will be called on every succesfull invoice payment, we may
improve this in the future.

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 a cleanup step to the experimental LSPS (Lightning Service Provider Specification) plugin. When a JIT-channel invoice is fully paid, the plugin now deletes its stored record from Core Lightning's datastore. The change is defensive housekeeping rather than a fix for an active vulnerability, and the commit message does not describe any security issue.

Lower-prioritychore(fmt): Fix formatting of new python files.by Christian Decker · 1126bc31 · Nov 13, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Christian Decker

chore(fmt): Fix formatting of new python files.

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only reformats Python test files and a test plugin. It adjusts whitespace, quote style, line breaks, and removes a couple of unused local variables. There is no change to production code, no security fix, and no behavior change in the software users run.

Lower-prioritylsp_plugin: add fn to wrap payload with peer idby Peter Neuroth · c52da76a · Nov 13, 2025 · 3 filesMessage 68 · AdequateInformational 19Details
Commit message · Peter Neuroth

lsp_plugin: add fn to wrap payload with peer id

We need to somehow access the peer id in the jrpc server to know where
the response should go. This seems to be the most convenient way for
now. We may unclutter this in the future if this results in performance
issues.

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

This commit adds a helper function in the LSPS (Lightning Service Provider Specification) plugin that attaches the sender's peer ID to incoming JSON-RPC messages before passing them to the internal handler. It is a plumbing/infrastructure change to make routing responses easier. There is no direct security fix or vulnerability being patched; it is a feature addition with some minor robustness checks.

Lower-prioritylsp_plugin: add primitives for messagesby Peter Neuroth · e36fdeff · Nov 13, 2025 · 4 filesMessage 60 · AdequateInformational 16Details
Commit message · Peter Neuroth

lsp_plugin: add primitives for messages

Adds some primitives defined in lsps0 for other protocol messages.

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

This commit adds basic building-block types for a new Lightning Service Provider (LSP) plugin in Core Lightning. It introduces Rust code to represent money amounts (millisatoshis), fee rates (parts-per-million), channel IDs, and timestamps, plus tests. There is no security fix or vulnerability here; it is ordinary feature development.