Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This commit simply adds a new person's PGP public-key fingerprint to the list of trusted release signers in two documentation files. It does not change any code, fix any bug, or alter any security behavior of the software itself.
This is a tiny internal fix to make a bookkeeping migration produce stable event ordering. It changes the timestamp used when creating historical 'deposit' records during a one-time database migration, so the records sort consistently with…
This commit is a documentation-only cleanup of the JSON-RPC command help files. It corrects which numeric error codes are listed for each command so the published schemas match what the software actually returns. No program logic, validati…
Documentation-only change with no executable code modificationsCorrects RPC schema error-code metadata to match actual handler behaviorNo change to input parsing, authorization, cryptography, or network behavior
This commit fixes a bug where a setting that controls whether unexpected transaction signatures are allowed was not initialized when the channel daemon starts. If a peer sent such signatures before the channel was fully ready, the program …
use of uninitialized variableundefined behavior (invalid bool load)network-triggered code path
This commit fixes the project's internal nightly code-coverage CI workflow. It changes how test coverage files are collected, ensures the same LLVM compiler version is used to generate and merge coverage data, and uploads a Codecov-compati…
This commit is a large cleanup of Core Lightning's API schemas, generated RPC bindings, and related plugin code. The stated goal is to make the documented 'required' fields match what the C code actually always produces or expects. In prac…
Large schema-only change with no accompanying security advisory or CVEOne semantic change to plugin hook response: invoice_payment hook can now reject with only failure_message and no resultMany fields change from optional to required in public RPC/protobuf interfaces
This commit only updates documentation. It adds error code 313 to the documented error lists for several Core Lightning commands (fundpsbt, utxopsbt, txprepare, multiwithdraw, and upgradewallet). The error code already existed in the code …
This commit fixes a release-script check that verifies the cryptographic signature on a file of checksums. Previously, the script only told GPG to verify the signature file itself. If someone replaced that signature file with an inline-sig…
Incorrect cryptographic verification logic in release toolingPotential false-positive signature verification with inline-signed .asc substitutionRelease-integrity hardening
This commit updates Core Lightning's release documentation to tell users and release managers to run gpg --verify with both the signature file and the manifest file named explicitly. The old one-argument form can silently succeed even if t…
Verification bypass risk in release artifact validationgpg --verify single-argument form can exit 0 without reading the intended manifestDocumentation-only hardening of release process
This commit is a routine update to the Rust dependency lock file (Cargo.lock), bumping many third-party libraries to newer patch or minor versions. The commit message gives no security reason for the update, and no verified references link…
Routine dependency refresh with no stated security rationaleUpdates to security-sensitive transitive crates (rustls, hyper, h2, tokio, webpki-roots) but no evidence these versions fix known vulnerabilitiesNo source-code changes or patch-specific fixes visible in the diff
This commit fixes a stack-overflow risk in Core Lightning's JSON parser. Before the fix, an attacker could send a valid JSON-RPC message containing thousands of nested brackets or braces. The parser's own helper functions used recursion fo…
Stack-overflow via deeply nested JSONRecursive JSON traversal without depth boundDenial-of-service vector in JSON-RPC input parsing
This commit only fixes typos and comment style. It changes two C-style comments from // to /* */ and corrects a grammar error in a documentation comment ('element' to 'elements'). There are no code behavior changes, no bug fixes, and no se…
This change fixes a test-infrastructure bug in Core Lightning's Python testing helpers. When running tests against a PostgreSQL database, very long test names could be silently shortened by PostgreSQL, causing different test runs or nodes …
No security-relevant signal: change is in test framework code onlyFixes a test reliability issue, not a runtime vulnerabilityNo input sanitization, authentication, cryptography, or network changes
This fix prevents Core Lightning from trying to use freshly created bitcoins (immature coinbase rewards) as emergency funds for fee-bump transactions. Such a transaction would be invalid under Bitcoin's rules and would be rejected by the n…
This commit fixes a bug in Core Lightning's askrene plugin that could prevent a node from restarting. When a saved routing layer contained a node bias with a description, the plugin accidentally freed the description's memory while using i…
Use-after-free / double-take of a tal-allocated string during plugin startupDenial-of-service-like symptom: lightningd aborts before replying to init, node cannot restartFixes publicly reported issue #9433 by endothermicdev
This commit only fixes a test case so it actually exercises the intended code path. It does not change any production code, so it cannot introduce or fix a real-world security vulnerability by itself. The test change is a reproducer for a …
This commit fixes a bug in Core Lightning's experimental dual-funded channel feature. When another node tried to open a channel, Core Lightning was not checking whether the proposed transaction fees were reasonable. A peer could request a …
Missing input validation on wire-parsed feerate fieldsPeer could induce signing and storage of feerate == 0RBF remote path allowed unbounded upward feerate walks
This commit adds regression tests for three related bugs where wildly wrong Bitcoin transaction feerates could enter Core Lightning. In the worst case, a malicious or broken fee source could make the node think a feerate was zero (due to a…
Integer overflow in feerate conversion (u32 wrap from 0xFFFFFFFF perkb to 0 perkw)Absurd feerate from external fee source bypassing sanity ceilingDatabase-stored out-of-range feerate causing startup abort/crash loop
This update fixes a crash bug in Core Lightning. When the software tried to list details of a channel opening in progress, it could crash if a stored fee rate was extremely large or zero. The crash happened because the code used an interna…
Integer overflow in RBF escalation (u32 * 25 / 24) leading to assertion failureAssertion failure in read-only introspection RPC (listpeerchannels) causing crash-loop at startupDatabase value treated as invariant despite originating from external fee estimator
This commit fixes a bug where Core Lightning nodes could get stuck in a crash loop. If a node had previously stored an extremely high or zero fee rate for an in-progress channel funding operation (a 'splice' or dual-funded channel RBF), a …
Integer overflow in fee-rate calculation (u32 overflow when multiplying by 25/24)Assertion failure leading to daemon crash loop at startupDatabase migration clamps out-of-range stored funding feerates
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
AI review queuedwallet: make sure we re-watch outpoints after blocks are rolled back.by Rusty Russell · 1e66414b · Nov 28, 2025 · 2 filesMessage 73 · AdequateModerate 58Details
Commit message · Rusty Russell
wallet: make sure we re-watch outpoints after blocks are rolled back.
At startup, we load the outpoints to watch, *then* roll back 15 blocks. If there were things in those blocks we wanted to watch, we no longer do!
1. We load the utxoset into memory: everything in the utxoset table which has spendheight null. 2. We roll back 15 blocks to re-read. Deleting a block from the database causes the utxo spentheights referring to it to be set to null. 3. We roll forward, but we didn't update the in-memory utxoset, so we're not watching those utxos which are spent.
The main symptom of this is that we spam peers with obsolete gossip (if we get sent a channel announcement for a closed channel, we can think it isn't spent yet). But it could *also* mean we don't notice onchain txs, if we restart at the wrong time!
Changelog-Fixed: lightningd: we could miss tx spends which happened in the past blocks when we restarted. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 58/100
This fix corrects a startup bug in Core Lightning where, after rolling back recent blocks to re-read them, the node could forget to keep watching certain spent transaction outputs. The main visible symptom was stale network gossip, but it could also cause the node to miss on-chain transactions if it restarted at the wrong time. The patch makes the node refresh its watch list after block rollbacks.
AI review queuedpytest: test for watching utxos over restart reorg.by Rusty Russell · 8caffde0 · Nov 28, 2025 · 1 fileMessage 75 · AdequateInformational 12Details
Commit message · Rusty Russell
pytest: test for watching utxos over restart reorg.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100
This commit only adds a new automated test to the project's test suite. It does not change any production code, so it cannot directly introduce or fix a security vulnerability in running software. The test is currently marked as expected to fail (xfail), meaning it documents behavior that is not yet working correctly—specifically, how the wallet tracks whether a coin is spent across a blockchain reorganization and a node restart. It may be a regression test for a future bug fix, but by itself it poses no security risk.
AI review queuedlightningd: scan back to seek missing UTXOs.by Rusty Russell · 6c603756 · Nov 28, 2025 · 4 filesMessage 60 · AdequateLow 44Details
Commit message · Rusty Russell
lightningd: scan back to seek missing UTXOs.
We only do this once, and not on new nodes.
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 · Low 44/100
This commit adds a one-time background scan that re-examines old blocks to find UTXOs (unspent transaction outputs) the wallet may have missed earlier. It is a data-recovery / consistency fix, not an obvious exploit patch. The commit message does not call it a security fix, and there are no supplied references linking it to an attack. The change could matter for security because missed UTXOs can affect channel balances and on-chain funds, but the diff itself is defensive housekeeping.
AI review queuedglobal: use lightning-hsmtool not hsmtool.by Rusty Russell · 23f21416 · Nov 27, 2025 · 18 filesMessage 78 · AdequateInformational 15Details
Commit message · Rusty Russell
global: use lightning-hsmtool not hsmtool.
When installed, the name is `lightning-hsmtool`. We actually copy `tools/hsmtool` to `tools/lightning-hsmtool` but that's a silly step which we should get rid of.
So: 1. Make sure our documentation always refers to it as lightning-hsmtool. 2. Make sure our tests invoke it as `lightning-hsmtool`. 3. Rename the C file.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is a simple housekeeping rename. The Core Lightning project previously built a tool called `hsmtool`, then copied it to `lightning-hsmtool` during installation. This change removes the extra copy step and makes the installed name `lightning-hsmtool` the canonical name everywhere: source file, build system, documentation, and tests. No security vulnerability is introduced or fixed.
AI review queuedCI: don't run configure on *host* for release.by Rusty Russell · 9627bf9b · Nov 24, 2025 · 1 fileMessage 88 · StrongInformational 15Details
Commit message · Rusty Russell
CI: don't run configure on *host* for release.
It breaks, but more importantly we don't need to install lowdown any more, since the check in build-release.sh has been removed.
``` Run sudo apt-get install -y lowdown Reading package lists... Building dependency tree... Reading state information... The following NEW packages will be installed: lowdown 0 upgraded, 1 newly installed, 0 to remove and 21 not upgraded. Need to get 129 kB of archives. After this operation, 314 kB of additional disk space will be used. Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] Get:2 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 lowdown amd64 1.1.0-1 [129 kB] Fetched 129 kB in 0s (2971 kB/s) Selecting previously unselected package lowdown. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 216225 files and directories currently installed.) Preparing to unpack .../lowdown_1.1.0-1_amd64.deb ... Unpacking lowdown (1.1.0-1) ... Setting up lowdown (1.1.0-1) ... Processing triggers for man-db (2.12.0-4build2) ... Not building database; man-db/auto-update is not 'true'.
Running kernel seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted. checking for getpagesize() in <unistd.h>... yes checking for isblank() in <ctype.h>... yes checking for little endian... yes checking for memmem in <string.h>... yes checking for memrchr in <string.h>... yes checking for mmap() declaration... yes checking for /proc/self/maps exists... yes checking for qsort_r cmp takes trailing arg... yes checking for __attribute__((section)) and __start/__stop... yes checking for stack grows upwards... no checking for statement expression support... yes checking for <sys/filio.h>... no checking for <sys/termios.h>... yes checking for <sys/unistd.h>... yes checking for __typeof__ support... yes checking for unaligned access to int... yes checking for utime() declaration... yes checking for __attribute__((warn_unused_result))... yes checking for #pragma omp and -fopenmp support... yes checking for <valgrind/memcheck.h>... no checking for working <ucontext.h... yes checking for passing pointers via makecontext()... yes checking for __builtin_cpu_supports()... yes checking for closefrom() offered by system... yes checking for F_CLOSEM defined for fctnl.... no checking for close_range syscall available as __NR_close_range.... yes checking for F_MAXFD defined for fcntl.... no checking for zlib support... yes checking for libsodium with IETF chacha20 variants... no checking for sqlite3... yes checking for postgres... yes checking for User Statically-Defined Tracing (USDT)... no checking for compiler is GCC... yes checking for GCC version is 7 or above... yes Writing variables to config.vars.2200... yes Writing header to ccan/config.h.2200... yes checking for python3-mako... not found checking for lowdown... found checking for sha256sum... found checking for jq... found Setting PREFIX... /usr/local Setting CC... cc Setting CONFIGURATOR_CC... cc Setting CWARNFLAGS... -Wall -Wundef -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wold-style-definition -Werror -Wno-maybe-uninitialized -Wshadow=local Setting CDEBUGFLAGS... -std=gnu11 -g -fstack-protector-strong Setting COPTFLAGS... -Og CSANFLAGS not found FUZZFLAGS not found FUZZER_LIB not found LLVM_LDFLAGS not found SQLITE3_CFLAGS not found Setting SQLITE3_LDLIBS... -lsqlite3 Setting POSTGRES_INCLUDE... -I/usr/include/postgresql Setting POSTGRES_LDLIBS... -L/usr/lib/x86_64-linux-gnu -lpq SODIUM_CFLAGS not found SODIUM_LDLIBS not found Setting VALGRIND... 0 Setting DEBUGBUILD... 0 Setting COMPAT... 1 Setting PYTEST... python3 -m pytest Setting STATIC... 0 Setting CLANG_COVERAGE... 0 Setting ASAN... 0 Setting UBSAN... 0 Setting TEST_NETWORK... regtest Setting HAVE_PYTHON3_MAKO... 0 Setting SHA256SUM... sha256sum Setting FUZZING... 0 Setting RUST... 1 Setting PYTHON... python3 Setting SED... sed *** We need a libsodium >= 1.0.4 (released 2015-06-11). Error: Process completed with exit code 1. ```
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
fuzzing or regression evidencedocumentation-only discountsecond-pass: broader security terminology
AI analysis · Informational 15/100
This is a routine fix to the project's automated release build script on GitHub. It removes an unnecessary step that installed a documentation tool and ran a configuration script on the build host. The change only affects how release binaries are produced internally and does not change any code that users run.
AI review queuedchange log for 25.12rc1by Madeline Paech · f16b198c · Nov 21, 2025 · 11 filesMessage 38 · OpaqueInformational 15Details
Commit message · Madeline Paech
change log for 25.12rc1
38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit is a routine release-candidate version bump and changelog update for Core Lightning v25.12rc1. It only changes version strings in packaging files and adds a changelog entry; it does not modify any executable code. The changelog itself lists many unrelated fixes and features from prior pull requests, but this commit is purely administrative release preparation.
AI review queuedlightningd: avoid race when runtime-added plugins register hooks.by Rusty Russell · a4f772ef · Nov 20, 2025 · 8 filesMessage 73 · AdequateModerate 61Details
Commit message · Rusty Russell
lightningd: avoid race when runtime-added plugins register hooks.
If we add a new hook, not at the end, while hooks are getting called, then iteration could be messed up (e.g. calling a plugin twice, or skipping one).
The simplest thing is to defer updates until nobody is calling the hook. In theory this could livelock, in practice it won't.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 61/100
This patch fixes a race condition in Core Lightning's plugin hook system. If a plugin was added or removed while a hook (like the one that decides whether to accept a payment) was actively being called, the internal list of plugins could be modified mid-iteration. That could cause a plugin to be called twice or skipped entirely, potentially leading to incorrect payment handling or other unexpected behavior. The fix defers updates to the hook list until all current callers are finished.
AI review queuedlightningd: support "filters" in plugins manifest to restrict when hooks are called.by Rusty Russell · d76a9050 · Nov 20, 2025 · 7 filesMessage 73 · AdequateLow 30Details
Commit message · Rusty Russell
lightningd: support "filters" in plugins manifest to restrict when hooks are called.
We're going to use this on the "rpc_command" hook, to allow xpay to specify that it only wants to be called on "pay" commands.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 30/100
This commit adds a new plugin feature called 'filters' that lets plugin authors tell Core Lightning to only call their plugin's hook under certain conditions. For example, a plugin can now say 'only call me for pay commands' on the rpc_command hook. The change is a feature addition, not a bug fix, and there is no direct evidence in the commit that it addresses a security vulnerability.
AI review queuedlightningd: re-xmit funding txs on startup.by Rusty Russell · d44fa2f3 · Nov 18, 2025 · 8 filesMessage 68 · AdequateLow 31Details
Commit message · Rusty Russell
lightningd: re-xmit funding txs on startup.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Fixed: Protocol: we now re-transmit unseen funding transactions on startup, for more robustness.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 31/100
This change makes Core Lightning re-broadcast funding transactions when the node restarts. Previously, only closing transactions were re-sent on startup. If a funding transaction was lost by the Bitcoin network (for example, due to a restart or mempool eviction), a new channel could be stuck waiting indefinitely. The fix improves reliability of opening channels, and the included test that was previously expected to fail now passes.
AI review queuedpytest: test case where we crash before bitcoind gets the opening tx.by Rusty Russell · 21d19546 · Nov 18, 2025 · 1 fileMessage 75 · AdequateInformational 11Details
Commit message · Rusty Russell
pytest: test case where we crash before bitcoind gets the opening tx.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 11/100
This commit only adds a new pytest test case. It does not change any production code. The test simulates a crash scenario during a Lightning channel opening to make sure the software handles it correctly in the future. It is marked as expected to fail (xfail), meaning it documents a known problem rather than fixing it.
AI review queuedlightningd: notify plugins when finalizing channelby Matt Whitlock · cbfe1a99 · Nov 18, 2025 · 8 filesMessage 65 · AdequateInformational 18Details
Commit message · Matt Whitlock
lightningd: notify plugins when finalizing channel
Changelog-Added: Plugins now receive `channel_state_changed` notification upon final change to `CLOSED` state.
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 adds a new plugin notification so that plugins are told when a Lightning channel finishes closing and reaches the CLOSED state. It also makes the optional human-readable 'message' field in that notification truly optional in the generated API bindings. This is a routine feature addition, not a security fix or vulnerability.
AI review queuedcommon: add amount_msat_deduct / amount_msat_deduct_sub.by Rusty Russell · 35f65c5d · Nov 17, 2025 · 21 filesMessage 63 · AdequateInformational 15Details
I added amount_msat_accumulate for the "a+=b" case, but I was struggling with a name for the subtractive equivalent. After some prompting, ChatGPT suggested deduct.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is a straightforward code cleanup: it introduces two new helper functions, amount_msat_deduct and amount_msat_deduct_sat, which are shorthand for 'subtract this amount from itself' (like a -= b). It then replaces many existing calls of the longer form amount_msat_sub(&x, x, y) with the shorter amount_msat_deduct(&x, y). There is no change in behavior, no bug fix, and no security relevance in the diff itself.
AI review queuedfuzz-tests: Add coverage increasing inputs to seed corporaby Chandra Pratap · 350090a8 · Nov 16, 2025 · 78 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-initial_channel` led to the discovery of test inputs that result in greater 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 runtime behavior. The added files are used only during automated fuzz testing to exercise more code paths. There is no direct security impact on users running Core Lightning.
AI review queuedfuzz-tests: Add a seed corpus for the new testby Chandra Pratap · 0cabd46c · Nov 14, 2025 · 188 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 called fuzz-wireaddr. It does not change any production code, so it cannot introduce a runtime security vulnerability on its own. The corpus contains many malformed and unusual network address strings used to exercise the parser during automated testing.
AI review queuedfuzz-tests: Add a seed corpus for the new testby Chandra Pratap · e95e5f97 · Nov 13, 2025 · 444 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 a set of test input files (a seed corpus) for a fuzz-testing harness named fuzz-init_received. Fuzz testing feeds random or semi-random data to a program to find crashes or bugs, but the commit itself does not change any production code, fix any vulnerability, or introduce any new functionality. It is purely a testing-data addition.
AI review queuedcrates: centralize version managementby daywalker90 · ff2b77a5 · Nov 13, 2025 · 7 filesMessage 35 · OpaqueInformational 15Details
Commit message · daywalker90
crates: centralize version management
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit is a routine housekeeping change for a Rust-based software project. It moves version numbers for internal components into one central configuration file (the workspace root) and updates each component to reference that shared definition. There is no change to program logic, no bug fix, and no security patch visible in the diff.
AI review queuedglobal: use clock_time in place of time_now().by Rusty Russell · 8b9020d7 · Nov 13, 2025 · 52 filesMessage 60 · AdequateLow 34Details
Commit message · Rusty Russell
global: use clock_time in place of time_now().
Except for tracing, that sticks with time_now().
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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Low 34/100
This commit swaps most uses of the real-time clock function `time_now()` for a new internal helper called `clock_time()`. The change is infrastructure, not a fix for a known attack. It makes the node’s view of time easier to override for testing and reproducibility, and it reduces the risk that a backward clock jump confuses timers, logs, or payment expiry checks. Tracing is deliberately left on real time. There is no direct security bug being patched here, but the change touches many time-sensitive parts of a payment system, so it has broad defensive value.
AI review queuedpseudorand: make the results in deterministic mode per-caller.by Rusty Russell · 0b2b92ff · Nov 13, 2025 · 7 filesMessage 65 · AdequateInformational 18Details
Commit message · Rusty Russell
pseudorand: make the results in deterministic mode per-caller.
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 changes how Core Lightning generates 'pseudo-random' numbers when running in deterministic mode (used mainly for reproducible testing). It gives each separate piece of code that asks for a random number its own private counter, so the order in which different callers happen to ask no longer changes the random values they receive. The change is aimed at making tests more stable and easier to reproduce, not at fixing a security vulnerability in live operation.
AI review queuedlightningd: db migration to clean up any pending payments where theres no htlc.by Rusty Russell · 7ff0239f · Nov 13, 2025 · 2 filesMessage 73 · AdequateLow 30Details
Commit message · Rusty Russell
lightningd: db migration to clean up any pending payments where theres no htlc.
Changelog-Fixed: JSON-RPC: `listpays`/`listsendpays` erroneously left `pending` in xpay are cleaned up. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 30/100
This commit adds a database cleanup routine that marks old pending payments as failed if no corresponding payment route (HTLC) actually exists. Previously, payments could be stuck showing as 'pending' forever in commands like listpays/listsendpays, even though nothing was really happening. The fix only corrects stale bookkeeping state; it does not create a way for an attacker to steal funds or force payments to fail.
AI review queuedpytest: add test that we fixup "pending" payments which don't actually have HTLCs.by Rusty Russell · e68e9bd2 · Nov 13, 2025 · 2 filesMessage 75 · AdequateInformational 11Details
Commit message · Rusty Russell
pytest: add test that we fixup "pending" payments which don't actually have HTLCs.
And don't fix up a genuine pending one!
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 11/100
This commit only adds a new test case (and a small SQLite database snapshot used by the test). It does not change any production code. The test is currently marked as expected to fail (xfail), meaning it documents a known bug where Core Lightning may incorrectly report some payments as 'pending' when they actually have no active HTLCs. Because no fix is included, this commit by itself does not improve or worsen security.
AI review queuedchore: nix flake update Switched to nixpkgs-unstable Replaced postgresql dependency with much smaller libpq. Utilise new inputs.self.submodules feature to simplify flake use Moved apps to a separate file Changelog-Noneby Joseph Goulden · 1ead6791 · Nov 13, 2025 · 6 filesMessage 85 · StrongInformational 15Details
Commit message · Joseph Goulden
chore: nix flake update Switched to nixpkgs-unstable Replaced postgresql dependency with much smaller libpq. Utilise new inputs.self.submodules feature to simplify flake use Moved apps to a separate file Changelog-None
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100
This is a routine maintenance update to the project's Nix build configuration. It switches to a newer rolling-release package source, swaps a heavy PostgreSQL dependency for a smaller one, and adds a CI check to validate the Nix flake. There is no indication this fixes or introduces a security vulnerability in the Core Lightning software itself.
AI review queueddocs: Updated `developers-guide` docs for v10by ShahanaFarooqui · 367efcf6 · Nov 13, 2025 · 20 filesMessage 57 · ThinInformational 15Details
Commit message · ShahanaFarooqui
docs: Updated `developers-guide` docs for v10
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
This commit only updates documentation metadata in the Core Lightning developers guide. It changes front-matter formatting (title, slug, excerpt, privacy settings) across 20 markdown files but does not modify any code, configuration, or security-relevant behavior. There is no security issue here.
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 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.
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>
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.