Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This commit rewrites how a Lightning wallet talks to Esplora block-explorer servers so that many status checks happen in parallel instead of one at a time. It is a performance/refactoring change. There is no direct evidence in the commit t…
Concurrency/timing change in transaction confirmation logicNew inconsistency check preserved when a previously-confirmed tx is reported unconfirmedAdded defensive error path for missing pre-fetched block status
This change stops the Electrum-based transaction sync client from downloading the very transaction that created an output it is watching. Previously, the client could request that transaction from Electrum, even though a transaction can ne…
Avoids unnecessary Electrum transaction.get requests for watched outputsReduces information disclosure to Electrum server about watched outpointsAdds regression test verifying request suppression
This change improves how the Lightning Dev Kit's Electrum and Esplora transaction-sync clients track watched Bitcoin transactions. Previously, the code ignored the script pubkey (the 'address' associated with a transaction) supplied when r…
Previously ignored `script_pubkey` argument in `register_tx` for transaction watchersElectrum script-history queries previously used an arbitrary transaction output, which could be OP_RETURN and therefore unindexed by some Electrum serversNew logic prefers caller-supplied script pubkey and falls back to non-OP_RETURN outputs
This commit changes how LDK stores pending event notifications. It adds serialization support for several event types that previously were not fully saved to disk, and introduces a helper method so the code can decide which events are wort…
Data-loss prevention: previously non-round-trippable event variants are now fully serialized, avoiding accidental event loss when users serialize Event queues themselvesState-consistency hardening: ChannelManager now explicitly skips events that describe non-surviving restart state, preventing replay of stale eventsDefensive assertion: debug builds assert that every persisted event round-trips to Some(event), catching serialization mismatches
This commit only adds documentation comments to two source files. It explains that certain funding-signing events can become stale if the underlying negotiation fails, and that callers may see specific harmless errors as a result. No code …
This commit removes a fixed-version pin for the honggfuzz fuzzing tool in a continuous-integration script. The project now uses the current release of honggfuzz instead of an older pinned version. There is no change to the actual Lightning…
This commit changes the Rust toolchain used in the continuous integration (CI) fuzzing job from a fixed older version (1.75) to the latest stable release. It is purely a build/test infrastructure change to fix a dependency compatibility is…
This commit makes a previously internal helper function public so that outside developers can build dummy-hop tails for blinded payment paths without recreating the logic themselves. It is an API usability change, not a fix for a known sec…
No security-relevant behavior change in the diffAPI visibility broadened from crate-public to publicCLTV expiry overflow check already present and unchanged
This change adds a safety check in a Bitcoin Lightning Network library (LDK). Previously, if the software tried to verify a peer's commitment signature before it had learned the peer's channel parameters, it could crash with a panic. Now i…
Defensive check added on peer-driven code path to prevent panicMissing counterparty_parameters could previously cause panic during commitment transaction constructionChannel closure returned instead of panic
This commit only changes the wording of an error message sent to peers when a commitment transaction fails validation. It replaces the vague phrase 'Failed to validate our commitment' with the clearer 'Received commitment failed validation…
This commit moves the checks that validate a counterparty's signatures on the holder's commitment and HTLC transactions out of the general channel code and into the signer module (InMemorySigner). Previously, these signature checks were do…
Moved signature validation from channel state machine into signer moduleAdded new tests that corrupt signatures and verify rejectionChanged error message from 'Invalid commitment tx signature from peer' / 'Invalid funding_created signature from peer' to 'Failed to validate our commitment'
This change fixes a Lightning channel splicing bug: when two peers temporarily disconnect during a splice, any half-finished signature the other side already sent is now discarded. Before the fix, that stale signature could be reused after…
State-invalidation bug in multi-step protocol (splice negotiation)Stale cryptographic signature not cleared on disconnectPotential reuse of old commitment state after reconnect
This fix prevents a Lightning channel from being accidentally force-closed. During a splice (a way to resize a payment channel), one side's initial signature could be kept in memory after the peers disconnected. If the peers later reconnec…
State inconsistency: in-memory buffered message not cleared on disconnectDuplicate message processing after reconnectionForce-close consequence for active Lightning channel
This commit is a simple rename of a public function from `matches_invoice_signing_pubkey` to `key_can_sign_invoice`, plus matching updates to its documentation, callers, tests, and changelog. No behavior changed. It is not a security fix.
This commit is a simple rename of a function and its documentation from matches_invoice_signing_pubkey to key_can_sign_invoice. No logic, behavior, or security properties changed. It is a follow-up code-review naming cleanup.
This commit adds a new public helper method, Offer::matches_invoice_signed_by (later renamed matches_invoice_signing_pubkey), that lets callers check whether an invoice signing key belongs to the recipient named by a BOLT 12 offer. It also…
Refactors existing BOLT 12 invoice-signing-pubkey validation into a reusable helperAdds public API to bind an invoice signing key to an offer recipientAdds unit tests for issuer-id vs. path-last-hop matching behavior
This commit is a feature enhancement for LDK's internal serialization macros. It allows developers to mark old protocol fields as 'retired' (reserved but no longer used) in more places, so those type numbers cannot be accidentally reused. …
TLV type-number reservation mechanism extended to more macro-generated code pathsPrevents accidental reuse of retired protocol field type numbersAvoids UnknownRequiredFeature decode failures for obsolete even-type fields
This commit is a test-only cleanup in the Lightning Dev Kit (LDK) Rust codebase. It removes low-level byte-level tests for splice failure events and replaces them with a single cross-version test that actually loads a 0.2 node with seriali…
Cross-version serialization compatibility test addedRemoval of byte-level tests that could not detect real 0.2 mismatchesNo production code changes
This commit only adds a code comment explaining an existing quirk: if a revoked old channel transaction contains two identical-looking payment forwards and the other side claims both, the software may only claim one upstream while letting …
Behavioral quirk in revoked-commitment HTLC resolution documentedDuplicate (payment_hash, amount) HTLCs can map to the same upstream sourcePotential missed upstream preimage claim on second identical HTLC
This commit fixes a state-handling bug in Lightning Dev Kit's splicing feature. When a user tries to speed up or replace a pending splice (an 'RBF' attempt) and the older splice transaction unexpectedly gets confirmed on-chain, the softwar…
State-conflict handling between confirmed splice candidate and active RBF negotiationStructured abort propagation through chain-event pathConditional abort based on holder signature progress to avoid unsafe cancellation
While a contribution may be valid at the time the splice is requested, quiescence still needs to happen, which can affect the balances of the channel as it fully settles all pending state. After doing so, it's possible that the contribution is no longer valid. Since quiescence itself doesn't have a terminal message, we see a `WarnAndDisconnect` event happen.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 19/100
This commit updates a fuzz test (a randomized testing harness) to accept one additional warning message when the test framework expects a peer disconnection. The new message, 'contribution no longer valid at quiescence,' is treated as a normal, non-fatal outcome of the splicing/RBF protocol when channel balances settle before the splice proceeds. It is a test-only change and does not alter production code behavior.
Always emit SpliceNegotiationFailed when contributing
Previously, this could result in an acceptor not receiving a `Event::SpliceNegotiationFailed` for a splice in which they reused the same contribution (except for the feerate change). Our API should guarantee that users should always see `SpliceNegotiated` and `SpliceNegotiationFailed` events for splices that they contribute to.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 32/100
This patch fixes a bug in Lightning Dev Kit's splicing feature where a channel participant (the 'acceptor') could fail to receive a notification when a splice negotiation they contributed to fell through. Without that notification, the user's wallet software would not know it could safely unlock and reuse the funds it had set aside for the splice. The fix ensures both sides always get a SpliceNegotiationFailed event when a splice they contributed to fails, even if their exact same inputs/outputs were reused from a previous round.
Only emit Event::SpliceNegotiated when contributing
There's no need to inform users of negotiated splices when they're not contributing as it just produces noise. Once they do start contributing, they cannot stop, so we always emit the event going forward. Note that we still emit `Event::ChannelReady` with the new locked funding outpoint for each locked splice, so users can still learn that a splice occurred that way.
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 19/100
This commit changes when users of the Lightning Dev Kit library are notified about a 'splice'—a way to resize a Lightning channel's on-chain funding. Previously both sides got an event when a splice was negotiated. Now only the side that actually added or removed money (a 'local contribution') gets the event. The other side still learns about the locked splice later through a different event. This is a user-interface cleanup, not a security fix, and does not change how funds are protected.
ln: add awaiting_trampoline_forwards to accumulate inbound MPP
When we are a trampoline router, we need to accumulate incoming HTLCs (if MPP is used) before forwarding the trampoline-routed outgoing HTLC(s). This commit adds a new map in channel manager, and mimics the handling done for claimable_payments.
We will rely on our pending_outbound_payments (which will contain a payment for trampoline forwards) for completing MPP claims, not want to surface `PaymentClaimable` events for trampoline, so do not need to have pending_claiming_payments like we have for MPP receives.
This map is not persisted, as we're currently working on refactoring restart logic to depend on channel monitors. We should not use this accumulation map in production yet, as we can hit a force close if: - We are used as a trampoline, despite not supporting the feature - A trampoline MPP part arrives and is committed to the inbound channel and added to `awaiting_trampoline_forwards` - We restart and the MPP part is not re-added to `awaiting_trampoline_forwards`
In this scenario, we will not hit our MPP timeout logic for this HTLC because we have "forgotten" about it. It will be up to our counterparty to force close the channel on us, because we're not failing it back after we hit MPP timeout. Likewise, even if other MPP parts arrive, we won't consider the inbound accumulation to be complete so we'll fail them back but forget about the HTLC that came before the restart.
We currently reject trampoline HTLCs earlier in the lifecycle, so we are not at risk of producing a state that could trigger such a force close. In the commits that follow, we'll allow forwarding of trampoline HTLC for tests so that we can start to cover this code.
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 · Low 30/100
This commit adds a new internal bookkeeping map for a not-yet-enabled feature called trampoline routing. The commit itself is defensive: it documents that the new map is intentionally not saved to disk and warns that using it in production could cause a channel force-close after a restart. Because the feature is currently rejected earlier in the code path, the commit says the risky state cannot be reached today. It is best read as a work-in-progress foundation rather than an active vulnerability.
ln: use outer onion values for trampoline NextPacketDetails
When we receive trampoline payments, we first want to validate the values in our outer onion to ensure that we've been given the amount/ expiry that the sender was intending us to receive to make sure that forwarding nodes haven't sent us less than they should.
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
defensive validation
AI analysis · Moderate 60/100
This change fixes how trampoline-style Lightning payments decide how much money and when (time lock) to forward to the next hop. Previously the code used values from the inner trampoline onion, which could differ from what the forwarding node actually received in the outer onion. Now it uses the outer onion values, so a forwarding node cannot silently pay the next hop less than it should while still satisfying the inner trampoline instructions. This prevents a potential fee/amount mismatch in multi-hop trampoline routing.
Lower-priorityln: store next trampoline amount and cltv in PendingHTLCRoutingby Carla Kirk-Cohen · e14a28dd · Jul 2, 2026 · 2 filesMessage 73 · AdequateLow 29Details
Commit message · Carla Kirk-Cohen
ln: store next trampoline amount and cltv in PendingHTLCRouting
When we're forwarding a trampoline payment, we need to remember the amount and CLTV that the next trampoline is expecting.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 29/100
This commit changes how Lightning trampoline payments are tracked internally. It stores the amount and expiry time that the next trampoline hop expects, so the node remembers them when forwarding a payment. The change looks like a correctness fix for trampoline routing rather than a typical security bug, but without the surrounding code it is hard to tell whether the missing fields previously caused fee or expiry mismatches that could be exploited.
Lower-priorityln: use outer onion values in PendingHTLCInfo for trampolineby Carla Kirk-Cohen · c58d1d83 · Jul 2, 2026 · 1 fileMessage 85 · StrongModerate 59Details
Commit message · Carla Kirk-Cohen
ln: use outer onion values in PendingHTLCInfo for trampoline
When we are a trampoline node receiving an incoming HTLC, we need access to our outer onion's amount_to_forward to check that we have been forwarded the correct amount. We can't use the amount in the inner onion, because that contains our fee budget - somebody could forward us less than we were intended to receive, and provided it is within the trampoline fee budget we wouldn't know.
In this commit we set our outer onion values in PendingHTLCInfo to perform this validation properly. In the commit that follows, we'll start tracking our expected trampoline values in trampoline-specific routing info.
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Moderate 59/100
This commit fixes a bug in how trampoline routing nodes validate incoming Lightning payments. Previously, the node used values from the inner (trampoline) onion, which included the fee budget, to check whether it received the correct amount. A malicious or buggy upstream node could forward less money than intended, and as long as the shortfall stayed within the fee budget, the trampoline node would not detect it. The patch makes the node use the outer onion's stated amount instead, so it can verify it actually received what it was supposed to before forwarding.
Lower-priorityln: store incoming mpp data in PendingHTLCRoutingby Carla Kirk-Cohen · a1260ed1 · Jul 2, 2026 · 2 filesMessage 68 · AdequateLow 25Details
Commit message · Carla Kirk-Cohen
ln: store incoming mpp data in PendingHTLCRouting
When we receive a trampoline forward, we need to wait for MPP parts to arrive at our node before we can forward the outgoing payment onwards. This commit threads this information through to our pending htlc struct which we'll use to validate the parts we receive.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
defensive validation
AI analysis · Low 25/100
This commit is a small code change that stores extra multi-path payment (MPP) information when a trampoline forward is received. It appears to be a preparatory step for validating incoming payment parts before forwarding them onward. There is no direct evidence in the commit that this fixes an active security vulnerability; it reads more like internal plumbing for an unfinished feature.
Lower-priorityln: use total_msat to calculate the amount for our next trampolineby Carla Kirk-Cohen · 3e162db9 · Jul 2, 2026 · 1 fileMessage 85 · StrongModerate 59Details
Commit message · Carla Kirk-Cohen
ln: use total_msat to calculate the amount for our next trampoline
For regular blinded forwards, it's okay to use the amount in our update_add_htlc to calculate the amount that we need to foward onwards because we're only expecting on HTLC in and one HTLC out.
For blinded trampoline forwards, it's possible that we have multiple incoming HTLCs that need to accumulate at our node that make our total incoming amount from which we'll calculate the amount that we need to forward onwards to the next trampoline. This commit updates our next trampoline amount calculation to use the total intended incoming amount for the payment so we can correctly calculate our next trampoline's amount.
`decode_incoming_update_add_htlc_onion` is left unchanged because the call to `check_blinded` will be removed in upcoming commits.
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Moderate 59/100
This commit fixes a bug in how the Lightning Dev Kit calculates the amount to forward when acting as a trampoline node for blinded multi-path payments. Previously, the code used the amount from a single incoming payment packet, which could be too small when several partial payments are meant to combine. The fix uses the intended total payment amount instead, preventing the node from rejecting or misrouting trampoline forwards that arrive in multiple pieces.
ln: remove incoming trampoline secret from HTLCSource
We don't need to track a single trampoline secret in our HTLCSource because this is already tracked in each of our previous hops contained in the source. This field was unnecessarily added under the belief that each inner trampoline onion we receive for inbound MPP trampoline would have the same session key.
It can be removed with breaking changes to persistence because we currently refuse to decode trampoline forwards, and will not read HTLCSource::Trampoline to prevent downgrades.
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
update trust
AI analysis · Informational 23/100
This commit removes a redundant 32-byte shared secret field from an internal data structure used when forwarding trampoline payments in the Lightning Dev Kit. The developers realized the secret was already stored inside each previous hop's data, so keeping a single copy at the top level was unnecessary. The change also updates serialization so older saved state cannot be cleanly loaded, but the code currently refuses to decode trampoline forwards anyway, so that downgrade risk is intentional and noted.
ln/refactor: use amount_msat and counterparty_skimmed_fee_msat vars
Followup from prefactor PR.
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This is a small code cleanup that replaces two computed expressions with variables already available in scope. It does not change behavior, fix a bug, or address any security issue.
Use the account name present on this Forgejo instance so Joost stays in the reviewer rotation.
Co-Authored-By: HAL 9000
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 15/100
This commit simply corrects a username in an automated reviewer assignment workflow. It changes one reviewer handle from 'joost_spiral' to 'joostjager' so the right person stays in the rotation. There is no security issue here.
Request a local Authorized Integration JWT in the reviewer workflow.
Use bearer authorization for the reviewer request API call.
This avoids a long-lived user token.
The workflow still gets the missing reviewer-request capability.
Co-Authored-By: HAL 9000
73/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
access controlsigning or wallet path
AI analysis · Informational 19/100
This commit changes the project's automated reviewer-assignment workflow to stop using a long-lived secret token and instead request a short-lived authentication token from the Forgejo CI service. This is a security-hardening improvement: it reduces the risk that a stolen or leaked long-lived token could be misused. There is no indication of an active vulnerability being fixed, and the change itself does not introduce obvious new weaknesses.
Update upstream CHANGELOG with latest 0.1/0.2 releases
50/100 · ThinMessage clarity
✓ Specific, 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 CHANGELOG.md file to add release notes for versions 0.2.4, 0.1.11, 0.2.3, and 0.1.10. It does not change any source code, build scripts, tests, or configuration. The changelog text describes security fixes that were already made in earlier commits, but this documentation-only commit itself does not introduce or fix any vulnerability.
Allow LSPS5 peer lifecycle events to clear webhook notification cooldowns again after 100ms. This keeps rapid reconnect churn throttled while avoiding multi-second delays between legitimate wake-up opportunities.
Preserve subsecond precision in LSPSDateTime elapsed-time calculation so the new interval is enforced as configured.
This commit shortens a rate-limiting cooldown in the LSPS5 webhook notification system from 10 seconds down to 100 milliseconds, and fixes a time-calculation bug that previously dropped sub-second precision. The change is described by the authors as a tuning fix to avoid multi-second delays for legitimate wake-up notifications while still throttling rapid reconnect churn. There is no direct evidence in the commit that this is a security vulnerability fix, but the affected code is a denial-of-service/amplification throttle, so any weakening of it has defensive-security relevance.
Add a small HTLC-free force-close slice to the chanmon consistency harness. The new opcodes close one known channel on each peer link and track which channels are expected to close.
Use the close tracker to reject untracked channel loss while accepting stale post-close errors and cleanup generated by explicitly closed channels. Later harness API calls skip tracked-closed channels so normal channel APIs are not called after modeling a local close.
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100
This commit only changes a fuzzing test harness (chanmon_consistency.rs). It adds new test operations that simulate local force-closing of channels and tracks which channels are expected to close so the harness can reject unexpected channel losses. There is no change to production code, user-facing behavior, or real wallet/channel logic, so it does not introduce or fix a security vulnerability in the software itself.
Move the final chanmon consistency invariant checks into Harness::finish so the checks can read harness state directly.
70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100
This commit is a minor internal refactoring of a fuzz test file. It moves a small helper function's contents directly into the place where it was called, changing a loop over three hard-coded nodes into a generic loop. There is no change to production code, no change to security behavior, and no fix for a vulnerability.
Move the finish-time relay and mining loop into a helper so the harness has a single cleanup path for relayed transactions.
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100
This commit is a simple code cleanup inside a fuzz testing harness. It moves an existing loop that relays and mines transactions into a new helper function, then calls that helper from the existing 'finish' method. No behavior changes are visible in the diff, and the code is not part of the production Lightning library that real users would run.
Allow chanmon consistency fuzz inputs to block holder-side signer operations and retry monitor-driven claim signing. The new commands extend the existing signer-op blocking machinery to the holder commitment and holder HTLC transaction paths.
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 boundaryfuzzing or regression evidence
AI analysis · Informational 15/100
This commit only adds new fuzz-testing commands to an existing test harness. It lets the fuzzer temporarily block and then re-enable the local node's own signing operations during simulated channel failures. There is no change to production code, user-facing behavior, or real wallet security.
Lower-priorityExplicitly state rust toolchain in forgejo actionsby Matt Corallo · 05c9ef04 · Jun 29, 2026 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Matt Corallo
Explicitly state rust toolchain in forgejo actions
Forgejo doesn't expand env/matrix arguments in the names it prints for steps in actions, so we have to be explicit. We also have a lot of jobs where we really don't need an env indirection for two lines that reference it.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This commit is a cosmetic cleanup of CI workflow files. It replaces environment variables like TOOLCHAIN with the literal Rust version names (e.g., 'stable', 'beta', '1.75') in step titles and commands so that Forgejo's CI logs display meaningful names. No code behavior changes, no security fix or vulnerability introduced.
Lower-priorityTweak default merge message somewhatby Matt Corallo · 693c478a · Jun 29, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Matt Corallo
Tweak default merge message somewhat
I hate how long the title ends up being when you include the full branch name in it, so move it to the next line.
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit adds a template file that controls the default message shown when merging pull requests on a Forgejo code hosting instance. It only changes the formatting of merge commit messages and has no security relevance.
AI review queuedFix lightning-invoice bitcoin dependency versionby Daniel Roberts · fbc22051 · Jun 29, 2026 · 1 fileMessage 68 · AdequateInformational 20Details
Commit message · Daniel Roberts
Fix lightning-invoice bitcoin dependency version
`lightning-invoice` since 743f43fcfd5acba55242792ed1e9337f2ab52858 will not build against `rust-bitcoin` older than v0.32.7.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 20/100
This commit is a routine packaging fix. It updates the minimum required version of the rust-bitcoin library for the lightning-invoice crate from 0.32.4 to 0.32.7 because the code no longer compiles against older 0.32.x releases. It does not change any application logic, cryptographic operations, or network behavior, and there is no indication it fixes a security vulnerability.
Lower-priorityFor now disable all windows + macos CI runs until we have runnersby Matt Corallo · b86d2b33 · Jun 28, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Matt Corallo
For now disable all windows + macos CI runs until we have runners
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit simply turns off Windows and macOS automated build tests in the project's CI configuration because the necessary test machines ('runners') are not currently available. It does not change any actual Lightning code, cryptography, networking, or user-facing behavior.
Security candidatePin actions/checkout + actions/cache to a full URL and commit hashby Matt Corallo · 3a56fcc2 · Jun 28, 2026 · 6 filesMessage 73 · AdequateInformational 18Details
Commit message · Matt Corallo
Pin actions/checkout + actions/cache to a full URL and commit hash
Reference the checkout action by its explicit data.forgejo.org URL pinned to a commit hash (v6) rather than the bare `actions/checkout@v4` short form.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
access control
AI analysis · Informational 18/100
This commit hardens the project's automated build and test scripts by replacing loose version tags like 'actions/checkout@v4' with exact commit hashes served from a specific domain. This prevents a compromised or renamed third-party action from silently injecting malicious code into the project's CI runs. It is a defensive security improvement, not a fix for an active bug or breach.
Lower-priorityUse preinstalled rustup instead of curling the installerby Matt Corallo · c897a448 · Jun 28, 2026 · 5 filesMessage 81 · StrongInformational 15Details
Commit message · Matt Corallo
Use preinstalled rustup instead of curling the installer
rustup is already present in the runner image, so replace every `curl https://sh.rustup.rs | sh ...` toolchain install with a plain `rustup default <toolchain>`, which installs the toolchain if needed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100
This commit is a routine cleanup of the project's automated build scripts. It replaces the practice of downloading and running the Rust installer from the internet with using the Rust toolchain manager (rustup) that is already installed on the build machines. There is no security vulnerability here; it is a maintenance and reliability improvement.