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 56 minutes ago

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

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

This commit is a simple documentation revert. It undoes a previous change that told macOS users to install GNU make and GNU patch from Homebrew and to put those tools first in their command path. The reverted instructions now omit gpatch a…

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

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

This commit re-adds an old-style 'x' prefix to a string comparison in a test helper script. It is a test-only change with no effect on the actual Core Lightning node software, user funds, network behavior, or security. The change simply re…

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

doc: require Homebrew GNU make and gpatch on macOS

This commit only updates macOS installation instructions in the documentation. It tells macOS users to install newer GNU versions of 'make' and 'patch' from Homebrew because Apple's built-in tools are too old for building and running sourc…

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

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

This commit is a trivial shell script cleanup. It removes an old-fashioned 'x' prefix from a string comparison in a test helper script so that a newer version of the Shellcheck linter stops warning about it. The change does not alter progr…

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

common: hoist amount+currency parsing into common code.

This commit moves existing code that parses payment amounts (Bitcoin millisatoshis, 'any' amount, or fiat currency amounts) from one plugin file into a shared library so it can be reused by a future feature. It is a code refactoring with n…

Refactoring of amount-parsing code into a shared helperAddition of explicit u64 overflow guards (mul_overflows_u64, add_overflows_u64) in the new common codeNo change to wire protocol or RPC interface semantics
e0f86c17by Rusty Russell+112−723 files
No security note in commit
Informational 17 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

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

This is a routine internal cleanup commit in Core Lightning. It removes an unused helper function and simplifies how JSON-RPC request IDs are stored and formatted, since the project now always uses string IDs for non-command JSON traffic. …

No security-relevant keywords in commit title or messageNo CVE, advisory, or bug reference presentChanges are refactor/cleanup in nature
a70ae963by Rusty Russell+25−378 files
No security note in commit
Informational 15 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

common: hoist hash_str helper into its own header.

This commit is a routine code cleanup: it moves a small string-hashing helper function into a shared header file so it can be reused without being copied and pasted. There is no change to behavior, no bug fix, and no security relevance.

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

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

This is a database downgrade helper fix, not a live network vulnerability. Core Lightning's downgrade tool previously failed to strip out new 'channel impression' records when rolling a database back to version v26.06. The patch teaches th…

Database downgrade path could leave incompatible records in older schemaOffline tool only; no remote or on-chain triggerFix prevents potential node startup failure after version rollback
4d926285by Rusty Russell+43−111 file
No security note in commit
Low 31 AI analysisMessage 68 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

downgrade tool: fix invalid memory bug

This commit fixes a typo in a database downgrade helper tool. The bug caused the tool to pass a negative number (turned into a huge positive size) when copying data, which led to an out-of-memory (OOM) error. The fix swaps two variable nam…

Integer underflow / negative-to-size_t wrap leading to excessive allocationOut-of-memory crash in maintenance toolMemory corruption potential if allocation somehow succeeded
42995326by Lagrang3+8−81 file
No security note in commit
Informational 24 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

xpay: actually tell askrene when a payment succeeded.

This commit fixes a bookkeeping bug in Core Lightning's xpay plugin. Previously, when a payment succeeded, xpay did not tell the askrene routing-helper that the route worked. As a result, askrene kept stale or overly pessimistic ideas abou…

Missing success feedback to routing layer can degrade payment reliabilityStale negative impressions may bias future path selection toward worse or failing routesNo direct funds-loss primitive is introduced or fixed
a66fabd4by Rusty Russell+40−02 files
No security note in commit
Low 49 AI analysisMessage 58 · Thin
EP Elements ProjectCore Lightning BitcoinLightning Network

askrene: correctly order constraints.

This commit fixes a bug in Core Lightning's routing helper (askrene) where two kinds of channel information—hard limits called 'constraints' and usage estimates called 'impressions'—were being applied in the wrong order. Because impression…

Routing decision bug caused by incorrect ordering of time-relative channel statePotential payment failure or acceptance of an over-capacity routeRegression test added demonstrating incorrect route acceptance before fix
4b6fe4a1by Rusty Russell+211−1182 files
No security note in commit
Low 35 AI analysisMessage 68 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

askrene: don't leak channel intel entries

This commit fixes a memory leak in the askrene plugin of Core Lightning. When individual channel intelligence entries were deleted, the code removed the entry from its array but forgot to free two internal pointers (impression and constrai…

Memory leak in plugin data structure cleanupMissing deallocation of nested pointers before array removalFix located in routing/intelligence plugin (askrene)
8891f414by Lagrang3+5−01 file
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

xpay: tests should expect the new error messages

This commit only updates test files so that automated checks expect slightly different error wording from the xpay payment command. It does not change any production code, so it cannot introduce a security vulnerability or fix one on its o…

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

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

This change tightens the lifetime of recurring invoices priced in foreign currencies (like USD) to 10 minutes by default, and refreshes them with current exchange rates when they expire. Previously, such invoices could remain valid for the…

Fixes stale exchange-rate exposure for currency-denominated recurring invoicesAdds configurable expiry cap for recurring currency invoicesDistinguishes user-cancellation (0s expiry) from natural expiry to avoid misleading errors
446312cfby Rusty Russell+134−148 files
No security note in commit
Low 45 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

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

This commit tightens the expiration time on invoices created from BOLT12 offers. Previously, all such invoices defaulted to a 2-hour payment window. Now, if the offer has an absolute expiry, the invoice expires when the offer expires; and …

BOLT12 invoice expiry now bounded by offer absolute expiryCurrency-converted invoices use short expiry to limit exchange-rate exposureNew regression test added for expiry behavior
a6cf4915by Rusty Russell+55−22 files
No security note in commit
Low 29 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

fetchinvoice: don't bother with checking recurrence timing.

This commit removes local timing checks in Core Lightning's fetchinvoice plugin for recurring payments. Instead of the plugin refusing too-early or too-late invoice requests, it now lets the remote node decide and report back. The change i…

Removal of local input-validation checks for recurring invoice requestsReliance on remote-party enforcement for recurrence period limits and pay windowsTest expectations changed from local rejection to remote failure messages
3e49d908by Rusty Russell+2−682 files
No security note in commit
Low 32 AI analysisMessage 73 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

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

This commit removes a local sanity check in Core Lightning's experimental 'createinvoicerequest' command. Previously, when creating a recurring invoice request, the code looked up past payments by label to verify the previous recurrence wa…

Removal of local payment-state validation for recurring invoice requestsParameter rename from recurrence_label to label in internal RPC callsTest expectations changed from local 'previous invoice has not been paid' errors to remote failure messages
4348d8acby Rusty Russell+5−1224 files
No security note in commit
Low 35 AI analysisMessage 65 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

fetchinvoice: handle weird labels in recurrence_label parameter.

This commit fixes how the fetchinvoice plugin handles user-supplied labels that contain special characters such as backslashes, quotes, tabs, and newlines. Previously these labels were passed as raw strings, which could cause JSON encoding…

JSON injection / improper escaping of user-controlled input passed between RPC componentsPotential mismatch between label parsing and label serialization leading to functional failures or unexpected behaviorFix is narrowly scoped to a single plugin and parameter
d7f87f2dby Rusty Russell+37−102 files
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

Add unit tests for str_to_u64

This commit only adds a new automated test file that checks how a helper function (str_to_u64) converts text strings to unsigned 64-bit integers. It does not change any production code, so it cannot by itself introduce a security vulnerabi…

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

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

This commit only adds a new pytest test file. It does not change any production code. The test describes desired future behavior for the askrene routing module's error messages when a payment source or destination lacks enough channel capa…

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

Explore captured commits

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

Lower-prioritybkpr: don't leak event in fillin_apy_acct_details.by Rusty Russell · 3e4c9221 · Aug 28, 2025 · 1 fileMessage 73 · AdequateInformational 24Details
Commit message · Rusty Russell

bkpr: don't leak event in fillin_apy_acct_details.

Now accounts are not transient, we can't use them as temporary parents:

```
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: MEMLEAK: 0x5e3bf926ce28
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: label=plugins/bkpr/sql.c:109:struct chain_event
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: alloc:
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: ccan/ccan/tal/tal.c:488 (tal_alloc_)
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: plugins/bkpr/sql.c:109 (chain_events)
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: plugins/bkpr/sql.c:197 (chain_events_from_sql)
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: plugins/bkpr/recorder.c:352 (find_chain_event_by_id)
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: plugins/bkpr/channelsapy.c:120 (fillin_apy_acct_details)
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: plugins/bkpr/channelsapy.c:172 (compute_channel_apys)
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: plugins/bkpr/bookkeeper.c:220 (getblockheight_done)
lightningd-2 2025-08-28T02:36:35.629Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:1134 (handle_rpc_reply)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:1438 (rpc_read_response_one)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:1462 (rpc_conn_read_response)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/io.c:60 (next_plan)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/io.c:422 (do_plan)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/io.c:439 (io_ready)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/poll.c:455 (io_loop)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:2564 (plugin_main)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/bookkeeper.c:1547 (main)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ../sysdeps/nptl/libc_start_call_main.h:58 (__libc_start_call_main)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ../csu/libc-start.c:360 (__libc_start_main_impl)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: steal:
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/tal/tal.c:559 (tal_steal_)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/recorder.c:361 (find_chain_event_by_id)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/channelsapy.c:120 (fillin_apy_acct_details)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/channelsapy.c:172 (compute_channel_apys)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/bookkeeper.c:220 (getblockheight_done)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:1134 (handle_rpc_reply)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:1438 (rpc_read_response_one)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:1462 (rpc_conn_read_response)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/io.c:60 (next_plan)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/io.c:422 (do_plan)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/io.c:439 (io_ready)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ccan/ccan/io/poll.c:455 (io_loop)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/libplugin.c:2564 (plugin_main)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/bookkeeper.c:1547 (main)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ../sysdeps/nptl/libc_start_call_main.h:58 (__libc_start_call_main)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: ../csu/libc-start.c:360 (__libc_start_main_impl)
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: parents:
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/account.c:51:struct account
lightningd-2 2025-08-28T02:36:35.630Z **BROKEN** plugin-bookkeeper: plugins/bkpr/bookkeeper.c:1546:struct bkpr
```

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

This is a one-line bug fix in Core Lightning's bookkeeper plugin. The developer changed a memory 'parent' pointer from a long-lived account object to a short-lived temporary context. Previously, a chain event object was being attached to an account that never gets freed, so the event leaked memory every time the code ran. The fix makes the event a temporary object that is cleaned up automatically. There is no attacker-controlled path; it is a routine memory leak in an internal accounting calculation.

Lower-prioritycommon: reintroduce "ignored" primary tag.by Rusty Russell · 22a5e9e7 · Aug 28, 2025 · 6 filesMessage 88 · StrongLow 25Details
Commit message · Rusty Russell

common: reintroduce "ignored" primary tag.

Prior to 23.05, we used this tag to mark onchain to-self inputs we didn't
wait for (because they were too small). This fixes migration if that happened
(and we are debating whether we should re-introduce this!).

```
lightningd: FATAL SIGNAL 6 (version v25.09rc2)
0x100c8683 send_backtrace
common/daemon.c:33
0x100c876f crashdump
common/daemon.c:78
0x7fffb2080493 ???
???:0
0x7fffb1ab0cac ???
__pthread_kill_implementation+0x1bc:0
0x7fffb1a48a5b ???
__GI_raise+0x2b:0
0x7fffb1a2a3db ???
__GI_abort+0x153:0
0x100935b7 migrate_from_account_db
wallet/account_migration.c:424
0x10093ff7 db_migrate
wallet/db.c:1139
0x10096763 db_setup
wallet/db.c:1185
0x100a1bcb wallet_new
wallet/wallet.c:223
0x1004485f main
lightningd/lightningd.c:1311
0x7fffb1a2aba3 ???
__libc_start_call_main+0x93:0
0x7fffb1a2adeb ???
__libc_start_main_alias_1+0x1ab:0
0xffffffffffffffff ???
???:0
lightningd: Died with signal 6
```

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Fixes: https://github.com/ElementsProject/lightning/issues/8484

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

This commit fixes a crash that could occur when upgrading an older Core Lightning node. If the node had previously marked certain tiny on-chain payments as 'ignored' (a label used before version 23.05), the newer software's database migration code did not recognize that label and would abort startup with a fatal error. The patch re-adds the 'ignored' tag so the migration can complete normally. It is a bug fix for a denial-of-service-on-startup condition, not an exploitable vulnerability that a remote attacker could trigger.

AI review queuedwallet: handle null currency fields, skip & warn on mismatch.by Rusty Russell · 293a65b4 · Aug 28, 2025 · 1 fileMessage 73 · AdequateInformational 22Details
Commit message · Rusty Russell

wallet: handle null currency fields, skip & warn on mismatch.

If they ran off master, currency can be null:

```
2025-08-21T10:03:04.566Z **BROKEN** lightningd: bookkeper migration: Accessing a null column e.currency/7 in query SELECT e.id, e.account_id, a.name, e.tag, e.credit, e.debit, e.fees, e.currency, e.payment_id, e.part_id, e.timestamp, e.ev_desc, e.rebalance_id FROM channel_events e LEFT OUTER JOIN accounts a ON a.id = e.account_id ORDER BY e.timestamp, e.id;
```

So allow this, but *also* check if it's a different currency and skip. This won't happen: you had to manually inject events in a different currency.

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

This commit fixes a database migration crash in Core Lightning. When upgrading, the migration code could hit a NULL currency field and abort with a 'BROKEN' error. The patch lets the migration tolerate NULL currencies and also skips any records that use an unexpected foreign currency, logging a warning instead of crashing. It is a robustness fix for an unusual upgrade path, not a typical remote attack vector.

AI review queuedwallet: don't warn if ignored is unset in accounts.db.by Rusty Russell · 6ef668e7 · Aug 28, 2025 · 1 fileMessage 73 · AdequateLow 25Details
Commit message · Rusty Russell

wallet: don't warn if ignored is unset in accounts.db.

Note that this can only happen if you ran a master commit before rc1:

```
2025-08-21T10:03:03.255Z **BROKEN** lightningd: bookkeper migration: Accessing a null column e.ignored/15 in query SELECT e.id, e.account_id, a.name, e.origin, e.tag, e.credit, e.debit, e.output_value, e.currency, e.timestamp, e.blockheight, e.utxo_txid, e.outnum, e.spending_txid, e.payment_id, e.ignored, e.stealable, e.ev_desc, e.spliced, a.closed_count, a.peer_id, a.we_opened FROM chain_events e LEFT OUTER JOIN accounts a ON e.account_id = a.id ORDER BY e.timestamp, e.id;
```

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

This commit fixes a database migration bug where Core Lightning could crash with a 'BROKEN' error when reading old bookkeeping records that had a missing 'ignored' value. The fix treats a missing value as 'false' instead of causing a fatal null-column access. It is a stability fix for an internal migration path, not an externally exploitable security vulnerability.

AI review queuedwallet: print error, don't just abort, on unknown tags.by Rusty Russell · c8de5fe0 · Aug 28, 2025 · 1 fileMessage 73 · AdequateInformational 23Details
Commit message · Rusty Russell

wallet: print error, don't just abort, on unknown tags.

Lisa *told* me about this on review, and I ignored it. Fool: took an extra day to get the account.db which was triggering this so I could see the problem.

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 fixes a crash during database migration. Previously, if the migration code encountered an unknown 'tag' value in the old account database, it would call abort() and terminate the program abruptly with no explanation. Now it calls db_fatal(), which prints a clear error message about the unknown tag before stopping. This is a robustness improvement that helps diagnose migration failures but does not by itself prevent them or create a security vulnerability.

Lower-priorityCHANGELOG.md: note that we broke custom rust notifications.by Rusty Russell · 0493b478 · Aug 28, 2025 · 1 fileMessage 73 · AdequateInformational 20Details
Commit message · Rusty Russell

CHANGELOG.md: note that we broke custom rust notifications.

Sorry :(

We chose to update our own few custom plugin notifications by manually creating the deprecated
fields and adding the new ones, rather than having lightningd fix them up. But this didn't apply
to other plugins which might issue their own notifications: in particular, this hit @daywalker90.

Simply documenting this is lazy, but we're close to release and I don't expect anyone else to
be affected.

Reported-by: @daywalker90
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 20/100

This is a documentation-only commit adding a note to the changelog. It records that a recent code change altered the JSON format for custom notifications sent by Rust plugins in Core Lightning. The change broke compatibility for third-party Rust plugins that issue their own notifications, because fields are no longer wrapped in a 'payload' object and 'origin' moved outside the 'params' object. There is no security vulnerability here—only an API compatibility issue that may cause plugins to break or behave unexpectedly until updated.

Lower-priorityuv.lock: update for rc3.by Rusty Russell · c768c725 · Aug 28, 2025 · 1 fileMessage 53 · ThinInformational 15Details
Commit message · Rusty Russell

uv.lock: update for rc3.

This wasn't committed, so CI is failing.

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

53/100 · ThinMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit is a routine build-file update. It changes three version strings in a Python package lock file from '25.9rc2' to '25.9rc3' so that continuous integration (CI) tests pass. There is no code change and no security relevance.

Lower-prioritysmall changes of any reference to rc2 to rc3by madelinevibes · c25f0faf · Aug 27, 2025 · 8 filesMessage 45 · ThinInformational 15Details
Commit message · madelinevibes

small changes of any reference to rc2 to rc3

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

This commit is a routine version bump from '25.09rc2' to '25.09rc3' across eight files. It only changes version strings in metadata files, Python package declarations, and a tooling script. There are no code logic changes and no security relevance.

Lower-priority2nd attempt rc3 change logby madelinevibes · f30400a2 · Aug 27, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · madelinevibes

2nd attempt rc3 change log

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 adds two missing link references to the project's CHANGELOG.md file. It does not change any program code, configuration, or documentation content beyond adding URL footnotes for pull requests #8495 and #8500. There is no security relevance.

AI review queuedrc3 change log updatesby madelinevibes · 36803db0 · Aug 27, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · madelinevibes

rc3 change log updates

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only updates the project's CHANGELOG.md file to rename the release candidate version from 25.09rc2 to 25.09rc3 and add two new changelog entries describing other changes. The commit itself does not modify any source code, cryptographic logic, network protocol handling, or configuration defaults. There is no direct security-relevant change in this diff.

Lower-prioritypytest: test for crashing with HTLC added tlvs.by Rusty Russell · 6c7c78ef · Aug 27, 2025 · 1 fileMessage 70 · AdequateModerate 64Details
Commit message · Rusty Russell

pytest: test for crashing with HTLC added tlvs.

Reported-by: grubles
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 · Moderate 64/100

This commit adds a test that demonstrates a crash bug in Core Lightning when two HTLC (payment) messages with custom TLV fields are processed together. The crash occurs because internal memory-management code incorrectly treats a list of added HTLCs as if each entry were independently allocated, when only the first one is. The test is marked as expected to fail for now, meaning the underlying crash has not been fixed in this commit.

AI review queuedhtlc_wire: fix crash when adding an HTLCby Lagrang3 · 7e5cf41b · Aug 27, 2025 · 7 filesMessage 78 · AdequateModerate 67Details
Commit message · Lagrang3

htlc_wire: fix crash when adding an HTLC

In line channeld/channeld_wiregen.c:832 `*added+i` is not a tal object hence
the instruction in common/htlc_wire.c:200 `tal_arr(ctx, struct tlv_field, 0);` crashes CLN.
This is fixed by stating that added_htlc is a a varsize_type.

Logs:

2025-08-16T02:25:28.640Z **BROKEN** lightningd: FATAL SIGNAL 6 (version v25.05-200-g79b959b)V
...
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:95 (call_error) 0x54f6bc
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:169 (check_bounds) 0x54f75a
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:178 (to_tal_hdr) 0x54f782
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:193 (to_tal_hdr_or_null) 0x54f7c7
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:471 (tal_alloc_) 0x54ffe4
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:517 (tal_alloc_arr_) 0x5500c4
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: common/htlc_wire.c:200 (fromwire_len_and_tlvstream) 0x48d63d
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: common/htlc_wire.c:234 (fromwire_added_htlc) 0x48dd23
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: channeld/channeld_wiregen.c:832 (fromwire_channeld_got_commitsig) 0x4c61fa
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/peer_htlcs.c:2377 (peer_got_commitsig) 0x4549cb
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/channel_control.c:1552 (channel_msg) 0x4140fe
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/subd.c:560 (sd_msg_read) 0x461513
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/io.c:60 (next_plan) 0x544885
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/io.c:422 (do_plan) 0x544cea
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/io.c:439 (io_ready) 0x544d9d
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/poll.c:455 (io_loop) 0x54665d
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/io_loop_with_timers.c:22 (io_loop_with_timers) 0x42d220
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/lightningd.c:1487 (main) 0x43280f

gdb inspection:
830 *added = num_added ? tal_arr(ctx, struct added_htlc, num_added) : NULL;
831 for (size_t i = 0; i < num_added; i++)
832 fromwire_added_htlc(&cursor, &plen, *added + i);
(gdb) p i
$3 = 1

Changelog-None: crash introduced this release.
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
[ Added test, removed Changelog --RR ]

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 pathsecond-pass: broader security terminologysecond-pass: security-sensitive path
AI analysis · Moderate 67/100

This commit fixes a crash bug in Core Lightning (CLN) that occurs when a peer adds more than one HTLC (a payment channel transaction) in a single commitment round. The root cause was a memory-management mistake: the generated wire-deserialization code treated an array of 'added_htlc' records as if each element were an independently allocated memory object, but only the array's head was. When the second element was processed, the code tried to allocate child objects against a non-TAL pointer, triggering an assertion/crash. The fix changes 'added_htlc' to a varsize pointer type so each record is allocated separately. The commit message and a test name indicate this could be hit in normal operation and caused a FATAL SIGNAL 6 (abort).

Lower-prioritypay: fix uninitialized var in debug output.by Rusty Russell · 1c537c25 · Aug 27, 2025 · 1 fileMessage 68 · AdequateInformational 17Details
Commit message · Rusty Russell

pay: fix uninitialized var in debug output.

@nepet noted that Valgrind complained. Nobody really cares though?
TL;DR: if channel isn't enabled, estimate isn't set.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-None: CI only

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

This is a tiny code cleanup: a debug log message could previously read from an uninitialized variable when a payment channel was disabled. The fix makes the log print "UNKNOWN" instead of a potentially garbage capacity value. It only affects debug output and has no practical security impact.

Lower-priorityoffers: loosen payment_constraints on invoices' blinded paths.by Rusty Russell · afa7aead · Aug 27, 2025 · 1 fileMessage 93 · StrongLow 33Details
Commit message · Rusty Russell

offers: loosen payment_constraints on invoices' blinded paths.

In practice, we were too strict. Here's Phoenix paying my node via another node:

```
2025-08-25T13:57:53.311Z DEBUG 02...-chan#216: Failing HTLC because of an invalid payload (TLV 10 pos 103): cltv_expiry 911816 > payment_constraint 911721
```

We add 6 blocks, but this is supposed to be the *max* allowed. Increase it to 1008, to allow shadow padding. Here are the CLTV delays across advertized channels in the network: most are far less than this:

Count Delay
1 0
1 4
3 12
899 18
602 20
1 22
3 24
1 25
9 26
5 29
72 30
54 32
4352 34
2 35
6 36
10 37
27 38
8 39
15256 40
94 42
102 44
13 45
20 46
87 48
230 50
100 51
14 55
316 60
29 64
30 65
24 68
82 69
9 70
779 72
13 77
243 78
1 79
26793 80
1 82
6 83
1 84
18 85
1 86
9 87
16 88
101 89
2 90
11 96
113 99
9527 100
41 112
34 118
132 119
403 120
24 128
232 140
138 142
14303 144
2 145
41 150
6 160
3 172
8 174
27 180
4 190
297 200
99 210
34 216
219 222
15 240
105 288
17 300
7 336
1 360
19 400
24 420
26 432
20 450
1 480
12 500
1 720
1 850
1 1000
1 1002
1 1144
1 1192
5 1201
1 1444
1 1795
1 1900
1 2016

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Changed: Protocol: Offers on nodes with only private channels are now payable (i.e. no more blinded path errors!).
Fixes: https://github.com/ElementsProject/lightning/issues/7718

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

This change fixes a bug where Core Lightning nodes that only had private channels could not receive payments through 'offers' (a type of invoice). The node was setting an overly tight deadline (called a CLTV payment constraint) on the hidden payment route. If any intermediate node added a small amount of padding to hide the route, the payment would fail with an 'invalid payload' error. The patch loosens the allowed deadline from about 6 blocks to 1008 blocks, matching real-world network delays and making such payments succeed.

AI review queuedplugins: generate certificates with required extensionsby Matt Whitlock · d635f19d · Aug 26, 2025 · 3 filesMessage 83 · StrongLow 47Details
Commit message · Matt Whitlock

plugins: generate certificates with required extensions

Recent versions of urllib3 fail certificate verification if certificates
lack the Authority Key Identifier or Key Usages extensions:

```
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Missing Authority Key Identifier (_ssl.c:1032)
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: CA cert does not include key usage extension (_ssl.c:1032)
```

Luckily, rcgen offers parameters in its CertificateParams structure to
add these extensions. Let's use them.

Changelog-Fixed: Certificates auto-generated by grpc-plugin, rest-plugin, and wss-proxy-plugin now include the required Authority Key Identifier and Key Usages extensions.

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
defensive validationsecond-pass: broader security terminology
AI analysis · Low 47/100

This commit fixes the automatically generated TLS certificates used by three Core Lightning plugins (grpc-plugin, rest-plugin, and wss-proxy-plugin). Recent versions of the urllib3 library started rejecting these certificates because they were missing two standard fields: the Authority Key Identifier and Key Usage extensions. Without these fields, Python-based clients connecting to the plugins could fail TLS verification and refuse to connect. The patch adds the missing certificate extensions so verification succeeds again.

Lower-prioritychange version 25.09rc2 for releaseby madelinevibes · fcd92feb · Aug 21, 2025 · 9 filesMessage 45 · ThinInformational 15Details
Commit message · madelinevibes

change version 25.09rc2 for release

replace rc1

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

This commit is a routine release-management change that updates version strings from '25.09rc1' to '25.09rc2' across nine files. It does not modify any code behavior, fix bugs, or change security properties.

Lower-priorityupdated changelog.md for rc2by madelinevibes · 7c75abc9 · Aug 21, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · madelinevibes

updated changelog.md for rc2

added uv lines

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 changelog file. It renames the upcoming release from 25.09rc1 to 25.09rc2 and adds a note that the build system now uses a tool called 'uv' instead of 'poetry'. No program code was changed, so this cannot introduce or fix a security vulnerability on its own.

Lower-prioritylightningd: fix name of chainmoves journal entry.by Rusty Russell · ebc9a8b2 · Aug 21, 2025 · 5 filesMessage 76 · AdequateLow 26Details
Commit message · Rusty Russell

lightningd: fix name of chainmoves journal entry.

```
lightningd: FATAL SIGNAL 6 (version v25.09rc1-1-ga00ed81)
0x5c9e848ca050 send_backtrace
common/daemon.c:33
0x5c9e848ca249 crashdump
common/daemon.c:78
0x7f451664532f ???
./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x7f451669eb2c __pthread_kill_implementation
./nptl/pthread_kill.c:44
0x7f451669eb2c __pthread_kill_internal
./nptl/pthread_kill.c:78
0x7f451669eb2c __GI___pthread_kill
./nptl/pthread_kill.c:89
0x7f451664527d __GI_raise
../sysdeps/posix/raise.c:26
0x7f45166288fe __GI_abort
./stdlib/abort.c:79
0x5c9e84893ac3 migrate_from_account_db
wallet/account_migration.c:500
0x5c9e848943f7 db_migrate
wallet/db.c:1139
...
#5 0x0000555555615ac4 in migrate_from_account_db (ld=0x555555999238, db=0x55555599b158) at wallet/account_migration.c:500
500 abort();
(gdb) p ev->tag
$1 = 0x555555a4fbb8 "journal_entry"
```

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

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

This commit fixes a simple naming mismatch that could crash Core Lightning when upgrading from older versions. The internal code expected the tag 'journal_entry', but one place still used 'journal'. The result was an automatic abort (fatal crash) during database migration, not a security vulnerability that an attacker could exploit.

AI review queuedlightningd: allow account db version 18.by Rusty Russell · f4b7f513 · Aug 21, 2025 · 1 fileMessage 68 · AdequateInformational 19Details
Commit message · Rusty Russell

lightningd: allow account db version 18.

If you have run recent master, upgrade will fail with:

```
Cannot migrate account database version 18
```

The final migration is:

```
/* We used to send anchors to the wallet, but set ignored tag. Now we send
* them to external. */
{SQL("UPDATE chain_events"
" SET account_id = (SELECT id FROM accounts WHERE name = 'external')"
" WHERE account_id = (SELECT id FROM accounts WHERE name = 'wallet')"
" AND ignored = 1"), NULL},
```

Which is harmless (we do that upgrade ourselves on migration, but if it's done already that will have no effect).

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

This is a tiny one-line fix that stops Core Lightning from crashing on startup for users who already ran a newer development version. It is not a security vulnerability and cannot be exploited by an attacker. The change simply recognizes database version 18 as valid so the normal upgrade process can continue.

Lower-priorityscript: Update rust version to 1.85by ShahanaFarooqui · 7fa8869a · Aug 19, 2025 · 3 filesMessage 68 · AdequateInformational 15Details
Commit message · ShahanaFarooqui

script: Update rust version to 1.85

Fixes error in current reproducible builds:
```
error: failed to parse lock file at: /build/Cargo.lock
Caused by:
lock file version `4` was found, but this version of Cargo does not understand this lock file, perhaps Cargo needs to be updated?
```

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

This commit simply updates the Rust compiler version used in Core Lightning's reproducible build Docker images from 1.75 to 1.85. The change is needed because newer project dependencies use a Cargo.lock file format that Rust 1.75 cannot read. There is no security vulnerability being fixed here—only a build tooling compatibility issue.

Lower-priorityci: remove fetch-tags from checkoutby ShahanaFarooqui · 6f45b47e · Aug 19, 2025 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · ShahanaFarooqui

ci: remove fetch-tags from checkout

Fixes conflict error in Release action when trying to fetch the commit and tag both together. Like
```
fatal: Cannot fetch both da7d3057ed8367937b0666d690159814f33ce4d9 and refs/tags/v25.09rc1 to refs/tags/v25.09rc1
```

Changelog-None.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit removes some GitHub Actions checkout settings that were causing the automated release workflow to fail. It is a CI/CD pipeline fix with no security relevance to the Core Lightning software itself or its users.

Lower-priorityscript: Poetry migration to uv for Fedora buildby ShahanaFarooqui · e2e9ba33 · Aug 19, 2025 · 2 filesMessage 68 · AdequateInformational 16Details
Commit message · ShahanaFarooqui

script: Poetry migration to uv for Fedora build

Fixes current error:
```
ERROR: Invalid requirement: 'Updating dependencies': Expected end or semicolon (after name and no valid version specifier)
```

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

This commit swaps one Python packaging tool (Poetry) for another (uv) in the Fedora release build container. It fixes a broken build command that produced an invalid requirements file. There is no security vulnerability here—just a tooling fix to make release builds work again.

Lower-priorityRun version script for rc1.by Sangbida Chaudhuri · da7d3057 · Aug 19, 2025 · 9 filesMessage 45 · ThinInformational 15Details
Commit message · Sangbida Chaudhuri

Run version script for rc1.

Run version script

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

This commit is a routine release-management change. It updates version strings from 25.05 to 25.09rc1 across several project files and refreshes a Python dependency lockfile (uv.lock). There are no code logic changes, no bug fixes, and no security-related modifications visible in the diff.

AI review queuedchangelog for 25.09rc1by madelinevibes · 4174226a · Aug 19, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · madelinevibes

changelog for 25.09rc1

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only updates the project's CHANGELOG.md file to add release notes for version 25.09rc1. It contains no code changes, configuration changes, or executable modifications. The diff is purely documentation summarizing features, changes, deprecations, removals, fixes, and experimental items for an upcoming release candidate.

Lower-priorityrust: Roll the cln-grpc and cln-rpc versions due to schema changesby Christian Decker · 45ba7190 · Aug 19, 2025 · 8 filesMessage 85 · StrongInformational 15Details
Commit message · Christian Decker

rust: Roll the cln-grpc and cln-rpc versions due to schema changes

Commit ebaa25d9e2fd5582b7fe0e3ec482c1627996e4d7 introduced a couple of
breaking changes to the schema and proto files. The bump ensures
backwards compat for users that have indicated `~0.4` as their version
constraint.

Changelog-Changed: rust: New version of `cln-rpc==0.5` and `cln-grpc==0.5`

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

This commit is a routine version bump for two Rust software packages (cln-rpc and cln-grpc) used by Core Lightning. It updates version numbers from 0.4.x to 0.5.0 in package metadata files so that downstream users who requested 'version 0.4 or compatible updates' will correctly receive the new 0.5 release. The change itself contains no code modifications, no bug fixes, and no security patches.