LL
← All projectsLightning Labs

LND

Go implementation of a complete Lightning Network node.

BitcoinLightning NetworkNormal
Repository coverage

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

142security candidates195second-pass queue1287AI analyses
86commits · 30 days
186commits · 60 days
609commits · 180 days
1240commits · 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
322Strong · 80–100
655Adequate · 60–79
391Thin · 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 Osuntokun20942204474
Elle Mouton26832268167
ziggie44416413165
Yong28513171
LNBiG111173
Jared Tobin909171
bitromortac661153071
yyforyongyu83861068
Erick Cestari26726070
Andras Banki-Horvath11311072
Gijs van Dam33230073
ziggieXXX2026070
Analysis record

Published AI watches

Last scanned 6 minutes ago

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

Merge pull request #11212 from ziggie1984/disable-legacy-channels

This change stops LND from opening new Lightning channels using the old 'legacy' commitment format. The legacy format makes it harder to recover funds if something goes wrong, because the money owed to you is tied to a secret key that chan…

Prevents opening new channels with the legacy commitment type, whose tweaked to_remote output complicates data-loss recoveryCloses a negotiation path where an empty channel_type TLV bypassed feature checks and forced a legacy channelAdds explicit RPC and wire rejection with a dedicated error code
112cb5f3by ziggieXXX+265−4716 files
Vendor flagged security relevance
Moderate 56 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11223 from gijswijs/legacy-dust-retribution-fix

This update fixes a bug in how LND handles old-style punishment transactions when a channel partner tries to cheat. Previously, tiny (dust) HTLCs were left as blank placeholder entries in the punishment data, which could cause the node to …

nil-pointer dereference risk in breach retribution pathlegacy revocation log handling inconsistency with modern formatdefensive hardening added for trimmed/dust HTLCs
500ca51fby ziggieXXX+168−146 files
No security note in commit
Moderate 62 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11190 from Roasbeef/zpay32-reject-duplicate-payment-hashes

This change tightens how LND reads Lightning invoices (BOLT 11). Previously, if an invoice contained more than one payment hash field, LND would silently keep the first one and ignore the rest. Now it rejects the invoice entirely. The rele…

Behavior change from 'use first duplicate field' to 'reject duplicate fields'New error type ErrDuplicatePaymentHash returned on duplicate payment hash fieldsMalformed/unsupported-length duplicate payment hash now treated as duplicate and rejected
86306f89by Yong+147−106 files
No security note in commit
Moderate 62 AI analysisMessage 98 · Strong
LL Lightning LabsLND BitcoinLightning Network

zpay32: reject duplicate payment hash fields

This change tightens how LND reads Lightning invoices. Previously, if an invoice contained more than one payment hash field, LND would silently keep the first valid one and ignore the rest. Now it rejects such invoices outright. This preve…

Behavioral change from silent first-field acceptance to explicit rejection of duplicate payment hash fieldsPrevents invoice parsing from depending on field ordering when multiple payment hashes are presentCovers malformed first field + valid second field, closing a potential bypass
e2f27063by Olaoluwa Osuntokun+147−106 files
Vendor flagged security relevance
Moderate 53 AI analysisMessage 58 · Thin
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11132 from yyforyongyu/task-11129-pong

This change fixes how LND answers network 'ping' messages from other Lightning nodes. Previously, LND would sometimes silently ignore valid pings to limit reply traffic, which violates the Lightning protocol (BOLT 1) and could make a peer …

Protocol compliance fix: BOLT 1 requires a Pong for every valid PingRemoved silent suppression of Pong replies that could cause peer timeout/misbehaviorUnified rate limiting now accounts for amplification bandwidth, not just ping count
d3d1f1d0by Olaoluwa Osuntokun+274−1715 files
Vendor flagged security relevance
Low 33 AI analysisMessage 90 · Strong
LL Lightning LabsLND BitcoinLightning Network

itest: stop creating legacy channels

This commit updates LND's integration tests to stop using an obsolete 'legacy' channel type and adds a test confirming that LND now rejects that legacy type. The commit message says the real fix is elsewhere in the same pull request: previ…

Deprecated commitment format (legacy) is now rejected by RPCTest added to verify legacy channel type is refusedUnused legacy node configuration flag removed
03d8b09dby ziggie+24−85 files
No security note in commit
Moderate 60 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11198 from gijswijs/amp-setlocal-reconstruction-fix

This change fixes a bug in LND's handling of AMP (Atomic Multi-Path) payments. Previously, if one partial payment set failed to reconstruct its secret preimage, the entire invoice was canceled, including unrelated partial payment sets from…

Denial-of-service against reusable static AMP invoices by causing unrelated accepted HTLC sets to be canceledIncorrect invoice state transition from set-local failure to global invoice cancellationAvailability impact on multi-payer AMP invoice scenarios
88959aecby Olaoluwa Osuntokun+155−44 files
Vendor flagged security relevance
Low 29 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11200 from ziggie1984/build-go-1.27.1

This commit updates the Go programming language version used to build LND from 1.25.13/1.26.6 to 1.26.8 (language version) and 1.27.1 (toolchain). It also regenerates many automatically generated RPC files and adjusts linter settings. The …

Go version bump may indirectly address unlisted runtime/standard-library security fixesLarge regenerated protobuf files suggest dependency/toolchain refresh rather than logic changeLinter configuration expanded to suppress new checks, consistent with a toolchain upgrade
ef4820e5by Olaoluwa Osuntokun+4932−412670 files
No security note in commit
Informational 15 AI analysisMessage 92 · Strong
LL Lightning LabsLND BitcoinLightning Network

build: adopt focused golangci-lint v2.13 checks

This commit is a routine build-maintenance change. It updates the project's Go linter configuration to a newer version and fixes the resulting style warnings: a WebSocket header spelling and several documentation comments that didn't start…

bada7ea3by ziggie+27−1911 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
LL Lightning LabsLND BitcoinLightning Network

lnrpc: regenerate protos with Go 1.27

This commit is a housekeeping change that regenerates automatically generated RPC binding files using a newer Go compiler version. The only differences are in code comments (doc-comment formatting), not in actual program logic or API behav…

dd523108by ziggie+4501−369826 files
No security note in commit
Informational 20 AI analysisMessage 100 · Strong
LL Lightning LabsLND BitcoinLightning Network

build: fix Go 1.27 compatibility

This commit is a routine build-and-test maintenance patch to make the LND codebase compile and pass tests with the upcoming Go 1.27 release. It upgrades the project's custom linter tool, refreshes many indirect tool dependencies, adjusts o…

No production code changesNo vulnerability fix or CVE reference presentDependency-only refresh in tools module (development tooling)
6b54a387by ziggie+365−3706 files
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
LL Lightning LabsLND BitcoinLightning Network

build: bump Go language and toolchain versions

This commit is a routine maintenance update that changes which version of the Go programming language is used to build the lnd project. It does not change any application logic, fix a bug, or address a security vulnerability. The project i…

b1f9ca66by ziggie+39−3930 files
No security note in commit
Moderate 60 AI analysisMessage 83 · Strong
LL Lightning LabsLND BitcoinLightning Network

invoices: cancel only the failing AMP set on reconstruction failure

This commit fixes a bug in LND's invoice handling for reusable AMP (Atomic Multi-Path) invoices. Previously, if one payment set failed to reconstruct its preimage, the entire invoice was canceled, even though other valid payment sets on th…

Denial-of-service-like availability impact: a malicious or buggy payer could cause a whole reusable AMP invoice to be canceled, blocking legitimate concurrent payersSet-local failure incorrectly escalated to invoice-global cancellationRegression test added for concurrent-set survival after reconstruction failure
d74ab6faby Gijs van Dam+141−42 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
LL Lightning LabsLND BitcoinLightning Network

bolt12: describe the lnwire dependency

This is a documentation-only change. A package comment was updated to accurately describe that the bolt12 codec library does depend on LND's lnwire package for low-level message types, while clarifying it still does not interact with the r…

5f53171dby bitromortac+3−21 file
No security note in commit
Moderate 60 AI analysisMessage 91 · Strong
LL Lightning LabsLND BitcoinLightning Network

bolt12: cover the amount overflow guard

This commit adds a test to ensure that when a BOLT 12 invoice is validated against a request, the multiplication of the offer amount by the requested quantity cannot overflow and wrap around to zero. Without this guard, a malicious or malf…

Integer overflow / wraparound in amount calculationMissing test coverage for security-critical branchBOLT 12 invoice amount validation
3c8e2bcbby bitromortac+47−01 file
Vendor flagged security relevance
Low 34 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11061 from bitromortac/2604-bolt12-1f

This commit adds the missing cryptographic signature layer for BOLT 12 offers in LND. It builds a Merkle tree from the message fields, signs that tree with a BIP-340 Schnorr signature, and now rejects invoice requests and invoices whose si…

Adds BIP-340 Schnorr signature verification for BOLT 12 invoice_request and invoice messagesMerkle tree commits to canonical re-encoded TLV records; non-minimal feature/amount encodings now rejected to preserve byte-exactnessSignature TLV type 240 and reserved range 240-1000 excluded from the signed Merkle root
1049d301by Yong+2076−7815 files
Vendor flagged security relevance
Low 35 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #11125 from bhandras/codex/reorg-aware-output-lock-20260825

This commit adds a new optional wallet feature to LND that lets users lock UTXOs until the transaction spending them reaches a chosen confirmation depth, instead of relying on a wall-clock timeout. It is a feature addition with safety chec…

New RPC fields release_after_spend_confs and confirmed_spend_height added to LeaseOutput and FundPsbtCustom lock ID enforced as required for confirmation-controlled FundPsbt leases; all-zero and reserved internal IDs rejectedCapability check (ResolveOutputLeaser) prevents silent downgrade to time-only lease when confirmation control is requested
80dde144by Yong+1293−10021 files
No security note in commit
Informational 19 AI analysisMessage 58 · Thin
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #10812 from ziggie1984/chanstate-kv-store-move

This commit is a large internal code reorganization for the LND Lightning node. It moves channel state storage logic from the `channeldb` package into a new `chanstate` package, while keeping the same database keys, serialization formats, …

Large refactoring with no change to cryptographic or consensus-critical logicCodec serialization moved verbatim to new package; wire format unchangedDatabase bucket keys and TLV record types preserved
62b0a073by Olaoluwa Osuntokun+3923−310924 files
No security note in commit
Low 25 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

Merge pull request #10804 from GeorgeTsagk/close-immediately-itest-lnd-7c38

This change fixes a data-handling bug in LND's channel-opening code. When opening a Lightning channel using an optional 'auxiliary funding controller' (used for custom channel types such as Taproot Assets), the funding manager was previous…

Data-correctness fix in funding handshake: negotiated channel configs now exposed to auxiliary funding controllerAuxiliary funding controller receives incomplete channel state before patch, complete state after patchNo explicit security claim, CVE, or advisory referenced in commit or supplied materials
1e127653by Olaoluwa Osuntokun+291−254 files
No security note in commit
Moderate 60 AI analysisMessage 88 · Strong
LL Lightning LabsLND BitcoinLightning Network

bolt12: verify invoice_request and invoice signatures on read

This change makes LND's BOLT 12 invoice and invoice-request reader actually check that the digital signature is valid, instead of only checking that a signature field exists. Before, an attacker could craft or modify a BOLT 12 message and …

Missing cryptographic verification on parsed BOLT 12 messages replaced with BIP-340 Schnorr signature verificationReader accepted any 64-byte placeholder signature before the patchNew negative tests verify rejection of wrong-signer and tampered Merkle-root fields
aa8bd19fby bitromortac+272−723 files
Vendor flagged security relevance
Repository ledger

Explore captured commits

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

Lower-prioritymulti: thread context through DeletePaymentby ziggie · bc15d4bb · Feb 25, 2026 · 5 filesMessage 45 · ThinInformational 18Details
Commit message · ziggie

multi: thread context through DeletePayment

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

This change threads a request context through the DeletePayment database operation. In practical terms, it lets the database operation respect cancellation or timeout signals from the original RPC request, rather than running with a blank 'do nothing' context. The SQL backend now uses the real request context, while the older key-value backend still ignores it for now. This is a code-quality and robustness improvement, not a fix for an active security vulnerability.

Lower-prioritydocs: add release-notesby ziggie · fcb8929e · Feb 25, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · ziggie

docs: add release-notes

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only adds a single line to the release notes document, describing a completed code change (finalizing SQL payments implementation and enabling tests). It does not modify any program code, configuration, or security mechanism.

Lower-prioritymulti: thread context through FetchPaymentby ziggie · 25d05be0 · Feb 25, 2026 · 11 filesMessage 45 · ThinInformational 15Details
Commit message · ziggie

multi: thread context through FetchPayment

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 straightforward internal refactoring: it adds a context.Context parameter to the FetchPayment function and threads it through callers. Contexts allow operations to be cancelled or timed out, but the commit does not change any behavior, fix a bug, or close a security hole. It is not a security patch.

AI review queuedpaymentsdb: add more commentsby ziggie · bfd59aac · Feb 25, 2026 · 2 filesMessage 35 · OpaqueInformational 15Details
Commit message · ziggie

paymentsdb: add more comments

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit only adds explanatory comments to two source files. No code behavior is changed, so it cannot introduce or fix a security vulnerability on its own.

AI review queuedlnrpc: fix linterby ziggie · ea4e183c · Feb 25, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · ziggie

lnrpc: fix linter

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

This commit removes one blank line in a test file to satisfy a code linter. It does not change any program logic, behavior, or security-relevant code.

Lower-prioritypaymentsdb: add unit test for FetchInflightPayments methodby ziggie · dfacb9ec · Feb 25, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · ziggie

paymentsdb: add unit test for FetchInflightPayments method

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

This commit only adds new automated tests for an existing database method called FetchInFlightPayments. It does not change any production code, so it cannot introduce or fix a security vulnerability on its own.

Lower-prioritypaymentsdb: add firstcustom records to unit testsby ziggie · e40c8df1 · Feb 25, 2026 · 1 fileMessage 55 · ThinInformational 15Details
Commit message · ziggie

paymentsdb: add firstcustom records to unit tests

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

This commit only updates a unit test file to include sample custom records when creating test payment data. It does not change any production code, network behavior, or security logic. There is no security issue here.

Lower-prioritypaymentsdb: make specific kv store tests only available via build tagby ziggie · 5f1f4135 · Feb 25, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · ziggie

paymentsdb: make specific kv store tests only available via build tag

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

This commit only adds a Go build tag to a test file so that certain key-value store tests run only when neither SQLite nor PostgreSQL test modes are active. It is a test-configuration change with no effect on production code, user-facing behavior, or security.

Lower-priorityitest: fix list_payments accuracy edge caseby ziggie · f518931c · Feb 25, 2026 · 1 fileMessage 45 · ThinInformational 13Details
Commit message · ziggie

itest: fix list_payments accuracy edge case

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

This commit only changes an integration test file. It adjusts how timestamps are rounded when testing the ListPayments and ListInvoices features, so the tests pass reliably across different database backends. There is no change to production code, no security fix, and no vulnerability being patched.

Lower-prioritypaymentsdb: introduce a harness interfaceby ziggie · 080fd78f · Feb 25, 2026 · 6 filesMessage 78 · AdequateInformational 15Details
Commit message · ziggie

paymentsdb: introduce a harness interface

The design of the sql and kv db are a bit different. A harness
interface is introduced which allows us to unit most of the test
and keep the backend specific tests at a minimum.

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 commit only reorganizes test code for the payments database. It introduces a small test helper interface so the same unit tests can run against both the older key-value (KV/Bolt) backend and the newer SQL backend. No production code is changed, and nothing about how real user payments are handled is modified.

Lower-prioritypaymentsdb: fix test case before testing sql backendby ziggie · 2eadbfb5 · Feb 25, 2026 · 2 filesMessage 95 · StrongInformational 15Details
Commit message · ziggie

paymentsdb: fix test case before testing sql backend

We are now not supporting the LegacyPayload for the onion packet
anymore. All payments and their onion payload need to be tlv
encoded. The sql backend assumes tlv so we have to always set the
in memory presentation of a hop where the legacy parameter is still
available but deprecated to false, otherwise the hops will not be
equal and unit tests for the sql backend will fail when switched
on in the next commits.

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

This is a test-only adjustment that updates a fake payment route used in unit tests so it matches the new real-world behavior of LND: legacy onion payloads are no longer supported, only modern TLV-encoded payloads. It also adds a code comment and a TODO about eventually removing the now-deprecated LegacyPayload field. There is no runtime security fix here.

Lower-prioritypaymentsdb: make QueryPayments test db agnosticby ziggie · de50f471 · Feb 25, 2026 · 2 filesMessage 78 · AdequateInformational 15Details
Commit message · ziggie

paymentsdb: make QueryPayments test db agnostic

We make the QueryPayments test db agnostic and also keep a small
test for querying the duplicate payments case in the kv world.

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 commit only moves and refactors test code. It makes an existing payment-querying test work with any database backend and keeps the legacy key-value (KV) store duplicate-payment test separate. No production code was changed, so there is no security risk or fix here.

Lower-prioritypaymentsdb: add harness to run payment db agnostic testsby ziggie · 570863ca · Feb 25, 2026 · 3 filesMessage 95 · StrongInformational 15Details
Commit message · ziggie

paymentsdb: add harness to run payment db agnostic tests

In commit adds the harness which will be used to run db agnostic
tests against the kv and sql backend. We have adopted all the
unit tests so far so that with this commit all the payment tests
not specifically put into the kv_store_test.go should all pass
for all backends.

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

This commit only adds test helper code for the payments database. It introduces build-tag-guarded test files that let the same payment database tests run against either the existing key-value backend, a SQLite backend, or a PostgreSQL backend. There is no change to production code, user-facing behavior, or security-sensitive logic.

Lower-prioritypaymentsdb: remove kvstore from sql db implementationby ziggie · 9ad3f219 · Feb 25, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · ziggie

paymentsdb: remove kvstore from sql db implementation

Now that every method of the interface was implemented we can
remove the embedded reference we put into place for the sql store
implementation so that the interface would succeed. This is now
removed.

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 removes a leftover placeholder that made a new SQL-based payment database fall back to an older key-value store while its own methods were still being written. Now that all required methods are implemented, the fallback is no longer needed. There is no security issue here—this is a normal cleanup of completed refactoring work.

Lower-prioritypaymentsdb: refactor test helpersby ziggie · fdfa1430 · Feb 25, 2026 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · ziggie

paymentsdb: refactor test helpers

Since now the sql backend is more strict in using the same
session key we refactor the helper so that we can easily change
the session key for every new attempt.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only changes test helper functions in the payments database test files. It refactors how fake payment data is generated so each simulated payment attempt uses a different cryptographic session key, matching a stricter SQL backend. There are no changes to production code, user-facing behavior, or security-sensitive logic.

Lower-prioritypaymentsdb: rename functions and variablesby ziggie · b02531cc · Feb 25, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · ziggie

paymentsdb: rename functions and variables

We take inspiration from the graph sql implementation and name
the variables accordingly.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit only renames internal functions and variables in a single database file to make the naming style consistent with another part of the project. No behavior, logic, or security properties of the code are changed.

Lower-prioritydocs: add release-notesby ziggie · c919d256 · Feb 25, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · ziggie

docs: add release-notes

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only adds a single line to the release notes document, pointing to a previous code change (pull request 10368) that implemented SQL backend payment functions. There are no code changes, no bug fixes, and no security-related content in the diff itself.

Lower-prioritypaymentsdb: added unit test for computePaymentStatusFromResolutionsby ziggie · 4e52896c · Feb 25, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · ziggie

paymentsdb: added unit test for computePaymentStatusFromResolutions

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

This commit only adds a new unit test file for an existing internal function. It does not change any production code, fix a bug, or alter behavior. There is no security issue here.

Lower-prioritypaymentsdb: implement FetchInFlightPayments for sql backendby ziggie · 969b00e4 · Feb 25, 2026 · 5 filesMessage 50 · ThinInformational 12Details
Commit message · ziggie

paymentsdb: implement FetchInFlightPayments for sql backend

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 12/100

This commit adds a missing database method for the new SQL backend in LND. It lets the node efficiently find all payments that still have HTLC attempts in flight during startup. There is no security fix here; it is a feature/performance parity change to match the older key-value store backend.

Lower-prioritypaymentsdb: implement DeletePayments for sql backendby ziggie · ff120824 · Feb 25, 2026 · 4 filesMessage 50 · ThinLow 27Details
Commit message · ziggie

paymentsdb: implement DeletePayments for sql backend

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 27/100

This commit adds a new database cleanup feature to LND's SQL payment storage backend. It lets the node delete old payment records or failed payment attempts in bulk. The change is mostly a feature implementation and refactoring; there is no direct evidence in the commit that it fixes an active security vulnerability. The main security-relevant aspect is that the code deliberately skips payments that are still 'in flight' (active on the Lightning network) and only removes payments whose status is considered 'removable', which reduces the risk of deleting data needed for an ongoing payment.

Lower-prioritypaymentsdb: use batch function when querying for resolutionsby ziggie · 82ee78c5 · Feb 25, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · ziggie

paymentsdb: use batch function when querying for resolutions

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a routine internal refactoring of how the LND payment database fetches HTLC resolution data. It replaces a single large SQL query with a helper that breaks the work into smaller batches. There is no indication this fixes a security bug; it appears to be a performance and maintainability improvement.

Lower-prioritypaymentsdb: add a wrapper to the fetchpayment methodby ziggie · 218a30d1 · Feb 25, 2026 · 1 fileMessage 73 · AdequateLow 35Details
Commit message · ziggie

paymentsdb: add a wrapper to the fetchpayment method

We wrap the fetchPayment db call and catch the case where no errors
are found in the db, where we now return the ErrPaymentNotInitiated
error.

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

This commit refactors how LND's payment database looks up payments. It introduces a shared helper that converts a 'no rows found' database result into a specific, expected error (ErrPaymentNotInitiated). Several existing functions are switched to use this helper, and a few places that previously wrapped the raw database error with extra text now return the error directly. The change is mostly a cleanup, but it also tightens error handling so missing payments are treated consistently rather than as unexpected database failures.

Lower-prioritypaymentsdb: rename paymentsBatchDataby ziggie · caf73c59 · Feb 25, 2026 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · ziggie

paymentsdb: rename paymentsBatchData

We rename this variable to paymentsDetailsData because we will
also need to batch load the core payment and intent data in
future commits and this renaming should make it clear that this
does match payment related data but not the core data which is
in the payment and in the intent table.

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 15/100

This commit is a simple internal code rename with no functional changes. A data structure called paymentsBatchData is renamed to paymentsDetailsData, and all references to it are updated. The commit also adds a clarifying comment explaining what the structure holds. No security issue is present.

Lower-prioritydocs: add release-notesby ziggie · 4c867c1b · Feb 25, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · ziggie

docs: add release-notes

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only adds a single line to the release notes document, mentioning that insert methods were implemented for a payments database SQL backend feature. It contains no code changes, no bug fixes, and no security-related content.

Lower-prioritypaymentsdb: implement FailAttempt for sql backendby ziggie · 53a7877a · Feb 25, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · ziggie

paymentsdb: implement FailAttempt for sql backend

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

This commit adds a missing database method called FailAttempt for the new SQL backend in LND's payment database. It simply records when an individual payment attempt (HTLC) fails, including the reason and timestamp. There is no security vulnerability visible in the change; it is a normal feature-completion patch that brings the SQL backend in line with the existing KV backend.