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
225commits · 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 23 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.

AI review queuedfuzz-tests: Add coverage-increasing inputs to seed corporaby Chandra Pratap · 3e96f076 · Sep 15, 2025 · 557 filesMessage 83 · StrongInformational 15Details
Commit message · Chandra Pratap

fuzz-tests: Add coverage-increasing inputs to seed corpora

Improvements in the fuzz-testing scheme of fuzz-bigsize led
to the discovery of test inputs that result in greater in
code-coverage. Add these inputs to the test's seed corpus.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencesecond-pass: unusually broad change
AI analysis · Informational 15/100

This commit only adds and removes test input files used by an automated fuzz-testing harness for a bigsize parser. It is purely a test-data update and does not change any production code, configuration, or behavior of the Core Lightning node software.

Lower-prioritycommon/amount: prevent scaling with invalid factors in amount scale functionsby Chandra Pratap · 43516ce0 · Sep 15, 2025 · 1 fileMessage 73 · AdequateModerate 51Details
Commit message · Chandra Pratap

common/amount: prevent scaling with invalid factors in amount scale functions

Changelog-Fixed: Add checks in `amount_msat_scale` and
`amount_sat_scale` to return false when the scaling factor
is -NaN or negative.

This is important as the scaling factor may come from external
sources like wire, which can cause runtime errors if not handled
properly.

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

This commit adds safety checks to two internal functions that multiply cryptocurrency amounts by a scaling factor. Previously, if the scaling factor was a malformed 'not-a-number' value or a negative number, the function could produce undefined or nonsensical results. Now the functions reject those inputs outright. The commit message says the factor can come from network data, so this is a hardening fix against bad or malicious input.

AI review queuedfuzz-tests: Add coverage-increasing inputs to seed corporaby Chandra Pratap · a23dcf67 · Sep 15, 2025 · 56 filesMessage 83 · StrongInformational 15Details
Commit message · Chandra Pratap

fuzz-tests: Add coverage-increasing inputs to seed corpora

Change in the fuzz-testing scheme of fuzz-addr led to the
discovery of test inputs that result in greater in code
coverage. Add these inputs to the test's seed corpus.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencesecond-pass: unusually broad change
AI analysis · Informational 15/100

This commit only adds new test input files to a fuzz-testing seed corpus. It does not change any production code, configuration, or documentation. There is no indication of a security fix or vulnerability being addressed.

Lower-priorityfuzz-tests: verify round‑trip scriptpubkey <-> addr conversionby Chandra Pratap · 763be38e · Sep 15, 2025 · 1 fileMessage 83 · StrongInformational 15Details
Commit message · Chandra Pratap

fuzz-tests: verify round‑trip scriptpubkey <-> addr conversion

Changelog-None: Currently, fuzz-addr only tests encoding via
encode_scriptpubkey_to_addr(), without checking decoding. Add a
round‑trip assertion: if encoding produces an address, decode
it back with decode_scriptpubkey_from_addr() and confirm the
result matches the original scriptpubkey.

83/100 · StrongMessage clarity
✓ Specific, 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 · Informational 15/100

This commit adds a new check inside an existing automated test (a fuzz test) for Core Lightning. It makes sure that when the software converts a Bitcoin script into a human-readable address and then converts that address back, the result matches the original script. It does not change any production code, user-facing behavior, or network handling. It is purely a stronger test case.

AI review queuedfuzz-tests: Add a seed corpus for the new testby Chandra Pratap · c7052b7d · Sep 15, 2025 · 193 filesMessage 78 · AdequateInformational 15Details
Commit message · Chandra Pratap

fuzz-tests: Add a seed corpus for the new test

Add a minimal input set as a seed corpus for the newly introduced
test. This leads to discovery of interesting code paths faster.

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 evidencesecond-pass: unusually broad change
AI analysis · Informational 15/100

This commit only adds test data files (a seed corpus) for a fuzzing test. Fuzzing is an automated testing technique that feeds random or crafted inputs to a program to find bugs. These files are not part of the production Core Lightning software that users run, so they cannot directly cause a security issue in a live node. There is no indication in the commit that any vulnerability was found or fixed.

Lower-priorityfuzz-tests: Add fuzz target for closing_sigby Chandra Pratap · 871ae75b · Sep 15, 2025 · 1 fileMessage 86 · StrongInformational 15Details
Commit message · Chandra Pratap

fuzz-tests: Add fuzz target for closing_sig

Changelog-None: 'closing_signed' and 'closing_sig' are
channel closing negotiation messages defined in BOLT #2.

While 'closing_signed' has a wire fuzz test, 'closing_sig'
does not. Add a test to perform a round-trip encoding check
(towire -> fromwire) similar to the other wire fuzzers.

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
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit adds a new automated fuzz test for a Lightning network channel-closing message called 'closing_sig'. It only adds test code and does not change any production code, so it cannot introduce a runtime security vulnerability by itself. It is a defensive testing improvement.

AI review queuedfuzz-tests: Add a seed corpus for the new testby Chandra Pratap · 59ccced1 · Sep 15, 2025 · 196 filesMessage 78 · AdequateInformational 15Details
Commit message · Chandra Pratap

fuzz-tests: Add a seed corpus for the new test

Add a minimal input set as a seed corpus for the newly introduced
test. This leads to discovery of interesting code paths faster.

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 evidencesecond-pass: unusually broad change
AI analysis · Informational 15/100

This commit only adds test data files (a fuzzing seed corpus) for a new fuzz test named fuzz-wire-closing_complete. It does not change any production code, configuration, or runtime behavior. There is no indication of a security fix or vulnerability being addressed.

Lower-priorityfuzz-tests: Add fuzz target for closing_completeby Chandra Pratap · 0b401a92 · Sep 15, 2025 · 1 fileMessage 86 · StrongInformational 15Details
Commit message · Chandra Pratap

fuzz-tests: Add fuzz target for closing_complete

Changelog-None: 'closing_signed' and 'closing_complete'
are channel closing negotiation messages defined in BOLT #2.

While 'closing_signed' has a wire fuzz test, 'closing_complete'
does not. Add a test to perform a round-trip encoding check
(towire -> fromwire) similar to the other wire fuzzers.

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
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit adds a new automated fuzz test for a Lightning network channel-closing message called 'closing_complete'. It does not change any production code, network behavior, or security logic. It only adds a test file that checks whether the message can be encoded and decoded correctly.

AI review queuedtests: do not leak file descriptorsby Matt Whitlock · 4d47cc68 · Sep 15, 2025 · 10 filesMessage 55 · ThinInformational 19Details
Commit message · Matt Whitlock

tests: do not leak file descriptors

Changelog-None

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit fixes file descriptor leaks in the project's test suite. It replaces patterns like open(...).read() with context managers or helper methods that automatically close files. These changes only affect test code and test infrastructure, not the actual Core Lightning node software that users run. The leak could cause tests to run out of file handles during long test runs, but it is not a security vulnerability in production software.

Lower-prioritypyln-testing: close log files when tearing down node_factoryby Matt Whitlock · a62e9c55 · Sep 15, 2025 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · Matt Whitlock

pyln-testing: close log files when tearing down node_factory

TailableProc has a cleanup_files() method to close its log files. Call
it when tearing down node_factory to avoid leaking resources.

Changelog-None

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

This is a small cleanup change in the Python testing helper for Core Lightning. It makes sure log files are closed when test nodes are torn down, preventing file descriptor leaks during automated tests. There is no security relevance in the commit itself.

Lower-prioritypyln-testing: close 'config.vars' after readingby Matt Whitlock · abcb976e · Sep 15, 2025 · 1 fileMessage 78 · AdequateInformational 17Details
Commit message · Matt Whitlock

pyln-testing: close 'config.vars' after reading

This code has a resource leak:

lines = open(fname, 'r').readlines()

This is the correct way:

with open(fname, 'r') as f:
lines = f.readlines()

Changelog-None

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

This commit fixes a minor resource leak in a Python testing utility. The original code opened a small configuration file but never explicitly closed it. The fix uses Python's 'with' statement to ensure the file is closed automatically after reading. This is a code-quality improvement with no practical security impact.

Lower-prioritypyln-client: don't leak dirfd after connecting Unix socketby Matt Whitlock · 7e9729b2 · Sep 15, 2025 · 1 fileMessage 95 · StrongLow 28Details
Commit message · Matt Whitlock

pyln-client: don't leak dirfd after connecting Unix socket

This file descriptor leak was causing test failures due to exceeding the
limit on open file descriptors. Note that the leak only occurred if the
RPC socket path was longer than can fit in a struct sockaddr_un.

Changelog-Fixed: pyln-client no longer leaks a file descriptor when connecting to an RPC socket with a long path name.

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

This commit fixes a file descriptor leak in the Python client library used to talk to Core Lightning. When connecting to a Unix socket whose path was too long, the code opened a temporary directory file descriptor but never closed it. Over time this could exhaust the process's allowance of open files, causing test failures or potentially disrupting normal operation. The fix wraps the socket connection in a try/finally block so the temporary descriptor is always closed.

Lower-prioritypyln-testing: don't leak file descriptor in GossipStoreby Matt Whitlock · f7204c8d · Sep 15, 2025 · 1 fileMessage 60 · AdequateInformational 18Details
Commit message · Matt Whitlock

pyln-testing: don't leak file descriptor in GossipStore

Changelog-None

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 18/100

This is a small cleanup in a Python testing helper that makes sure a gossip-store file is closed when the object is destroyed or reopened. It fixes a file-descriptor leak in test infrastructure, not in the actual Core Lightning node software. There is no direct security impact on live Lightning nodes or user funds.

Lower-prioritypyln-testing: set 'dev-save-plugin-io' only on CLN v25.09 and laterby daywalker90 · e732eda3 · Sep 15, 2025 · 1 fileMessage 60 · AdequateInformational 19Details
Commit message · daywalker90

pyln-testing: set 'dev-save-plugin-io' only on CLN v25.09 and later

Changelog-None

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 19/100

This is a small testing-framework fix that stops passing a developer-only option ('dev-save-plugin-io') to older versions of Core Lightning. The option only exists in newer code, so without the version check, tests against older CLN releases would fail to start. It is not a security patch for production software.

Lower-prioritydoc: make sure v prefix is always on the version.by Rusty Russell · a0eb5036 · Sep 10, 2025 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · Rusty Russell

doc: make sure v prefix is always on the version.

1. Put v prefix before NEW_VERSION
2. Change the checkin line to a one-liner.
3. Have build-release.sh check for the v prefix (with --force-version= you could omit it).

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 is a documentation and release-script hardening change. It ensures that version numbers used during Core Lightning releases always start with the letter 'v' (for example, v23.05 instead of 23.05). It updates the release checklist instructions and adds a safety check in the build-release.sh script that exits with an error if the version is missing the 'v' prefix. There is no security vulnerability being fixed here.

Lower-prioritytools/build-release.sh: always append version to SHA256SUMS file.by Rusty Russell · b77d6486 · Sep 10, 2025 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell

tools/build-release.sh: always append version to SHA256SUMS file.

Telling users to rename it is a poor idea, and if you have multiple releases in your release/ dir
it will get confusing. So always append -v25.09 and update docs accordingly.

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

This commit is a routine release-process improvement. It changes the filename of the release checksum file from SHA256SUMS to SHA256SUMS-v25.09 (with the version number appended) so that multiple releases in the same folder do not overwrite or confuse each other. The documentation and GitHub release workflow are updated to match the new filename. There is no security vulnerability here.

Lower-prioritydoc: Remove all BuildOnL2 referencesby ShahanaFarooqui · 3dbb1ab4 · Sep 10, 2025 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · ShahanaFarooqui

doc: Remove all BuildOnL2 references

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit simply removes references to a community platform called BuildOnL2 from documentation files. It replaces those references with Telegram in a few release announcement instructions. There is no code change and no security impact.

Lower-prioritydoc: Ensure that you can build release *before* pushing tags.by Rusty Russell · 64541b2d · Sep 10, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell

doc: Ensure that you can build release *before* pushing tags.

We found a bug last release, and had to yoink tag back from GH. This is not good!

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

This commit only changes the order of steps in a release checklist document. It moves the local build-and-sign steps before pushing the release tag to GitHub, so a broken release is caught before a public tag is created. There is no code change and no security vulnerability is being fixed.

Lower-prioritytools: insist on lowdown for zipfile.by Rusty Russell · 6182b9d3 · Sep 10, 2025 · 1 fileMessage 68 · AdequateInformational 18Details
Commit message · Rusty Russell

tools: insist on lowdown for zipfile.

On GitHub where we build the zipfile, it exists, so we don't check out
the submodule. If you do, your zipfile won't match!

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

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

This commit is a build-script hardening change, not a fix for an exploitable vulnerability. It makes the release-zip build process fail early if the 'lowdown' tool is missing, so that different developers or CI environments don't accidentally produce release zip files with different contents. That reproducibility problem could in theory allow someone to ship a tampered release by claiming it was built without lowdown, but the commit itself does not describe any such attack and there is no direct evidence of one.

Lower-prioritydoc: remove recommendation to wait a week for point release.by Rusty Russell · 072c081f · Sep 10, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell

doc: remove recommendation to wait a week for point release.

With more developers, inevitably there are PRs queued during the
release process. Just accept that there will need to be a branch
created for any point release.

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

This commit simply edits an internal project document (the release checklist) to remove a suggestion that developers wait one week after a release before deciding whether a point release is needed. It is purely a process/documentation change and has no effect on the software's code, behavior, or security.

Lower-prioritytools: fix indentation.by Rusty Russell · ef25f4bf · Sep 10, 2025 · 2 filesMessage 43 · ThinInformational 15Details
Commit message · Rusty Russell

tools: fix indentation.

Whitespace changes only.

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

43/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit only adjusts whitespace (tabs to spaces) in two build helper scripts. There is no change to program logic, no new behavior, and no security relevance.

Lower-prioritybuild-release.sh: do make -j inside docker image.by Rusty Russell · b0a9b55e · Sep 10, 2025 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · Rusty Russell

build-release.sh: do make -j inside docker image.

Defaults to nproc, but you can set MAKEPAR=N to override it.

Timings on my laptop are only a little better, because Rust.

Before:
time tools/build-release.sh bin-Fedora bin-Ubuntu
...
real 33m17.104s
user 0m4.259s
sys 0m3.605s

After:
time tools/build-release.sh bin-Fedora bin-Ubuntu
...
real 25m25.556s
user 0m4.297s
sys 0m3.743s

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

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

This change simply speeds up the project's release build scripts by allowing them to compile multiple parts at once (parallel make). It does not fix or introduce any security issue.

Lower-prioritydoc: append uv run to make commandby ShahanaFarooqui · aad679f8 · Sep 10, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · ShahanaFarooqui

doc: append uv run to make command

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only updates the project's internal release checklist documentation. It changes several example commands to include 'uv run' in front of 'make' so they work with the project's Python tooling setup. There is no code change, no bug fix, and no security relevance.

Lower-prioritydoc: Update instructions for CI workflow `Release 🚀`by ShahanaFarooqui · 16252fd7 · Sep 10, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · ShahanaFarooqui

doc: Update instructions for CI workflow `Release 🚀`

Changelog-None.

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only updates the project's internal documentation for how release managers run the release checklist. It changes wording and step ordering in a markdown file, telling maintainers which CI workflow triggers automatically and how to compare and sign checksum files. No software code, build scripts, CI definitions, or cryptographic handling were modified.

Lower-prioritytools/build-release.sh: don't assume you need sudo to run docker.by Rusty Russell · 8ba6522c · Sep 10, 2025 · 2 filesMessage 65 · AdequateInformational 20Details
Commit message · Rusty Russell

tools/build-release.sh: don't assume you need sudo to run docker.

I don'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 20/100

This change updates the release build script so that it no longer hardcodes 'sudo' before every Docker command. Instead, a new '--sudo' flag lets the release manager opt in to using sudo only when their system requires it. The accompanying documentation is updated to mention the new flag and to adjust supported Ubuntu versions. This is a minor developer-experience and hardening improvement, not a fix for an active security vulnerability.