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.
Lower-prioritybookkeeper: keep up with new entries if we're doing currency conversion.by Rusty Russell · df02b246 · Mar 23, 2026 · 2 filesMessage 73 · AdequateInformational 16Details
Commit message · Rusty Russell
bookkeeper: keep up with new entries if we're doing currency conversion.
If we're doing currency conversion, we can't refresh lazily on each command: we need to watch for new events and refresh then. This is fairly easy to do, however.
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 16/100
This commit fixes a bookkeeping timing issue in Core Lightning. When the bookkeeper plugin is configured to show amounts in a fiat currency, it previously only refreshed currency conversion rates when a user ran a command. Now it actively listens for new on-chain and channel events and refreshes rates immediately, so reports stay up to date without waiting for a manual command. The change is a correctness/quality improvement, not a security vulnerability fix.
Lower-prioritybookkeeper: avoid wasteful refresh races.by Rusty Russell · feed7b77 · Mar 23, 2026 · 2 filesMessage 68 · AdequateInformational 21Details
Commit message · Rusty Russell
bookkeeper: avoid wasteful refresh races.
Now we're refreshing more regularly, so it's worth avoiding races rather than simply letting them happen and ignoring the results.
Keep a pointer in bkpr and piggy back on that one if it's there.
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 21/100
This change is a hardening fix in Core Lightning's bookkeeping plugin. It prevents multiple simultaneous 'refresh' operations from racing each other and silently dropping duplicate results. Instead of ignoring cases where data arrives out of order, the code now asserts the expected order and queues follow-up refresh requests onto one shared in-flight operation. The visible risk is reduced reliability/correctness of accounting records rather than direct theft of funds.
Lower-prioritybookkeeper: make bookkeeper-currency dynamic.by Rusty Russell · 8025ed68 · Mar 23, 2026 · 4 filesMessage 68 · AdequateInformational 17Details
Commit message · Rusty Russell
bookkeeper: make bookkeeper-currency dynamic.
This means doing more work if we set it; in particular, we need to clean up any old values. We define the empty string as "unset", since setconfig has no other way to "unset" variables.
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 17/100
This change lets users turn the bookkeeper's currency conversion feature on or off while the program is running, instead of only at startup. It also cleans up old exchange-rate data when the currency setting changes, and adds a safety check so a late answer from a previous currency request doesn't get stored. There is no obvious security bug here; it is a normal feature improvement.
AI review queuedcommon: add mkdatastorekey helper to make string arrays.by Rusty Russell · 852e54e1 · Mar 23, 2026 · 4 filesMessage 65 · AdequateInformational 15Details
Commit message · Rusty Russell
common: add mkdatastorekey helper to make string arrays.
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 15/100
This commit is a routine code cleanup: it introduces a small helper function that builds lists of text strings more conveniently, and updates three existing functions to use it. There is no security-relevant change visible in the diff.
Lower-prioritycommon: add simple unit test for mkdatastorekey.by Rusty Russell · 4d14529c · Mar 23, 2026 · 2 filesMessage 70 · AdequateInformational 15Details
Commit message · Rusty Russell
common: add simple unit test for mkdatastorekey.
Thanks ChatGPT!
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit only adds a new unit test for an existing helper function called mkdatastorekey, which builds key arrays for the datastore. It also adds a small generated placeholder stub in another test file so that test continues to compile. There is no change to production code, no bug fix, and no security-related behavior.
Lower-prioritybkpr: warn if currency rate request is for old event.by Rusty Russell · ec1e4f52 · Mar 23, 2026 · 2 filesMessage 65 · AdequateInformational 24Details
Commit message · Rusty Russell
bkpr: warn if currency rate request is for old event.
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 24/100
This change adds a warning in the bookkeeper plugin when it tries to fetch a currency exchange rate for a payment event that happened more than 60 seconds ago. It is a defensive logging fix to avoid applying a current exchange rate to stale historical events. There is no vulnerability being exploited; it is a correctness and audit-quality improvement.
Lower-prioritybookkeeper: save currencyrate ranges, not individual values.by Rusty Russell · dbe921c3 · Mar 23, 2026 · 3 filesMessage 73 · AdequateInformational 16Details
Commit message · Rusty Russell
bookkeeper: save currencyrate ranges, not individual values.
The currencyrate plugin aims for 10 minute polls, so it just doesn't move that fast. If we're busy, recording the rate every second is overkill.
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 16/100
This change is a performance and storage optimization for Core Lightning's bookkeeping plugin. Instead of saving every single currency exchange rate sample to the datastore, it now saves ranges of time where the rate stayed the same. This reduces disk writes and storage size but does not fix a security vulnerability. There is a small risk that the new lookup logic could return a slightly stale rate if a stored range is extended too far, but the code includes a 60-second tolerance and explicit checks to prevent hiding failed updates.
Lower-prioritybookkeeper: use iso4217 check, scale and print correct minor units.by Rusty Russell · 5fde3493 · Mar 23, 2026 · 3 filesMessage 65 · AdequateInformational 18Details
Commit message · Rusty Russell
bookkeeper: use iso4217 check, scale and print correct minor units.
e.g. USD = 2, CLF = 4, XAU = 0.
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 18/100
This commit fixes how the Core Lightning bookkeeper plugin handles fiat currency codes and their decimal places. Previously it assumed every currency used 4 decimal places when storing and displaying exchange rates. Now it uses a proper ISO 4217 table so currencies like USD use 2 decimals, Chilean Unidad de Fomento (CLF) uses 4, and gold (XAU) uses 0. It also validates that the configured currency is a known ISO 4217 code. The main risk is that old stored rates could be misinterpreted after the change, and users might see wrong converted values if they relied on the previous fixed scaling.
Lower-prioritymsggen: add currencyconvert, currencyrate and listcurrencyrates.by Rusty Russell · 9824cb6e · Mar 23, 2026 · 9 filesMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
msggen: add currencyconvert, currencyrate and listcurrencyrates.
I used daywalker's hack to patch.py to make this work:
``` if f.added is None and 'added' not in m: m['added'] = 'v26.04' ```
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 code-generation update that exposes three new currency-conversion RPCs (listcurrencyrates, currencyconvert, currencyrate) through the gRPC and Python/JSON-RPC bindings. It only adds generated request/response types, proto definitions, and server stubs. There is no change to core logic, authentication, authorization, cryptography, or network handling.
AI review queuedpatch fix.patchby Rusty Russell · c564cfa7 · Mar 23, 2026 · 1 fileMessage 28 · OpaqueLow 26Details
Commit message · Rusty Russell
patch fix.patch
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 26/100
This patch fixes a timing bug in the bookkeeper plugin of Core Lightning. Previously, setting a currency option before the plugin was fully initialized could start background refresh tasks too early, potentially using uninitialized data. The fix delays starting those refresh tasks until after initialization is complete. It is a correctness fix rather than an obvious security vulnerability, but premature initialization can sometimes lead to crashes or unstable behavior.
Lower-prioritybookeeper: add currencyrate to bkpr-listaccounts if we recorded it.by Rusty Russell · 0ced9a89 · Mar 23, 2026 · 16 filesMessage 65 · AdequateInformational 18Details
Commit message · Rusty Russell
bookeeper: add currencyrate to bkpr-listaccounts if we recorded it.
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 18/100
This commit is a routine feature addition to Core Lightning's bookkeeping plugin. It exposes an already-recorded currency conversion rate (currencyrate) in the bkpr-listaccountevents RPC output when a currency setting is configured. There is no indication of a security bug, vulnerability, or fix.
Lower-prioritybkpr: add `bkpr-currency` option to record currency rates on each event.by Rusty Russell · d67888a4 · Mar 23, 2026 · 3 filesMessage 73 · AdequateInformational 18Details
Commit message · Rusty Russell
bkpr: add `bkpr-currency` option to record currency rates on each event.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: Config: `bkpr-currency` option to record conversion rate at each event.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 18/100
This commit adds an optional bookkeeping feature to Core Lightning that lets users specify a currency (like USD). The bookkeeper plugin then asks another plugin for the exchange rate at the time of each financial event and records it. It is a feature addition, not a fix for a known security bug. The main security-relevant observation is that the new code makes JSON-RPC calls to a 'currencyrate' plugin and stores the returned rate, but it does not validate the currency name or the returned rate beyond checking that the rate is a valid JSON double. A malicious or compromised 'currencyrate' plugin could return extreme or malformed values, but this only affects optional accounting records, not funds or consensus.
Lower-prioritypytest: test for currencyrate median code when values are cached.by Rusty Russell · 17824fab · Mar 23, 2026 · 1 fileMessage 75 · AdequateInformational 12Details
Commit message · Rusty Russell
pytest: test for currencyrate median code when values are cached.
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
AI analysis · Informational 12/100
This commit only adds a new automated test file for the currency rate feature. It does not change any production code, so it cannot introduce a security vulnerability by itself. The test is currently marked as expected to fail (xfail), meaning it documents a known behavior or bug in the median calculation when currency rates are cached.
Lower-prioritypytest: clean up test_currencyrate.py using wait_for_logs()by Rusty Russell · 6bfb19d4 · Mar 23, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
pytest: clean up test_currencyrate.py using wait_for_logs()
It's explicitly designed for "these will occur, don't know what order".
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 minor cleanup of a single test file. It replaces a manual sequence of log-search calls with a single helper that waits for multiple expected log messages regardless of order. There is no change to production code, no user-facing behavior change, and no security relevance.
Lower-prioritybookkeeper: expose currencyrate_str and bkpr_of so report.c can access them.by Rusty Russell · c300e0ab · Mar 23, 2026 · 2 filesMessage 65 · AdequateInformational 15Details
Commit message · Rusty Russell
bookkeeper: expose currencyrate_str and bkpr_of so report.c can access them.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This is a routine code cleanup in the bookkeeper plugin. Two internal helper functions are made visible to other source files so they can be reused in an upcoming report feature. There is no security-relevant change.
tests: avoid flaky test_bkpr_currency_dynamic on same-second channel_mvt
Bookkeeper FX coverage uses Unix-second intervals; when inv1 and inv2 land in the same second, listing can attach currencyrate to pre-setconfig events.
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This is a test-only change that adds a one-second delay in an automated test to prevent flaky results. It does not change any production code, network behavior, or security logic.
Lower-prioritycommon: fix run-mkdatastorekey link on arm64by Sangbida Chaudhuri · 43c233ee · Mar 23, 2026 · 1 fileMessage 78 · AdequateInformational 15Details
Commit message · Sangbida Chaudhuri
common: fix run-mkdatastorekey link on arm64
Add common/pseudorand.o to its link line to fix below error seen on CI:
Undefined symbols for architecture arm64: "_siphash_seed", referenced from: _script_with_len_hash in script.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [common/test/run-mkdatastorekey] Error 1
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This is a routine build fix for a test program on ARM64 computers. A missing piece (a file called pseudorand.o) was added to the linker command so the test binary compiles successfully. It does not change how the software behaves or fix any security flaw.
Lower-priorityCCAN: import version with htable_lock.by Rusty Russell · 658eb771 · Mar 22, 2026 · 4 filesMessage 60 · AdequateInformational 20Details
Commit message · Rusty Russell
CCAN: import version with htable_lock.
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
AI analysis · Informational 20/100
This commit imports a newer version of a low-level utility library (CCAN) used by Core Lightning. The main change adds a 'lock' feature to hash tables that lets developers mark a hash table as read-only during iteration. If code tries to add an entry to a locked table, the program will deliberately crash with an assertion failure rather than silently corrupting iteration. It is a defensive programming improvement, not a fix for a known exploitable bug in this commit itself.
AI review queuedlightningd: make wallet_extract_owned_outputs return bool, optionally output numbers.by Rusty Russell · 60eef930 · Mar 22, 2026 · 8 filesMessage 65 · AdequateInformational 12Details
Commit message · Rusty Russell
lightningd: make wallet_extract_owned_outputs return bool, optionally output numbers.
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 12/100
This is a small internal code cleanup in Core Lightning. A wallet helper function that scans transactions for outputs belonging to the node is changed from returning a count of found outputs to returning a simple yes/no answer, with an optional list of output numbers. Callers are updated to use the new yes/no style. Nothing in the commit message or diff suggests a security bug is being fixed.
AI review queuedwallet: remove txfilter.by Rusty Russell · fa35af24 · Mar 22, 2026 · 13 filesMessage 51 · ThinInformational 12Details
Commit message · Rusty Russell
wallet: remove txfilter.
chaintopology was the only user, so we don't need the txfilter at all. Remove it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
51/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100
This commit removes an unused internal transaction filter called txfilter. The code that added wallet addresses and public keys to this filter is deleted because nothing was actually using the filter anymore. There is no indication in the commit that this fixes a security bug; it appears to be ordinary code cleanup.
Lower-prioritylightningd: split out separate function for "depth == 0".by Rusty Russell · f39a4564 · Mar 22, 2026 · 1 fileMessage 73 · AdequateInformational 12Details
Commit message · Rusty Russell
lightningd: split out separate function for "depth == 0".
This handles the reorg case, ready to use a blockdepth callback next.
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 12/100
This commit is a straightforward code cleanup: it takes the existing logic that handles the special case where a funding transaction's confirmation depth drops to zero (a blockchain reorganization) and moves it into its own named function. No behavior changes are visible in the diff. The commit message frames this as preparation for future work, not as a security fix.
AI review queuedlightningd: make caller to deptch_update_scid fetch the location in the blockby Rusty Russell · 88b394d2 · Mar 22, 2026 · 5 filesMessage 85 · StrongInformational 12Details
Commit message · Rusty Russell
lightningd: make caller to deptch_update_scid fetch the location in the block
We'll actually have it directly when we use outpoint watches from chaintopology, so we will be able to avoid the lookup.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100
This is a small internal code cleanup in Core Lightning. A function that builds a channel identifier (short_channel_id) used to look up a transaction's block position itself; now its callers look up that position and pass it in. The commit message frames this as preparation for a future change, not as a security fix. There is no indication of a vulnerability being patched.
Security candidatebitcoin: hoist script_with_len out of wallet/ into here.by Rusty Russell · 8f8cab0e · Mar 22, 2026 · 56 filesMessage 95 · StrongInformational 15Details
Commit message · Rusty Russell
bitcoin: hoist script_with_len out of wallet/ into here.
Vital for hashing. But adding script_with_len_hash here breaks fuzzing build, so that requires a little modification.
I also noticed that `#include <common/randbytes.h>` is redundant in all the common/ unit tests, so removed it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
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
Why it was queued
fuzzing or regression evidencecryptography-sensitive pathsigning or wallet pathparser or protocol path
AI analysis · Informational 15/100
This commit is a routine code cleanup: it moves a small helper structure and its hash/equality functions from the wallet module to the more general Bitcoin module so other code can reuse them. It also updates many test files to provide a stub for a hash-seed function and removes an unused header include. There is no security fix or vulnerability here.
AI review queuedcommon: make encode_scriptpubkey_to_addr take explicit len.by Rusty Russell · 3b0def41 · Mar 22, 2026 · 8 filesMessage 73 · AdequateInformational 18Details
Commit message · Rusty Russell
common: make encode_scriptpubkey_to_addr take explicit len.
Don't assume it's a tal array: this is useful for dealing with wally_tx internals.
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 · Informational 18/100
This change refactors a helper function that turns Bitcoin scriptPubKeys into human-readable addresses. Previously the function measured the length itself using a memory-tracking helper (tal_bytelen). Now callers pass the length explicitly. This is mostly a code-cleanup to support data that isn't tracked by that helper, such as internal libwally transaction buffers. There is no direct security bug being fixed, but the old pattern could theoretically lead to incorrect length handling if a non-tal buffer were passed in future code.
AI review queuedlightningd: use a blockdepth callback instead of a watch_txid.by Rusty Russell · d63b1e3b · Mar 22, 2026 · 7 filesMessage 73 · AdequateInformational 23Details
Commit message · Rusty Russell
lightningd: use a blockdepth callback instead of a watch_txid.
This is more explicit, and will work far better with an external watcher.
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 · Informational 23/100
This commit refactors how Core Lightning tracks the confirmation depth of a channel's funding transaction. Instead of watching a specific transaction ID, it now watches the block height at which the funding transaction was found. The change is described by the author as making the code more explicit and better suited to external blockchain watchers. There is no direct evidence in the commit that this fixes a security vulnerability, but it does touch reorganization handling and could affect how the node reacts when a funding transaction is removed from the blockchain.