Skip to content

Conversation

guggero
Copy link
Collaborator

@guggero guggero commented Aug 12, 2025

ziggie1984 and others added 14 commits August 12, 2025 21:25
We check the context of the payment lifecycle at the beginning of
the `resumepayment` loop. This will make sure we have always the
latest state of the payment before deciding on the next steps in
the function `decideNextStep`.
We add a new update type to the payment descriptor to describe this new
type of htlc. This type of HTLC will only end up being set if explicitly
signalled by external software.
We also add the IsAdd helper to the AuxHtlcDescriptor, as external
software using the aux framework might want to know which type of HTLC
this is.
We update the lightning channel state machine in some key areas. If the
noop TLV is set in the update_add_htlc custom records then we change the
entry type to noop. When settling the HTLC if the type is noop we credit
the satoshi amount back to the sender.
Adds some simple tests to check the noop HTLC logic of the lightning
channel.
To make sure we don't cause force-closures because of commit sig
mismatches, we add a test case to verify that the retransmitted HTLC
matches the original HTLC.
@guggero guggero added this to the v0.19.3 milestone Aug 12, 2025
Copy link

Pull reviewers stats

Stats of the last 30 days for lnd:

User Total reviews Time to review Total comments
guggero
🥇
27
▀▀▀
1d 9h 47m
33
▀▀▀
bhandras
🥈
20
▀▀
1d 4h 46m
21
▀▀
yyforyongyu
🥉
12
12h 15m
18
Roasbeef
11
3d 9h 33m
17
ziggie1984
10
1d 15h 20m
19
ellemouton
7
5d 12m
▀▀
8
bitromortac
4
1d 14h 30m
7
alexbosworth
2
4d 15h 5m
2
sputn1ck
1
4m
0
morehouse
1
4d 1h 58m
0
Abdulkbk
1
7d 17h 58m
▀▀
7

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @guggero, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request prepares for the v0.19.3-rc2 release by integrating several key updates. It includes a significant Go version bump to 1.23.12 across the project's build, development, and documentation configurations. Additionally, it introduces "NoOp HTLCs" which allow for sending HTLCs that carry metadata without affecting channel balances, primarily for channels with a tapscript root. Finally, it incorporates a critical fix to ensure that all outstanding payment attempts are properly resolved even if the overall payment lifecycle times out or is cancelled.

Highlights

  • Go Version Update: The project's Go version has been upgraded to 1.23.12 across all relevant files, including go.mod, Dockerfiles, Makefiles, and installation documentation, addressing a potential SQL API issue.
  • NoOp HTLCs Introduction: A new type of HTLC, "NoOp HTLCs," has been implemented, enabling the transfer of metadata without altering channel balances. This feature is specifically designed for channels utilizing a tapscript root and includes logic to handle balance adjustments based on channel reserves.
  • Payment Lifecycle Timeout Fix: A bug in the payment lifecycle has been resolved, ensuring that all pending payment attempts are correctly processed and resolved even if the payment context is cancelled or times out.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request prepares for the v0.19.3-rc2 release. It primarily consists of bumping the Go version to 1.23.12 across various project files, improving the GitHub Actions caching key, and incorporating several bug fixes and features. Key changes include the introduction of 'NoOp HTLCs' to allow for metadata-only HTLCs on custom channels, and a fix in the payment lifecycle to ensure proper termination on timeout. The code changes are well-structured and include appropriate tests. I have one minor suggestion regarding code style.

Copy link
Collaborator

@ziggie1984 ziggie1984 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good, except some changes to the CI system which I cannot explain where they come from.

Copy link
Member

@yyforyongyu yyforyongyu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM🙏

Copy link
Collaborator

@ziggie1984 ziggie1984 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@guggero
Copy link
Collaborator Author

guggero commented Aug 15, 2025

Added the version bump commit, will merge after CI ran.

@guggero guggero merged commit 1a5fda6 into 0-19-3-branch Aug 15, 2025
35 of 36 checks passed
@guggero guggero deleted the 0-19-3-branch-rc2 branch August 15, 2025 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants