LL
← All projectsLightning Labs

LND

Go implementation of a complete Lightning Network node.

BitcoinLightning NetworkNormal
Repository coverage

1235 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.

116security candidates168second-pass queue168AI analyses
76commits · 30 days
165commits · 60 days
824commits · 180 days
1235commits · 365 days
Backfill bands
Aug 5 → Feb 6405 seen5 candidatesComplete
Feb 6 → Jun 6665 seen28 candidatesComplete
Jun 6 → Jul 689 seen4 candidatesComplete
Jul 6 → Aug 569 seen0 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.

67/100 average clarity
279Strong · 80–100
559Adequate · 60–79
366Thin · 40–59
31Opaque · 0–39
1security candidate with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Olaoluwa Osuntokun1994064274
Elle Mouton2673135067
ziggie4081523064
Erick Cestari26711070
bitromortac4656067
yyforyongyu5533065
saubyk1522070
Oli723057
Suheb322075
elnosh322071
George Tsagkarelis3214066
Gijs van Dam2611071
Analysis record

Published AI watches

Last scanned 49 minutes ago

Moderate 63 AI analysisMessage 58 · Thin
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11024 from ziggie1984/invoices-update-validation

This commit tightens how LND processes invoice payments, especially for newer multi-path (MPP) and AMP invoices, keysend payments, and replayed payments. It adds checks that ensure the right payment preimage is used for each invoice type a…

Preimage validation added for AMP and regular invoice replaysAMP invoices forced into MPP update path, preventing legacy-path processingLegacy settlement now fails when invoice-level preimage is missing
61f3b5a7by ziggieXXX+482−114 files
No security note in commit
Moderate 59 AI analysisMessage 35 · Opaque
LL Lightning LabsLND BitcoinLightning Network

invoices: refine update handling

This commit tightens how LND handles invoice payment updates, especially for newer 'AMP' invoices and old-style 'keysend' payments. It adds checks so that the wrong kind of payment cannot be processed against the wrong kind of invoice, and…

Added preimage/hash mismatch checks for both regular and AMP invoice replaysAMP records now require an MPP payload, preventing AMP processing on the legacy pathLegacy path now rejects AMP invoices and invoices missing invoice-level preimages
6be6350eby ziggie+476−113 files
No security note in commit
Informational 21 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

bolt12: add InvoiceError onion message replies

This commit adds support in LND for a new Lightning protocol message called InvoiceError. It is used to politely tell another node why their payment invoice or invoice request was rejected, sent privately through an onion-routed message. T…

New unsigned onion message type added with no cryptographic signature or bech32 formWriter-side validation prevents empty or non-UTF-8 error strings and disallowed suggested_value without erroneous_fieldReader-side BOLT 1 must-understand rule enforced: unknown even TLVs rejected, unknown odd TLVs tolerated
e279cdf1by bitromortac+567−04 files
No security note in commit
Low 36 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

bolt12: validate Invoice messages

This commit adds validation checks for BOLT 12 invoices in the LND Lightning node software. It ensures invoices contain required fields (creation time, amount, payment hash, node ID, payment paths), match their originating invoice requests…

New validation gate added to Invoice.Encode() to reject malformed invoices before serializationReader rejects unknown even invoice TLV types and unknown even feature bitsReader enforces chain compatibility against activeChain
e0f04f17by bitromortac+1642−74 files
No security note in commit
Informational 12 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

bolt12: add Invoice struct and TLV codec

This commit adds new code to support BOLT 12 invoices in the LND Lightning node. It introduces a data structure, encoding/decoding logic, and helper functions to filter fallback addresses and blinded payment paths. There is no bug fix or s…

efbeef58by bitromortac+777−02 files
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
LL Lightning LabsLND BitcoinLightning Network

ci: split issue dedupe into find and post jobs

This commit is a hardening and refactoring change to a GitHub Actions workflow that detects duplicate issues. It splits the workflow into two jobs: one that only reads issue data and uses an AI model to find duplicates, and a second that o…

Principle of least privilege: AI/model job no longer holds issues:write or id-token:writeAction dependency pinned to full commit SHA instead of mutable tagpersist-credentials: false set on checkout steps
d1ea8687by Olaoluwa Osuntokun+148−71 file
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
LL Lightning LabsLND BitcoinLightning Network

ci: split PR severity workflow into classify and apply jobs

This commit is a hardening and cleanup of a GitHub Actions workflow that automatically labels pull requests by severity. It does not change any LND node code, wallet logic, or network protocol. Instead, it splits the workflow into two jobs…

Principle of least privilege: write token moved out of the model-bearing jobUntrusted input (model-generated comment) sanitized before privileged API useExternal action pinned to immutable commit SHA instead of mutable tag
05c62527by Olaoluwa Osuntokun+424−593 files
Vendor flagged security relevance
Informational 21 AI analysisMessage 68 · Adequate
LL Lightning LabsLND BitcoinLightning Network

github: bump gateway code-review to v0.5.0

This commit updates a GitHub Actions workflow for an optional code-review bot called 'gateway' from version 0.4.4 to 0.5.0. It adds support for replying to inline review comments (not just regular PR comments) and pins the new action and r…

Workflow-only change with no modifications to LND application codeAction and runtime pinned to immutable commit SHAs (supply-chain mitigation)New pull_request_review_comment trigger added; commit message asserts same fork-PR secret safety as issue_comment
447703a4by saubyk+20−61 file
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
LL Lightning LabsLND BitcoinLightning Network

lnwallet: use channel state open channel

This commit is a straightforward internal code cleanup: it changes the lnwallet package to use the OpenChannel type from a dedicated chanstate package instead of getting it indirectly through the channeldb package. There is no change to us…

fa31c564by ziggie+59−469 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
LL Lightning LabsLND BitcoinLightning Network

funding: use channel state open channel

This commit is a straightforward internal code cleanup in LND's channel-opening machinery. It swaps one internal type name (channeldb.OpenChannel) for another (chanstate.OpenChannel) across function signatures in the funding manager and it…

03daaad4by ziggie+28−272 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
LL Lightning LabsLND BitcoinLightning Network

chanstate: use channel type in wallet rpc

This is a small internal code cleanup in LND's wallet RPC server. It changes one helper function to use a newer internal package type (chanstate.OpenChannel) instead of an older compatibility alias (channeldb.OpenChannel). There is no user…

8a215d9eby ziggie+3−21 file
No security note in commit
Low 46 AI analysisMessage 56 · Thin
LL Lightning LabsLND BitcoinLightning Network

chanstate: fix htlc copy

This commit fixes a bug in how the Lightning Network Daemon (LND) copies payment channel data. When the program made a copy of an HTLC (a pending payment in a Lightning channel), it failed to copy several important fields and did not prope…

Incomplete deep copy of security-relevant channel stateMissing fields in HTLC clone (RHash, OnionBlob, HtlcIndex, LogIndex)Nil-slice copy bug for Signature and ExtraData
b720fd5cby ziggie+88−42 files
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
LL Lightning LabsLND BitcoinLightning Network

chanstate: remove store generics

This commit is a routine internal code cleanup in the LND Lightning node software. It removes temporary generic type parameters from channel-state database interfaces and replaces them with direct references to the concrete OpenChannel typ…

68ad283dby ziggie+88−8915 files
No security note in commit
Informational 18 AI analysisMessage 58 · Thin
LL Lightning LabsLND BitcoinLightning Network

channeldb: derive channel packagers

This commit is a code cleanup: it removes a forwarding-package helper object from the in-memory channel state and instead creates it on demand inside database methods. There is no direct security fix or vulnerability being patched. It main…

No security-relevant keywords in commit title or messageNo changes to cryptographic operations, authentication, or network parsingRefactoring only: field removal and localized object construction
0229e0adby ziggie+47−989 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
LL Lightning LabsLND BitcoinLightning Network

chanstate: make store channel types generic

This commit is a pure internal code reorganization. It moves several small channel-related data types (like channel configuration, status flags, close summaries, and helper types) from the channeldb package into a new chanstate package, th…

f53d615cby ziggie+473−36518 files
No security note in commit
Low 30 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

lnwallet+walletrpc: add SubmitPackage for v3 CPFP package relay

This commit adds a new RPC called SubmitPackage to LND's WalletKit. It lets users submit a group of related Bitcoin transactions together so a zero-fee parent can be accepted because a later child transaction pays its fee. This is a featur…

New RPC endpoint gated by onchain:write macaroon permissionPackage size bounded to 25 transactions to limit deserialization workFee-rate ceiling passed through to backend; explicit 0 disables limit
f55c0565by Elle Mouton+1019−21517 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
LL Lightning LabsLND BitcoinLightning Network

lncli: add wallet submitpackage command

This commit adds a new command-line tool called `lncli wallet submitpackage` that lets users hand one or more raw Bitcoin transactions to LND's wallet service so they can be submitted to the network as a group (a "package"). The change onl…

No security-relevant signals present in the diff or commit message.New CLI command is a thin wrapper around an existing RPC.No changes to validation, authentication, authorization, or network handling.
ea88a268by Elle Mouton+72−01 file
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
LL Lightning LabsLND BitcoinLightning Network

itest: add SubmitPackage integration test

This commit only adds a new integration test for an existing LND WalletKit RPC called SubmitPackage. It does not change production code, wallet logic, or network behavior. The test verifies that a zero-fee Bitcoin transaction can be accept…

47661ceaby Elle Mouton+226−03 files
No security note in commit
Low 49 AI analysisMessage 88 · Strong
LL Lightning LabsLND BitcoinLightning Network

bolt12: validate InvoiceRequest per BOLT 12 reader/writer requirements

This commit adds validation checks for BOLT 12 invoice requests in the LND Lightning node. It ensures that invoice requests follow protocol rules when being created (written) and received (read), rejecting malformed or non-compliant reques…

New input validation functions added for protocol messagesValidation now runs before encoding, preventing malformed outbound messagesOverflow guard added for amount*quantity calculation
8b4587b0by bitromortac+1703−53 files
No security note in commit
Informational 12 AI analysisMessage 78 · Adequate
LL Lightning LabsLND BitcoinLightning Network

bolt12: add InvoiceRequest message struct and TLV codec

This commit adds a new data structure and serialization code for BOLT 12 invoice requests in the LND Lightning node. It is purely an implementation of a protocol message format and includes a round-trip test. There is no indication in the …

6bb9c7e8by bitromortac+282−02 files
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.

Security candidatelnrpc: remove deprecated Send* RPC server implementationsby Erick Cestari · 3ff87913 · May 18, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Erick Cestari

lnrpc: remove deprecated Send* RPC server implementations

Remove handler implementations and macaroon permission entries for the
now-deleted lnrpc RPCs: SendPayment, SendPaymentSync, SendToRoute, and
SendToRouteSync.

Also remove the dead payment infrastructure that was exclusively used by
these handlers: paymentStream, rpcPaymentRequest, rpcPaymentIntent,
extractPaymentIntent, dispatchPaymentIntent, sendPayment, and
sendPaymentSync.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
credential or privilege state
AI analysis · Informational 15/100

This commit removes old, unused code paths for sending Lightning payments through the main RPC server. These RPCs (SendPayment, SendPaymentSync, SendToRoute, SendToRouteSync) were already deleted from the service definition in a prior change, so this patch only cleans up the leftover server-side implementations and their macaroon permissions. There is no security vulnerability here; it is routine code deletion of dead functionality.

Security candidaterouterrpc: remove deprecated SendPayment, SendToRoute, TrackPayment implsby Erick Cestari · c7dd0a99 · May 18, 2026 · 2 filesMessage 73 · AdequateLow 37Details
Commit message · Erick Cestari

routerrpc: remove deprecated SendPayment, SendToRoute, TrackPayment impls

Remove the SendPayment, SendToRoute, and TrackPayment shim methods from
router_server_deprecated.go that delegated to their V2 counterparts.
Remove their macaroon permission entries from router_server.go and the
now-unused legacyTrackPaymentServer wrapper.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
credential or privilege state
AI analysis · Low 37/100

This commit removes three old, deprecated payment RPC methods (SendPayment, SendToRoute, and TrackPayment) from the LND Lightning node's router service. These methods were already replaced by newer V2 versions and were only thin wrappers around them. Removing them reduces the amount of code that could contain bugs and removes their access permissions, but it may also break older client software that still calls these methods.

Lower-priorityrouterrpc: remove deprecated outgoing_chan_id field handlingby Erick Cestari · d66341f3 · May 18, 2026 · 2 filesMessage 73 · AdequateTriage 0Details
Commit message · Erick Cestari

routerrpc: remove deprecated outgoing_chan_id field handling

Remove the compatibility fallback in QueryRoutes and ExtractPaymentIntent
that accepted the deprecated single outgoing_chan_id field alongside the
replacement outgoing_chan_ids. Callers must now use outgoing_chan_ids.

Update TestQueryRoutes and TestExtractPaymentIntent accordingly.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-priorityitest: migrate deprecated lnrpc Send* calls to routerrpc V2by Erick Cestari · a6c64ab9 · May 18, 2026 · 4 filesMessage 83 · StrongTriage 0Details
Commit message · Erick Cestari

itest: migrate deprecated lnrpc Send* calls to routerrpc V2

Remove SendToRoute and SendToRouteSync helpers from the test harness and
update integration tests to use routerrpc.SendToRouteV2:

- lnd_routing_test.go: collapse three SendToRoute test cases (sync,
stream, v2) into a single test using SendToRouteV2; update
testSendToRouteErrorPropagation to assert on Failure.Code instead of
PaymentError string
- lnd_channel_policy_test.go: replace streaming SendToRoute with
SendToRouteV2 and assert on HTLCAttempt.Failure instead of
PaymentError string

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Lower-priorityitest: add outgoing_chan_ids tests for EstimateRouteFeeby Jaewook Lee · b24fb172 · May 15, 2026 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · Jaewook Lee

itest: add outgoing_chan_ids tests for EstimateRouteFee

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Lower-priorityrouterrpc: add outgoing_chan_ids to EstimateRouteFeeby Jaewook Lee · d625948e · May 15, 2026 · 4 filesMessage 50 · ThinTriage 0Details
Commit message · Jaewook Lee

routerrpc: add outgoing_chan_ids to EstimateRouteFee

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-prioritycmd: add outgoing_chan_id flag to estimatefeeby Jaewook Lee · ea79df7a · May 15, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Jaewook Lee

cmd: add outgoing_chan_id flag to estimatefee

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-prioritydocs: add release note for coop close limbo fixby Jared Tobin · 242df464 · May 14, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · Jared Tobin

docs: add release note for coop close limbo fix

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI review queuedchancloser: remove dead ChannelFlushed.FreshFlush fieldby Jared Tobin · c5f3ad33 · May 14, 2026 · 3 filesMessage 83 · StrongInformational 15Details
Commit message · Jared Tobin

chancloser: remove dead ChannelFlushed.FreshFlush field

FreshFlush is never read in any transition handler. The only
producer (peer/brontide.go) sets it unconditionally to true,
and after the previous commit removed expectChanPendingClose,
the test loops that iterated over {true, false} no longer
differentiate between the two values.

Remove the field, the unconditional assignment, and collapse
the test loops into single sub-tests.

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit removes an unused data field called FreshFlush from the cooperative channel-closing logic. The field was always set to true and never actually checked by any code, so deleting it is a cleanup change with no security effect.

AI review queuedchancloser: add nil-tx guard to legacy close testby Jared Tobin · ef7e084d · May 14, 2026 · 1 fileMessage 98 · StrongInformational 22Details
Commit message · Jared Tobin

chancloser: add nil-tx guard to legacy close test

Add call tracking to the legacy mockChannel so that every
MarkCoopBroadcasted invocation is recorded. TestTaprootFastClose
now asserts that at least one call was made and that every call
carried a non-nil tx, guarding against the limbo state described
in https://github.com/lightninglabs/taproot-assets/issues/2108.

98/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 22/100

This commit only changes a test file. It adds a safety check to make sure a function called during cooperative channel closes is always given a real transaction, not a blank one. The test now records every call and fails if any call has a nil transaction. It does not change the actual production code that users run, so it cannot by itself fix or introduce a live bug.

AI review queuedchancloser: remove MarkCoopBroadcasted(nil) callsby Jared Tobin · 711a4a40 · May 14, 2026 · 9 filesMessage 80 · StrongLow 46Details
Commit message · Jared Tobin

chancloser: remove MarkCoopBroadcasted(nil) calls

Remove the two call sites that set ChanStatusCoopBroadcasted
before a cooperative close transaction exists:

- BeginNegotiation in the legacy close path (chancloser.go)
- ChannelFlushed handling in the RBF close path
(rbf_coop_transitions.go)

Both calls passed nil as the close tx, creating a "limbo" state
where ChanStatusCoopBroadcasted is set but no close transaction
is stored. This is unnecessary because ShutdownInfo — persisted
earlier by MarkShutdownSent in initChanShutdown / the RBF
ShutdownPending transition — already serves as the durable
signal that the shutdown flow was entered.

ChanStatusCoopBroadcasted should only be set when a real close
transaction exists, which this change preserves.

80/100 · StrongMessage clarity
✓ 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 · Low 46/100

This commit cleans up how LND records that a Lightning channel is being closed cooperatively. Previously, the code would mark a channel as 'cooperatively closed' before an actual closing transaction existed, storing a placeholder 'nil' transaction. That created a confusing in-between state in the database. The change removes those premature marks and now requires a real, non-nil closing transaction before the status is set. It also updates restart logic so the node can still recover an unfinished close from other stored information. The commit is defensive hardening rather than a fix for an active exploit.

Lower-prioritykvdb: bump pgx/v4/stdlib to pgx/v5/stdlibby Boris Nagaev · 848af803 · May 14, 2026 · 3 filesMessage 68 · AdequateTriage 0Details
Commit message · Boris Nagaev

kvdb: bump pgx/v4/stdlib to pgx/v5/stdlib

Update the SQL driver registration import from pgx/v4/stdlib to
pgx/v5/stdlib, completing the migration of the kvdb module away from
the deprecated pgx v4.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-prioritygo.mod: add temporary replace directive for kvdbby Boris Nagaev · 59ab677d · May 14, 2026 · 1 fileMessage 48 · ThinTriage 0Details
Commit message · Boris Nagaev

go.mod: add temporary replace directive for kvdb

Add a local replace directive for kvdb so the main module can reference
the local kvdb changes (pgx/v5 migration) before a new kvdb version is
released.

48/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context! Contains work-in-progress language
Lower-prioritylnd: bump pgx/v4 to pgx/v5 in main moduleby Boris Nagaev · 565cf115 · May 14, 2026 · 3 filesMessage 78 · AdequateTriage 0Details
Commit message · Boris Nagaev

lnd: bump pgx/v4 to pgx/v5 in main module

Update the main module's pgxpool usage from pgx/v4 to pgx/v5:
- Change import from pgx/v4/pgxpool to pgx/v5/pgxpool
- Update pgxpool.Connect to pgxpool.New (v5 API change)
- Remove pgx/v4 and its transitive dependencies from go.mod

Note: pgxpool.New is lazy, but this is done in tests only and the very next
line is pool.Exec, so if there is a connection error, it will be caught there.

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI review queuedsqldb: use pgx/v5/pgconn instead of standalone pgconnby Boris Nagaev · e9b422f7 · May 14, 2026 · 4 filesMessage 73 · AdequateTriage 0Details
Commit message · Boris Nagaev

sqldb: use pgx/v5/pgconn instead of standalone pgconn

In pgx v5, the pgconn package was absorbed into the main pgx module.
Update imports from github.com/jackc/pgconn to
github.com/jackc/pgx/v5/pgconn and remove the now-unnecessary
standalone pgconn dependency from go.mod.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI review queuedsqldb/v2: use pgx/v5/pgconn instead of standalone pgconnby Boris Nagaev · 548233fb · May 14, 2026 · 4 filesMessage 73 · AdequateTriage 0Details
Commit message · Boris Nagaev

sqldb/v2: use pgx/v5/pgconn instead of standalone pgconn

In pgx v5, the pgconn package was absorbed into the main pgx module.
Update imports from github.com/jackc/pgconn to
github.com/jackc/pgx/v5/pgconn and remove the now-unnecessary
standalone pgconn dependency from go.mod.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
Lower-prioritydocs: note bitcoind peer-check RPC switchby Boris Nagaev · e9098c1e · May 14, 2026 · 1 fileMessage 80 · StrongTriage 0Details
Commit message · Boris Nagaev

docs: note bitcoind peer-check RPC switch

Document that bitcoind outbound peer health checks now use
getnetworkinfo.connections_out instead of getpeerinfo.

Also mention that texts of zmq port mismatch warnings were fixed.

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
Lower-prioritychainreg: use typed getzmqnotifications RPCby Boris Nagaev · 1c74c384 · May 14, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · Boris Nagaev

chainreg: use typed getzmqnotifications RPC

Simplify the code. Use rpcclient's GetZmqNotifications method instead of a raw
request and manual unmarshalling when validating bitcoind ZMQ subscriptions.
The typed result already parses notification addresses, so the extra per-entry
URL parsing is removed.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-prioritychainreg: clarify zmq port-mismatch warningsby Boris Nagaev · 9358ca32 · May 14, 2026 · 1 fileMessage 86 · StrongTriage 0Details
Commit message · Boris Nagaev

chainreg: clarify zmq port-mismatch warnings

The previous warning text ("unable to subscribe to zmq ... events") suggested
that lnd failed to create the ZMQ connection, when in reality it only means the
configured port differs from what bitcoind reports via getzmqnotifications.
Reword both messages to say "port mismatch" and tell to verify the port.

Fixes https://github.com/lightningnetwork/lnd/issues/10568

86/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Lower-prioritychainreg: use getnetworkinfo for peer-countby Boris Nagaev · dae00811 · May 14, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · Boris Nagaev

chainreg: use getnetworkinfo for peer-count

Use getnetworkinfo.connections_out for bitcoind outbound peer checks instead
of getpeerinfo. This keeps the isolation-safety signal while avoiding heavier
per-peer work.

This helper is bitcoind-specific, btcd does not currently implement it.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-prioritychainreg: use GetNetworkInfo for version checkby Boris Nagaev · 25188236 · May 14, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · Boris Nagaev

chainreg: use GetNetworkInfo for version check

Simplify the code. Use rpcclient's typed GetNetworkInfo call in
getBitcoindHealthCheckCmd instead of a raw JSON-RPC request and
manual JSON decoding.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Security candidatedocs: add v0.21.0 RC testing guides for humans and agentsby saubyk · 2d0187c6 · May 13, 2026 · 12 filesMessage 95 · StrongInformational 15Details
Commit message · saubyk

docs: add v0.21.0 RC testing guides for humans and agents

Adds docs/testing-guides/v0.21.0/ with a per-feature guide for the
v0.21.0-beta.rc1 release. Each guide follows a fixed template
(prereqs, setup, scenarios with concrete pass/fail signals, failure
investigation) so RC testers and automated agents can work through
them predictably.

Coverage:
- Headline features: production taproot channels, RBF taproot
coop-close, payment store KV->SQL migration, onion messaging +
rate limiting.
- High-risk regressions / breaking changes: closed-channel
tombstone (sqlite/postgres downgrade trap), reorg-safe channel
closes + MinCLTVDelta raise, chain_params network-mismatch DB
guard, GetDebugInfo log opt-in.
- New RPCs / operator features: payment-adjacent RPCs bundle,
multiple read-only middleware interceptors.

This is a first draft intended for community review on the PR.
payment-sql-migration.md carries a TBD callout for the
SkipNativeSQLMigration rescue-path behavior, pending developer
confirmation.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
update trustdocumentation-only discount
AI analysis · Informational 15/100

This commit only adds documentation: a set of release-candidate testing guides for the upcoming LND v0.21.0 release. No source code, configuration defaults, RPC behavior, or database logic is changed. The new Markdown files describe how testers (human or automated) can verify new features such as taproot channels, onion-message rate limiting, and a payment-store migration. Because nothing executable is modified, the commit itself does not introduce a security vulnerability or fix one.

Lower-priorityautopilot: pass pubkey in channel traversalby Elle Mouton · d0e90429 · May 12, 2026 · 5 filesMessage 80 · StrongTriage 0Details
Commit message · Elle Mouton

autopilot: pass pubkey in channel traversal

ForEachNodesChannels is a topology traversal: its callers only need
the node identity plus channel edges. After removing address loading
from ForEachNodeCached, constructing a Node for this callback is
misleading because Addrs is either unused or empty.

Pass NodeID directly through the interface and update the scoring
and simple graph callers to use that pubkey. This keeps the
address-bearing Node interface on ForEachNode, where autopilot
gathers connectable candidates and their addresses before dialing.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Lower-prioritydocs: add release note for autopilot graph-cache fixby Elle Mouton · c18f139e · May 12, 2026 · 1 fileMessage 85 · StrongTriage 0Details
Commit message · Elle Mouton

docs: add release note for autopilot graph-cache fix

Note the performance improvement from dropping the unnecessary address
load on the SQL backend and letting the kvdb in-memory graph cache
serve autopilot's scoring traversal.

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
documentation-only discount
AI review queuedmod: bump neutrino dependencyby ziggie · 80d04a50 · May 12, 2026 · 2 filesMessage 35 · OpaqueTriage 0Details
Commit message · ziggie

mod: bump neutrino dependency

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: broader security terminologysecond-pass: opaque commit message